-
Notifications
You must be signed in to change notification settings - Fork 2
ARAGORN and ROBOKOP
A Translator ARA to query Knowledge Providers (KPs) and synthesize highly ranked answers relevant to user-specified questions.
- Operates in a federated knowledge environment.
- Bridges the precision mismatch between data specificity in KPs and more abstract levels of user queries.
- Generalizes answer ranking.
- Normalizes data to use preferred and equivalent identifiers.
Abrar Mesbah ( amesbah@covar.com )
ARAGORN provides unified access to multiple operations (see glossary and the Operations repo), including fill/bind/complete (Strider), Merge Answers (Answer Coalescence), Edge Weighting, and Result Scoring (Aragorn Ranker). Currently, ARAGORN composes these operations into a fixed workflow, but the individual components are available as their own TRAPI endpoints.
The current ARAGORN workflow consists of:
- Strider takes a TRAPI query graph and calls distributed KPs to construct a TRAPI KG and results.
- AragornRanker adds literature co-occurrence edges to the graph and a weight to each edge binding, and it then scores each result based on these weights.
ARAGORN produces two types of edges: 1) Creative edges using a rule-based system and 2) literature co-occurence edges.
Offline, the ROBOKOP KG is analyzed to find graph patterns that are predictive of the existence of a new edge. For instance, the system may learn that if A up-regulates B and B up-regulates C then A (indirectly) up-regulates C. Then, when a new queries arrives at ARAGORN such as "What up-regulates X?", ARAGORN can apply these rules to find new edges. When ARAGORN is the primary knowledge source on an edge, this kind of rule-based reasoning is the method employed.
Offline, natural language processing is used to find mentions of Translator concepts across a vast number of PUBMED abstracts. From that information, the ARAGORN Ranker then determines: (1) the number of times that very concept is mentioned in an abstract and (2) the number of times that pairs of concepts appear in the same abstract. From these numbers, the ranker assigns a score representing the strength of co-occurrence of two arbitrary terms. These literature co-occurrence edges are not used in the finding of new creative results, but it influences confidence in a result.
- TRAPI interface is found at: https://aragorn.renci.org/query
- SmartAPI Registration: http://smart-api.info/registry?q=ddd4fdce05c3e1b7b4499c80b8e3fb00
ARAGORN is meant to handle arbitrary TRAPI queries, including queries with multiple identified nodes and arbitrary query topology.
As an example, here is a simple one-hop TRAPI query:
{
"message": {
"query_graph": {
"nodes": {
"n0": {
"id": "NCBIGene:6611",
"category": "biolink:Gene"
},
"n1": {
"category": "biolink:ChemicalSubstance"
}
},
"edges": {
"e01": {
"subject": "n0",
"object": "n1"
}
}
}
}
}
This query looks for chemicals that are directly connected to a single particular gene.
The query can be placed in a text file (query.json) and sent to ARAGORN using CURL, for example:
curl -X POST https://aragorn.renci.org/query -d @query.json
A usage guide examining the results of this query can be found here.
ARAGORN is thorough - it hits every KP it can that might hold the proverbial needle in the haystack. However, this means that it can sometimes be slow. ROBOKOP uses all the same reasoning and ranking as ARAGORN, but it limits its queries to the still-broad ROBOKOP KG, so that it can return results much more rapidly, if less comprehensively.
To declare an issue with this software:
- Please browse to: https://github.com/ranking-agent/aragorn/issues.
- Create a new issue by selecting the "New issue" button.
- Populate the form displayed. Please enter a concise description of the issue. Include test data if available.
Instructions for building the relevant containers and deploying them to Kubernetes can be found in the the ARAGORN README.
ARAGORN makes use of several tools that can be independently accessed. As new operations are adopted by Translator, these will be accessible by passing arguments to ARAGORN.
ARAGORN accesses KPs via its Strider component. The list of KPs is kept up-to-date on the Strider page.