Skip to main content

Validation tools for Reasoner API

Project description

Reasoner Validator

Pyversions pypi License: MIT readthedocs

This package provides software methods to Translator components (e.g. Knowledge Providers and Autonomous Relay Agents) using any version of the Translator Reasoner API (TRAPI) and the Biolink Model.

See the full documentation and the contributor guidelines.

Building

To build the documentation:

cd docs
make html

Validation Run as a Web Service

The Reasoner Validator is available wrapped as a simple web service. The service may be run directly or as a Docker container.

API

The web service has a single POST endpoint /validate taking a simple JSON request body, as follows:

{
  "trapi_version": "1.0",
  "biolink_version": "2.2.16",
  "message": "<TRAPI JSON message blob...>"
}

The request body consists of JSON data structure with two top level tag:

  • An optional trapi_version tag can be given a value of the TRAPI version against which the message will be validated, expressed as a SemVer string (defaults to 'latest' if omitted; partial SemVer strings are resolved to their 'latest' minor and patch releases).
  • An optional biolink_version tag can be given a value of the Biolink Model version against which the message knowledge graph semantic contents will be validated, expressed as a SemVer string (defaults to 'latest' Biolink Model Toolkit supported version, if omitted).
  • A mandatory message tag should have as its value the complete TRAPI Message JSON data structure to be validated.

Running the Web Service Directly

The service may be run directly as a python module. It is suggested that a virtual environment first be created (using virtualenv, conda, within your IDE, or equivalent). Then, certain Python dependencies need to be installed, as follows:

pip install -r requirements-service.txt

The module may afterwards be run, as follows:

python -m app.main

Go to http://localhost/docs to see the service documentation and to use the simple UI to input TRAPI messages for validation.

Running the Web Service within Docker

The Reasoner Validator web service may be run inside a docker container, using Docker Compose.

First, from the root project directory, build the local docker container

docker-compose build

Then, run the service:

docker-compose up -d

Once again, go to http://localhost/docs to see the service documentation.

To stop the service:

docker-compose down

Of course, the above docker-compose commands may be customized by the user to suit their needs. Note that the docker implementation assumes the use of uvicorn

Validation Web Service Limitations (implied Future Work?)

  • This release of the Reasoner Validator Web Service will detect TRAPI 1.0.* releases but doesn't strive to be completely backwards compatible with them (considering that they are less relevant now).
  • The web service validation doesn't do deep validation of the Results part of a TRAPI Message
  • The validation is only run on the first 1000 nodes and 100 edges of graphs, to keep the validation time tractable (this risks not having complete coverage of the graph)
  • Biolink Model toolkit is not (yet) cached so changing the model version during use will result in some latency in results
  • The validator service doesn't (yet) deeply validate non-core node and edge slot contents of Message Knowledge Graphs
  • The validator service doesn't (yet) attempt validation of Query Graph nodes and edges 'constraints' (e.g. biolink:Association etc. domain and range constraints)
  • Query Graph node 'ids' are not validated except when an associated 'categories' parameter is provided for the given node. In general, Query Graph Validation could be elaborated.
  • The system should leverage the Reasoner Pydantic Models

Core Contributors

  • Kudos to Patrick Wang, who created the original implementation of the Reasoner-Validator project while with CoVar (an entrepreneurial team contributing to the Biomedical Data Translator).
  • Thanks to Kenneth Morton (CoVar) for his reviews of the latest code.
  • The project is currently being extended and maintained by Richard Bruskiewich (Delphinai Corporation, on the SRI team contributing to Translator)

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reasoner-validator-2.2.14.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

reasoner_validator-2.2.14-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file reasoner-validator-2.2.14.tar.gz.

File metadata

  • Download URL: reasoner-validator-2.2.14.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for reasoner-validator-2.2.14.tar.gz
Algorithm Hash digest
SHA256 9e136f8def9f548fca481c14ff6eb1dafeaec8f72f4547f532670dca29bc5de5
MD5 1591ce51cd534de776db4106809d19e5
BLAKE2b-256 5471c75cfb97f83b5236d7bb9b0498a889670912928590d43922884f5115eccd

See more details on using hashes here.

File details

Details for the file reasoner_validator-2.2.14-py3-none-any.whl.

File metadata

File hashes

Hashes for reasoner_validator-2.2.14-py3-none-any.whl
Algorithm Hash digest
SHA256 981bd347b76622d24012981343e341017cdb83f8cf2a6794f500136e5667ebdc
MD5 50b95c370136bc06c03e73e30dd9f856
BLAKE2b-256 9fc039aeb4b6b17a88aada7e5c0dee489c3bbabbf3a19f0678978218162f5d91

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page