Skip to content

04 Roadmap

Brenna Kizer edited this page Mar 13, 2020 · 5 revisions
  1. Create Swagger/OpenAPI .yaml file, update as API progresses to meet the Reasoner Standard.
  2. Prepare technology stack for production deployment.
  3. Reformat data into normalized graph or relational database, create nodes for diseases, drugs etc.
    • ReasonerStandardAPI specifies that neo4j is the current default
    • Verify that nodes and edges are labeled according to biolink specifications
    • Define general (type) and specific (relation) edge types for use in query and return graph node bindings and edge bindings
    • Format to return the exact data needed for the KnowledgeGraph
      • Node: id, uri, name, type, description, symbol, node attributes, etc.
      • Edge: id, type, relation, source id, target id, defined date/time, source, confidence, weight, publications, evidence type, qualifiers, negated, edge attributes, etc.
    • Relational model would include tables containing nodes (information about the specific biomarker, disease, etc., and edge tables containing information about relationships/publications identifying relationships
  4. Refactor to accept queries in the form of QueryGraph objects
    • Error handling to verify valid input
    • Parser for the QueryGraph to "restate the question" into something our querying function can consume
    • Handle query options
    • Internal node and edge ids will be retrieved from the QueryGraph for use in return graph's node and edge bindings
    • QueryGraph will specify the type of relationship to search for - need to be able to search by specific relationship type
  5. Refactor to output results according to output specifications
    • Associate internal ids with nodes and edges for lookup dictionary (bindings)
    • Adapt database queries to capture all response information
    • Return top-level metadata such as datetime response was generated, number of results, etc.
    • Develop and return quality and validity measures (aided by the curation team)
    • Return QueryGraph
    • Return result object data such as message id, EdgeBindings, NodeBindings, etc.
    • Return KnowledgeGraph
      • Node list
      • Edge list
  6. May create a "/predicates" endpoint to return supported relationship types between two node types as specified by a GET request query.
Clone this wiki locally