Translator Standards
This page provides a big picture of the various standards developed and used in the NCATS Biomedical Data Translator project.
What we mean about a Translator API: an API developed in the context of the Translator project, by a Knowledge Provider (KP), or an Autonomous Relay Agent (ARA). A Translator API implements Translator standards to query the exposed data, and is described using the OpenAPI specifications.
#
BioLink modelA high-level semantic model to represent biological and biomedical knowledge.
All Translator data and tools comply with this model: data is annotated using BioLink concepts, and tools can use the BioLink model to query the data.
The BioLink model is defined in a YAML file using the BioLink modelling language (biolinkml). From the YAML-defined model biolinkml
automatically generates all resources required to define the BioLink model:
- OWL ontology
- ShEx shape for data validation
- JSON-LD context
- GraphQL schema
- Human-readable documentation
- And more...
Visit the BioLink model documentation at https://biolink.github.io/biolink-model/docs
#
Translator Reasoner APIAlso known as "TRAPI", or just "Reasoner API"
TRAPI defines standard operations to query a Translator API, described using the OpenAPI specifications (in an openapi.yml
file). The TRAPI API operations are implemented in every Translator API, and allow to query the data using the BioLink model and a standard JSON model. It returns the results using a standard JSON message. Note that Translator APIs can also implement their own operations, alongside the TRAPI operations.
See the Translator Reasoner API standard GitHub repository: https://github.com/NCATSTranslator/ReasonerAPI
Example of a TRAPI 1.0.0 query message using the BioLink model:
#
Knowledge Graph eXchangeAlso known as "KGX"
A format to define knowledge graphs by providing nodes and edges in CSV files
KGX is particularly used to share and load large Knowledge Graphs as dumps.
See the python library on GitHub at https://github.com/biolink/kgx
#
BioThingsAlso known as "BTE", "Smart API specifications", or just "BioThings"
This standard extend the Smart API specifications (which is an extension of the OpenAPI specifications) enabling to annotate non-standard API operations to make them "more standard" (so that the BioThings Explorer can analyze the API specifications to retrieve more informations about the API call, such as the types of inputs and outputs)
Originally the BioThings specifications are part of the BioThings API ecosystem, which provides scalable tools in Python to expose data as standard APIs.
See the BioThings GitHub organization: https://github.com/biothings