Home » Developers »  Developer Tools - OntoQuest Web Services

Developer Tools


*Tutorials for the developer tools can be found here*


OntoQuest Web Services

1) List all ontologies
2) Display information about a particular ontology:
3) Download an ontology file: Download the file (.owl) corresponding to the given ontology.
4) Get Concept:
5) Search Concepts:
6) Get parents/children of a given concept:
7) Get subclasses/superclasses, parts/whole of a given concept:
8) Get siblings of a given concept
9) Search terms starting with the query (used for auto-complete service): (updated on 03/10/2010)
10) Search term properties: (updated on 03/10/2010)
11) NIFCard service: (updated on 11/04/2010)
12) JSON service for Google Refine: (updated on 13/07/2011)


1) List all ontologies

Signature: ./ontologies
Return: a list of ontology entries.
Example link: http://nif-services.neuinfo.org/ontoquest/ontologies/

2) Display information about a particular ontology:

Signature: ./ontologies/detail/{OntologyName}
Return: one ontology entry.
Example link: http://nif-services.neuinfo.org/ontoquest/ontologies/detail/NIF

3) Download an ontology file: Download the file (.owl) corresponding to the given ontology.

Signature: ./ontologies/download/{OntologyName}
Return: the owl file.
Example link: http://nif-services.neuinfo.org/ontoquest/ontologies/download/NIF

4) Get Concept:

Signatures:
./concepts/{NIFSTD_ID}[?{optional_args}]
./concepts/oid/{OntoQuest_ID}[?{optional_args}]
./concepts/term/{Term}[?{optional_args}]

Notes:
* NIFSTD_ID – ID in NIFSTD, e.g. sao1511566913, birnlex_1566. It is used as class name in NIF ontology. It can be a list of IDs separated by semicolon, e.g. birnlex_1106;birnlex_1171;birnlex_1561;birnlex_1566;birnlex_904;birnlex_1568;birnlex_1171;birnlex_1135.
* OntoQuest_ID – internal OntoQuest ID (oid). This ID is not consistent between different database instances or ontology versions. However, it is the fastest way to fetch a concept or related concepts.
* Term – Lexical form of a concept or its synonyms.

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.

Return: an object including concept id, name (a.k.a. NIFSTD_ID), pref_label, description/comments, list of synonyms.

Example links:
http://nif-services.neuinfo.org/ontoquest/concepts/sao436474611
http://nif-services.neuinfo.org/ontoquest/concepts/term/Glial+Cell
http://nif-services.neuinfo.org/ontoquest/concepts/term/cerebellum?ontology=NIF
http://nif-services.neuinfo.org/ontoquest/concepts/oid/158065-1 (Notice: The internal OntoQuest ID (e.g. 158065-1) changes once the ontology is re-loaded. Therefore, this oid may be outdated. You should always get the latest ID for testing.)

http://nif-services.neuinfo.org/ontoquest/concepts/birnlex_1106;birnlex_1171;birnlex_1561;birnlex_1566;birnlex_904;birnlex_1568;birnlex_1171;birnlex_1135 (added on June 7, 2010)
http://nif-services.neuinfo.org/ontoquest/concepts/oid/316155-1;316057-1;316164-1;357481-1;357480-1 (added on June 7, 2010) (Notice: The internal OntoQuest ID (e.g. 158065-1) changes once the ontology is re-loaded. Therefore, this oid may be outdated. You should always get the latest ID for testing.)

5) Search Concepts:

Signature: ./concepts/search/{query}[?{optional args}]

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.
* begin_with=<true|false> - if true, return the terms beginning with the query term only. (default: false)
* max_ed=<non-negative integer> - the maximal edit distance between query term and result term. If the query term is same as the result, the edit distance is 0. If there is one character difference, the edit distance is 1, and so one. For example, the edit distance between "neuron" and "neural" is 2. (default: 50)
* result_limit=<non-negative integer> - the maximal results to return. If result_limit is 0, all results are returned. Otherwise, the best result_limit results are returned. The results are ordered by edit distance. (default: 100)
* negated=<true|false> - if true, return terms that do NOT match the query term. Use this flag with caution as it get a large number of hits in general. (default: false)

Return: a list of concept objects that match the query string.

Example links:
http://nif-services.neuinfo.org/ontoquest/concepts/search/birnlex_276
http://nif-services.neuinfo.org/ontoquest/concepts/search/ammon%27s+horn
http://nif-services.neuinfo.org/ontoquest/concepts/search/cerebellum?ontology=NIF&begin_with=true&max_ed=30&result_limit=10

6) Get parents/children of a given concept:

Signatures:
./rel/[parents|children|all]/{NIFSTD_ID}[?{optional args}]
./rel/[parents|children|all]/oid/{OntoQuest_ID}[?{optional args}]
./rel/[parents|children|all]/term/{Term}[?{optional args}]

Notes:
* NIFSTD_ID – ID in NIFSTD, e.g. sao1511566913, birnlex_1566. It is used as class name in NIF ontology.
* OntoQuest_ID – internal OntoQuest ID (oid). This ID is not consistent between different database instances or ontology versions. However, it is the fastest way to fetch a concept or related concepts.
* Term – Lexical form of a concept or its synonyms.
* Here, parents mean incoming relationships, for example, if A->B, then A is a parent of B, and B is a child of A. The parents/children are not related to inheritance or composition hierarchy. Consider to use subclasses or parts instead of parents/children if interested in concept hierarchy.
* For backward compatability, old style /graph/[parents|children|all]/ is still supported, but deprecated.

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.
* level=<integer> - levels of neighbors to search. If level=1, get direct neighbors. If level=0, get neighbors at all levels. The default is to get one level.

Return: a graph which includes a list of relationships. Each relationship includes source concept, target concept and edge_label object. (Change on June 2010: The details of class nodes are no longer returned in this method. Use /concepts/oid/{OntoQuest_ID} to get class nodes.)

Example links:
http://nif-services.neuinfo.org/ontoquest/rel/all/GO_0046712?level=3
http://nif-services.neuinfo.org/ontoquest/rel/children/GO_0046712?level=2
http://nif-services.neuinfo.org/ontoquest/rel/parents/GO_0046712?level=2 (empty graph expected)
http://nif-services.neuinfo.org/ontoquest/rel/children/term/Amino+Acid?level=2

7) Get subclasses/superclasses, parts/whole of a given concept:

Signatures:

./rel/[subclasses|superclasses|parts|whole]/{NIFSTD_ID}[?{optional args}]
./rel/[subclasses|superclasses|parts|whole]/oid/{OntoQuest_ID}[?{optional args}]
./rel/[subclasses|superclasses|parts|whole]/term/{Term}[?{optional args}]

Notes:
* NIFSTD_ID – ID in NIFSTD, e.g. sao1511566913, birnlex_1566. It is used as class name in NIF ontology.
* OntoQuest_ID – internal OntoQuest ID (oid). This ID is not consistent between different database instances or ontology versions. However, it is the fastest way to fetch a concept or related concepts.
* Term – Lexical form of a concept or its synonyms.
* For backward compatability, old style /graph/[subclasses|superclasses|parts|whole]/ is still supported, but deprecated.

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.
* level=<integer> - levels of neighbors to search. If level=1, get direct neighbors. If level=0, get neighbors at all levels. The default is to get one level.

Return: a graph which includes a list of relationships. Each relationship includes source concept, target concept and edge_label object. (Change on June 2010: The details of class nodes are no longer returned in this method. Use /concepts/oid/{OntoQuest_ID} to get class nodes.)

Example links:
http://nif-services.neuinfo.org/ontoquest/rel/parts/birnlex_1489?level=3
http://nif-services.neuinfo.org/ontoquest/rel/superclasses/birnlex_1566
http://nif-services.neuinfo.org/ontoquest/rel/subclasses/oid/178666-1?level=3 (Warning: this oid may be outdated.)
http://nif-services.neuinfo.org/ontoquest/rel/parts/term/cerebellum?level=0
http://nif-services.neuinfo.org/ontoquest/rel/whole/birnlex_1566

8) Get siblings of a given concept

Signatures:
./concepts/siblings/[classes|parts]/{NIFSTD_ID}[?{optional args}]
./concepts/siblings/[classes|parts]/oid/{OntoQuest_ID}[?{optional args}]
./concepts/siblings/[classes|parts]/term/{Term}[?{optional args}]

Notes:
* classes and parts represent the sibling types. "classes" means to get the siblings that belong to the same super class. "parts" means to get the different parts of the same parent object.
* NIFSTD_ID – ID in NIFSTD, e.g. sao1511566913, birnlex_1566. It is used as class name in NIF ontology.
* OntoQuest_ID – internal OntoQuest ID (oid). This ID is not consistent between different database instances or ontology versions. However, it is the fastest way to fetch a concept or related concepts.
* Term – Lexical form of a concept or its synonyms.

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.

Return: a list of concept objects.

Example links:
http://nif-services.neuinfo.org/ontoquest/concepts/siblings/classes/birnlex_1566
http://nif-services.neuinfo.org/ontoquest/concepts/siblings/classes/oid/178666-1 (Warning: this oid may be outdated.)
http://nif-services.neuinfo.org/ontoquest/concepts/siblings/classes/birnlex_1566?ontology=NIF

9) Search terms starting with the query (used for auto-complete service): (updated on 03/10/2010)

Signature:
./keyword/{query}[?{optional args}]
./keyword/{query}/anc/{NIFSTD_IDs}[?{optional args}]
./keyword/{query}/anc/oid/{OntoQuest_IDs}[?{optional args}]
./keyword/{query}/anc/term/{Terms}[?{optional args}]

Notes:
* It is recommended to use query string with at least 3 characters (length >= 3).
* If the call includes /anc path, it means to return only those terms that are descendants of specified ancestors (NIFSTD_IDs, OntoQuest_IDs, or Terms). The ancestors are separated by semicolon (;)
* Please be aware that the keyword search runs much slower if ancestors are specified. If ancestors belong to a set of pre-defined categories, there is a way to improve the performance though.

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.
* result_limit=<non-negative integer> - the maximal results to return. If result_limit is 0, all results are returned. Otherwise, the best result_limit results are returned. The results are ordered by edit distance. (default: 100)

Return: a list of term strings that match the query string.

Example links:
http://nif-services.neuinfo.org/ontoquest/keyword/glia
http://nif-services.neuinfo.org/ontoquest/keyword/glial+c
http://nif-services.neuinfo.org/ontoquest/keyword/glial+c?result_limit=5
http://nif-services.neuinfo.org/ontoquest/keyword/glial+c/anc/terms/cell
http://nif-services.neuinfo.org/ontoquest/keyword/glial+c/anc/terms/cell;process
http://nif-services.neuinfo.org/ontoquest/keyword/glial+c/anc/sao1813327414

10) Search term properties: (updated on 03/10/2010)

Signature:
./getprop/{NIFSTD_ID}[?{optional_args}]
./getprop/oid/{OntoQuest_ID}[?{optional_args}]
./getprop/term/{Term}[?{optional_args}]

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.
* prop_type=<list of property types> - property types are separated by comma. Possible values are: all, object, datatype, annotation, and system. "all" means
to return all properties, "object" means to return ObjectProperty, "datatype" means to return DatatypeProperty, "annotation" means to return AnnotationProperty, and "system" means to return predefined system property such as "subClassOf".

Return: an object including concept id, name (a.k.a. NIFSTD_ID), pref_label, and properties.

Notes:
* If prop_type contains value "all", any other property type is ignored. If no prop_type is specified, all properties are returned.

Example links:
http://nif-services.neuinfo.org/ontoquest/getprop/sao313023570?prop_type=annotation
http://nif-services.neuinfo.org/ontoquest/getprop/sao313023570?prop_type=system,object,datatype
http://nif-services.neuinfo.org/ontoquest/getprop/sao313023570?prop_type=all
http://nif-services.neuinfo.org/ontoquest/getprop/term/Glial+Cell
http://nif-services.neuinfo.org/ontoquest/getprop/oid/190416-1?prop_type=system (Note: the ID may be outdated)

11) NIFCard service: (updated on 11/04/2010)

Signature:
./nifcard/list_anatomicalstructures
./nifcard/list_cells
./nifcard/list_cell_locations
./nifcard/list_diseases (updated on 11/11/2010)

Return: a table which includes columns and value part.

Notes:
* The detailed explanation of tables and columns are at: https://confluence.crbs.ucsd.edu/display/NIF/Populate+Nifcards+from+Ontoquest

Example links:
http://nif-services.neuinfo.org/ontoquest/nifcard/list_anatomical_structures
http://nif-services.neuinfo.org/ontoquest/nifcard/list_cells
http://nif-services.neuinfo.org/ontoquest/nifcard/list_cell_locations
http://nif-services.neuinfo.org/ontoquest/nifcard/list_diseases

12) JSON service for Google Refine: (updated on 13/07/2011)

Signature:
./reconcile?query=...string...[&{optional_args}]
./reconcile?query={...single json object literal...}[&{optional_args}]
./reconcile?query={...multiple json object literal...}[&{optional_args}]

The single json object literal has a few fields: query, limit, type (ignored), type_strict (ignored), and properties (ignored). The detailed description of each field can be found at: http://code.google.com/p/google-refine/wiki/ReconciliationServiceApi. e.g.

?{"query":"cerebellum", "limit": 5}

The multiple job object literal has zero or more arbitrary key, each of which has a value in the same format as a single query, e.g.

{"q0":{"query":"hippocampus", "limit":5},"q1":{"query":"golgi", "limit":15}}

Optional arguments:
* ontology=<OntologyName> - fetch the concept from a different ontology. The default ontology is NIF. It can be changed in configuration file.
* begin_with=<true|false> - if true, return the terms beginning with the query term only. (default: false)
* max_ed=<non-negative integer> - the maximal edit distance between query term and result term. If the query term is same as the result, the edit distance is 0. If there is one character difference, the edit distance is 1, and so one. For example, the edit distance between "neuron" and "neural" is 2. (default: 50)

Return:

The response for a single query is a JSON literal object
{
"result" : [
{
"id" : ... string, database ID ...
"name" : ... string ...
"type" : ... array of strings ...
"score" : ... double ...
"match" : ... boolean, true if the service is quite confident about the match ...
},
... more results ...
],
... potentially some useful envelope data, such as timing stats ...
}

For multiple queries, the response is a JSON literal object with the same keys as in the request
{
"q0" : {
"result" : { ... }
},
"q1" : {
"result" : { ... }
}
}

Notes:
* The detailed explanation of Reconciliation Service API can be found at: http://code.google.com/p/google-refine/wiki/ReconciliationServiceApi

Example links:
http://nif-services.neuinfo.org/ontoquest/reconcile?query=cerebellum
http://nif-services.neuinfo.org/ontoquest/reconcile?query={%22query%22:%22hippocampus%22,%20%22limit%22:5}
http://nif-services.neuinfo.org/ontoquest/reconcile?query={%22query%22:%22hippocampus%22,%20%22limit%22:5}&begin_with=true&max_ed=30
http://nif-services.neuinfo.org/ontoquest/reconcile?query={%22q0%22:{%22query%22:%22hippocampus%22,%20%22limit%22:5},%20%22q1%22:{%22query%22:%22golgi%22,%20%22limit%22:15}}
http://nif-services.neuinfo.org/ontoquest/reconcile?query={%22q0%22:{%22query%22:%22hippocampus%22,%20%22limit%22:5},%20%22q1%22:{%22query%22:%22golgi%22,%20%22limit%22:15}}&begin_with=true

http://nif-services.neuinfo.org/ontoquest/reconcile?callback=jsonp12345&query=cerebellum
http://nif-services.neuinfo.org/ontoquest/reconcile?callback=jsonp
http://nif-services.neuinfo.org/ontoquest/reconcile?callback=34567&query={%22q0%22:{%22query%22:%22rhesus%20macaque%22,%20%22limit%22:5},%20%22q1%22:{%22query%22:%22golgi%22,%20%22limit%22:15}}

NIF Statistics



NIF Version: 5.0

Ontology Version: 2.5

Level 2.5/3.0 Resources: 889

Registry Entries: 6,339

Total Records: 356,197,652





NIF Navigator