Difference between revisions of "BioPortal REST services"

From NCBO Wiki
Jump to navigation Jump to search
 
(198 intermediate revisions by 9 users not shown)
Line 1: Line 1:
This page documents BioPortal Web Service signatures. The list below contains commonly accessed BioPortal Web services and is not intended to be an exhaustive list. If a feature you are interested in is not in the list below, please contact [mailto:support@bioontology.org BioPortal Support] to request the service or ask for more details on the full list of services.
+
NCBO BioPortal v4.0 REST services are documented at: http://data.bioontology.org/documentation
 
 
The '''prefix''' for all production service URLs in the table below is http://rest.bioontology.org/bioportal/
 
 
 
* '''Note''': All NCBO REST web service calls MUST append a user identification query parameter with the pattern of "email=UserEmail" (note some clients may need to use URL encoding). For example, email=example@example.org or email=example%40example.org as an encoded email. Please start adding the user identification URL parameter to all your web service invocations. Later in 2010, we may start challenging REST service calls that do not have this parameter. 
 
 
 
* '''Note''': ''Signatures for BioPortal services have changed in BioPortal 2.0.4 release on January 13th, 2009. This page has the new service URLs. If you have any questions, please contact [mailto:support@bioontology.org BioPortal Support].''
 
 
 
= Overview - Using NCBO Technology in Your Project =
 
See [http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project Using NCBO Technology in your Project] for general information and widgets available for use.
 
 
 
= Code Examples =
 
*Code examples for the ontology web services, developed in FlexViz, is available at: https://bmir-gforge.stanford.edu/gf/project/flexviz/frs/?action=index. To see the code in action, visit the [http://keg.cs.uvic.ca/ncbo/restservicestest/TestUI.html Test User Interface] that has been set-up using the FlexViz code.
 
 
 
*Code examples for the [http://bioontology.org/wiki/index.php/Annotator_Web_service Annotator] and [http://www.bioontology.org/wiki/index.php/Resource_Index Resource Index] can be found on pages specific for those tools.
 
 
 
= BioPortal Announce Mailing List =
 
To receive notices of new BioPortal releases, changes to web services, or planned downtime subscribe to the [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-annouce] list.
 
 
 
= Services to access ontologies and ontology versions =
 
 
 
== List all the latest version of ontologies ==
 
 
 
* '''Signature''': ./ontologies?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/ontologies?email=example@example.org
 
 
 
==  Get a specific ontology based on a version id ==
 
* '''Signature''':  ./ontologies/{ontology version id}?email={email_address}
 
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/39002?email=example@example.org
 
 
 
==  Download an ontology file ==
 
* '''Description''': Download the file (.obo, .owl) corresponding to the given ontology version id.
 
* '''Signature''':  ./ontologies/download/{ontology version id}?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/39002?email=example@example.org
 
 
 
==  Download the latest ontology file ==
 
* '''Description''': Download the file (.obo, .owl) corresponding to the given virtual ontology id.
 
* '''Signature''':  ./virtual/download/{ontology id}?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/virtual/download/1090?email=example@example.org
 
 
 
==  Get all versions of an ontology from a virtual ontology id ==
 
* '''Signature''': ./ontologies/versions/{ontology id}?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/1104?email=example@example.org
 
 
 
==  Get latest version of an ontology id ==
 
* '''Signature''': ./virtual/ontology/{ontology_id}?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?email=example@example.org
 
 
 
==  List all ontology categories ==
 
'''NOTE''': ''To be released in BioPortal version 2.2''
 
* '''Signature''':  ./categories?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/categories
 
 
 
==  List all ontology groups ==
 
'''NOTE''': ''To be released in BioPortal version 2.2''
 
* '''Signature''':  ./groups?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/groups
 
 
 
= Services to access ontology views and ontology view versions =
 
 
 
Since all the views on ontologies are ontologies themselves all the services that work on ontologies do
 
work for ontology views also with the same signature.
 
 
 
For example to get a specific ontology view based on a version id would be possible by using the signature:
 
 
 
'''./ontologies/download/{view version id}?email={email_address}'''
 
 
 
or for getting all view versions of a virtual view can be achieved called using the signature:
 
 
 
'''./ontologies/versions/{view id}?email={email_address}'''
 
 
 
However, there are a couple of services that are special for views:
 
 
 
== List all the latest version of views ==
 
'''NOTE''': ''To be released in BioPortal version 2.2''
 
* '''Signature''': ./views?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/views?email=example@example.org
 
 
 
== Get all versions of views from a virtual ontology id ==
 
'''NOTE''': ''To be released in BioPortal version 2.2''
 
* '''Description''': Returns all versions of views defined on the latest version a virtual ontology, grouped by virtual view ids.
 
* '''Signature''': ./views/versions/{ontology id}?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/views/versions/1104?email=example@example.org
 
 
 
= Search services =
 
 
 
==  Search BioPortal ==
 
* '''Signature''': ./search/{query}[?{optional args}]&email={email_address}
 
* '''Alt Signature''': ./search/?query={uri-encoded query}[&{optional args}]&email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/search/Gene?email=example@example.org
 
* You can use multiple query terms, separated by a space, for example: [http://rest.bioontology.org/bioportal/search/lung%20disease http://rest.bioontology.org/bioportal/search/lung disease?email=example@example.org]
 
* '''Optional arguments:'''
 
** ontologyids=<ontologyid>,<ontologyid>… - limits the search to specific ontologies (default: all ontologies)
 
** isexactmatch=[1/0] – match the entire concept name (default: 0)
 
** includeproperties=[1/0] – include attributes in the search (default: 0)
 
** pagesize=<pagesize> - the number of results to display in a single request (default: all)
 
** pagenum=<pagenum> - the page number to display (pages are calculated using <total results>/<pagesize>) (default: 1)
 
** maxnumhits=<maxnumhits> - the maximum number of top matching results to return (default: 1000)
 
** subtreerootconceptid=<uri-encoded conceptid> - narrow the search to concepts residing in a sub-tree, where the "subtreerootconceptid" is the root node. This feature requires a SINGLE <ontologyid> passed in using the "onotlogyids" parameter.
 
* '''Description:'''
 
The search attempts to match both partial and exact queries, giving more weight to exact matches. In single-word searches, the wildcard character (*) is automatically appended to the end of the word. For example, searching for "lun" would return all concepts whose name contains a word that begins with "lun" (i.e. "Lung", "Murine Lunate Bone", "Base of the Lung", etc).
 
 
 
In phrase searches (multiple words), the wildcard character is appended to the end of each word. For example, searching for "cut mela" would return all concepts whose name contains a word starting with "cut", followed by any word that begins with "mela" (i.e. "Cutaneous Melanoma", "Metastatic Non-Cutaneous Melanoma", "Cutaneous Melanoma Clinical TNM Finding", etc).
 
 
 
* '''Example''': http://rest.bioontology.org/bioportal/search/software/?ontologyids=1104&isexactmatch=1&email=example@example.org
 
* '''Sample Output''':
 
<pre>
 
<?xml version="1.0" encoding="UTF-8" ?>
 
<success>
 
<accessedResource>
 
/bioportal/search/cutaneous%20mela
 
</accessedResource>
 
<accessDate>2009-05-07 16:17:46.182 PDT</accessDate>
 
<data>
 
<page>
 
<pageNum>1</pageNum>
 
<numPages>1</numPages>
 
<pageSize>3</pageSize>
 
<numResultsPage>3</numResultsPage>
 
<numResultsTotal>3</numResultsTotal>
 
<contents
 
class="org.ncbo.stanford.bean.search.SearchResultListBean">
 
<searchResultList>
 
<searchBean>
 
<ontologyVersionId>39715</ontologyVersionId>
 
<ontologyId>1136</ontologyId>
 
<ontologyDisplayLabel>
 
Experimental Factor Ontology
 
</ontologyDisplayLabel>
 
<recordType>
 
RECORD_TYPE_PREFERRED_NAME
 
</recordType>
 
<conceptId>
 
http://www.ebi.ac.uk/efo/EFO_0000389
 
</conceptId>
 
<conceptIdShort>EFO_0000389</conceptIdShort>
 
<preferredName>
 
cutaneous melanoma
 
</preferredName>
 
<contents>cutaneous melanoma</contents>
 
</searchBean>
 
<searchBean>
 
<ontologyVersionId>39478</ontologyVersionId>
 
<ontologyId>1032</ontologyId>
 
<ontologyDisplayLabel>
 
NCI Thesaurus
 
</ontologyDisplayLabel>
 
<recordType>
 
RECORD_TYPE_PREFERRED_NAME
 
</recordType>
 
<conceptId>
 
http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Cutaneous_Melanoma
 
</conceptId>
 
<conceptIdShort>
 
Cutaneous_Melanoma
 
</conceptIdShort>
 
<preferredName>
 
Cutaneous Melanoma
 
</preferredName>
 
<contents>Cutaneous Melanoma</contents>
 
</searchBean>
 
<searchBean>
 
<ontologyVersionId>39833</ontologyVersionId>
 
<ontologyId>1009</ontologyId>
 
<ontologyDisplayLabel>
 
Human disease
 
</ontologyDisplayLabel>
 
<recordType>
 
RECORD_TYPE_PREFERRED_NAME
 
</recordType>
 
<conceptId>DOID:2418</conceptId>
 
<conceptIdShort>DOID:2418</conceptIdShort>
 
<preferredName>
 
Cutaneous Melanocytic Neoplasm
 
</preferredName>
 
<contents>
 
Cutaneous Melanocytic Neoplasm
 
</contents>
 
</searchBean>
 
</searchResultList>
 
<ontologyHitList>
 
<ontologyHitBean>
 
<ontologyVersionId>39715</ontologyVersionId>
 
<ontologyId>1136</ontologyId>
 
<ontologyDisplayLabel>
 
Experimental Factor Ontology
 
</ontologyDisplayLabel>
 
<numHits>1</numHits>
 
</ontologyHitBean>
 
<ontologyHitBean>
 
<ontologyVersionId>39833</ontologyVersionId>
 
<ontologyId>1009</ontologyId>
 
<ontologyDisplayLabel>
 
Human disease
 
</ontologyDisplayLabel>
 
<numHits>1</numHits>
 
</ontologyHitBean>
 
<ontologyHitBean>
 
<ontologyVersionId>39478</ontologyVersionId>
 
<ontologyId>1032</ontologyId>
 
<ontologyDisplayLabel>
 
NCI Thesaurus
 
</ontologyDisplayLabel>
 
<numHits>1</numHits>
 
</ontologyHitBean>
 
</ontologyHitList>
 
</contents>
 
</page>
 
</data>
 
</success>
 
</pre>
 
 
 
= Term services =
 
(formerly referred to as Concept services)
 
 
 
==  Get term, including its properties, subclasses, and superclasses ==
 
* '''Signature''': ./concepts/{ontology version id}/{concept id}?email={email_address}
 
* '''Alt Signature''': ./concepts/{ontology version id}?conceptid={uri-encoded concept id}&email={email_address}
 
**To ensure that the Web service works within your application, use the Alt signature as some ontologies may contain terms where the concept id is a URI.
 
* '''Optional arguments:'''
 
** light=[1/0] - when set to 1, returns the "light" version of XML with only a basic info for the concept and its immediate children
 
** norelations=[1/0] - when set to 1, returns only the requested term information (id, label, fullid, type, synonyms, definitions) without the "relations" map. This is useful when you need to quickly retrieve just the base information about a term.
 
* '''Examples''':
 
http://rest.bioontology.org/bioportal/concepts/44103?conceptid=O80-O84.9&email=example@example.org
 
* '''Sample Output''':
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<success>
 
  <accessedResource>/bioportal/concepts/44103</accessedResource>
 
  <accessDate>2010-12-08 16:57:43.763 PST</accessDate>
 
  <data>
 
    <classBean>
 
      <id>O80-O84.9</id>
 
      <fullId>http://purl.bioontology.org/ontology/ICD10/O80-O84.9</fullId>
 
 
 
      <label>Delivery</label>
 
      <type>Class</type>
 
      <relations>
 
        <entry>
 
          <string>SubClass</string>
 
          <list>
 
            <classBean>
 
 
 
              <id>O84</id>
 
              <fullId>http://purl.bioontology.org/ontology/ICD10/O84</fullId>
 
              <label>Multiple delivery</label>
 
              <type>Class</type>
 
              <relations>
 
                <entry>
 
                  <string>ChildCount</string>
 
 
 
                  <int>5</int>
 
                </entry>
 
              </relations>
 
            </classBean>
 
            <classBean>
 
              <id>O83</id>
 
              <fullId>http://purl.bioontology.org/ontology/ICD10/O83</fullId>
 
 
 
              <label>Other assisted single delivery</label>
 
              <type>Class</type>
 
              <relations>
 
                <entry>
 
                  <string>ChildCount</string>
 
                  <int>7</int>
 
                </entry>
 
 
 
              </relations>
 
            </classBean>
 
            <classBean>
 
              <id>O82</id>
 
              <fullId>http://purl.bioontology.org/ontology/ICD10/O82</fullId>
 
              <label>Single delivery by caesarean section</label>
 
              <type>Class</type>
 
 
 
              <relations>
 
                <entry>
 
                  <string>ChildCount</string>
 
                  <int>5</int>
 
                </entry>
 
              </relations>
 
            </classBean>
 
            <classBean>
 
 
 
              <id>O81</id>
 
              <fullId>http://purl.bioontology.org/ontology/ICD10/O81</fullId>
 
              <label>Single delivery by forceps and vacuum extractor</label>
 
              <type>Class</type>
 
              <relations>
 
                <entry>
 
                  <string>ChildCount</string>
 
 
 
                  <int>6</int>
 
                </entry>
 
              </relations>
 
            </classBean>
 
            <classBean>
 
              <id>O80</id>
 
              <fullId>http://purl.bioontology.org/ontology/ICD10/O80</fullId>
 
 
 
              <label>Single spontaneous delivery</label>
 
              <type>Class</type>
 
              <relations>
 
                <entry>
 
                  <string>ChildCount</string>
 
                  <int>4</int>
 
                </entry>
 
 
 
              </relations>
 
            </classBean>
 
          </list>
 
        </entry>
 
        <entry>
 
          <string>PAR</string>
 
          <list>
 
            <classBean>
 
 
 
              <id>O00-O99.9</id>
 
              <fullId>http://purl.bioontology.org/ontology/ICD10/O00-O99.9</fullId>
 
              <label>Pregnancy, childbirth and the puerperium</label>
 
              <type>Class</type>
 
              <relations>
 
                <entry>
 
                  <string>ChildCount</string>
 
 
 
                  <int>8</int>
 
                </entry>
 
              </relations>
 
            </classBean>
 
          </list>
 
        </entry>
 
        <entry>
 
          <string>ChildCount</string>
 
 
 
          <int>5</int>
 
        </entry>
 
        <entry>
 
          <string>Semantic_Type</string>
 
          <list>
 
            <string>Therapeutic or Preventive Procedure</string>
 
          </list>
 
 
 
        </entry>
 
        <entry>
 
          <string>TUI</string>
 
          <list>
 
            <string>T061</string>
 
          </list>
 
        </entry>
 
        <entry>
 
 
 
          <string>UMLS_CUI</string>
 
          <list>
 
            <string>C0011209</string>
 
          </list>
 
        </entry>
 
        <entry>
 
          <string>SuperClass</string>
 
 
 
          <list>
 
            <classBean>
 
              <id>O00-O99.9</id>
 
              <fullId>http://purl.bioontology.org/ontology/ICD10/O00-O99.9</fullId>
 
              <label>Pregnancy, childbirth and the puerperium</label>
 
              <type>Class</type>
 
              <relations>
 
 
 
                <entry>
 
                  <string>ChildCount</string>
 
                  <int>8</int>
 
                </entry>
 
              </relations>
 
            </classBean>
 
          </list>
 
        </entry>
 
 
 
      </relations>
 
    </classBean>
 
  </data>
 
</success>
 
</pre>
 
 
 
==  Get all root terms for an ontology version id ==
 
* '''Signature''': ./concepts/{ontology version id}/root?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/concepts/39002/root?email=example@example.org
 
 
 
==  Get a path between two terms ==
 
* '''Signature''': ./path/{ontology_id}/?source={concept1_id}&target={concept2_id}
 
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&target=Tissue
 
 
 
== Get a path between a term and the root ==
 
 
 
* '''Signature''': ./path/{ontology_id}/?source={concept1_id}&target=root
 
 
 
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&target=root
 
 
 
==  Get all terms using the specific ontology version id ==
 
 
 
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.
 
 
 
* '''Signature''': ./concepts/{ontology version id}/all?pagesize={pagesize}&pagenum={pagenum}&email={email_address}
 
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:
 
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&pagenum=1&email=example@example.org
 
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&pagenum=500&email=example@example.org
 
* '''Arguments:'''
 
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)
 
** '''pagenum:''' An integer indicating which page of results to return.
 
 
 
==  Get all terms using the virtual ontology id ==
 
 
 
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.
 
 
 
* '''Signature''': ./virtual/ontology/{ontology id}/all?pagesize={pagesize}&pagenum={pagenum}&email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104/all?&pagesize=50&pagenum=1&email=example@example.org
 
* '''Arguments:'''
 
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)
 
** '''pagenum:''' An integer indicating which page of results to return.
 
 
 
== Changes to the Get all terms service ==
 
 
 
Starting in BioPortal 2.3.1 (released March 15, 2010), the 'Get all terms' service has changed to support speedier and more complete term retrieval. To support this, several changes to the response XML and service signature are being made. Please see the following notes to update your existing applications to support these changes.
 
 
 
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:
 
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&pagenum=1
 
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&pagenum=500
 
 
 
* '''Signature'''
 
** '''New parameters:''' Previously, offset and limit were used to control pagination of results. These parameters have been replaced as follows:
 
*** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)
 
*** '''pagenum:''' An integer indicating which page of results to return.
 
 
 
* '''Response''': The structure of the new 'Get all terms' response XML has been brought into line with other BioPortal REST term services. In addition, to assist in paging through result sets, 'page' metadata is provided. A list of classBeans is provided in the classBeanResultList element, which includes each classes' set of relations (examples of relations include SuperClass, SubClass, and rdfs:label). Please see the example below for a full demonstration of the new response.
 
 
 
= View Extraction Service =
 
* This web service can be used to extract a subtree from an ontology. See [http://www.bioontology.org/wiki/index.php/View_Extraction View Extraction] for usage details.
 
 
 
=  Instance Services =
 
 
 
== Get all direct instances for a given term ==
 
* '''Signature''': ./concepts/instances/{ontlogyVersionId}[?conceptid={uri-encoded concept id}[&{optional args}]&email={email_address}
 
* '''Optional arguments:'''
 
** pagesize=<pagesize> - the number of results to display in a single request (default: all)
 
** pagenum=<pagenum> - the page number to display (pages are calculated using <total results>/<pagesize>) (default: 1)
 
 
 
* '''Example''': http://rest.bioontology.org/bioportal/concepts/instances/38801?conceptid=SubstrateType&pagesize=1&pagenum=1&email=example@example.org
 
* '''Description''': returns all direct instances for a given term.
 
* '''Sample Output:'''
 
<pre>
 
<?xml version="1.0" encoding="UTF8" ?>
 
<success>
 
<accessedResource>/bioportal/concepts/instances/38801
 
</accessedResource>
 
<accessDate>20100408 18:17:21.226 PDT</accessDate>
 
<data>
 
<page>
 
<pageNum>1</pageNum>
 
<numPages>5</numPages>
 
<pageSize>1</pageSize>
 
<numResultsPage>1</numResultsPage>
 
<numResultsTotal>5</numResultsTotal>
 
<contents class="org.ncbo.stanford.bean.concept.InstanceBeanResultListBean">
 
<list>
 
<instanceBean>
 
<id>unknown_substrate_type</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type
 
</fullId>
 
<label>unknown_substrate_type</label>
 
<relations>
 
<entry>
 
<propertyBean>
 
<id>rdf:type</id>
 
<fullId>http://www.w3.org/1999/02/22rdfsyntaxns#type
 
</fullId>
 
<label>rdf:type</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<instanceBean>
 
<id>SubstrateType</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType
 
</fullId>
 
<label>SubstrateType</label>
 
<relations />
 
<instanceType>
 
<list>
 
<classBean>
 
<id>owl:Class</id>
 
<fullId>http://www.w3.org/2002/07/owl#Class
 
</fullId>
 
<label>owl:Class</label>
 
<type>Class</type>
 
<relations />
 
</classBean>
 
</list>
 
</instanceType>
 
</instanceBean>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>:NAME</id>
 
<fullId>:NAME</fullId>
 
<label>:NAME</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<string>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type
 
</string>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>unique_identifier</id>
 
 
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier
 
</fullId>
 
<label>unique_identifier</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<string>MO_484</string>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>:DIRECTTYPE</id>
 
<fullId>:DIRECTTYPE</fullId>
 
<label>:DIRECTTYPE</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<instanceBean>
 
<id>SubstrateType</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType
 
</fullId>
 
<label>SubstrateType</label>
 
<relations />
 
<instanceType>
 
<list>
 
<classBean>
 
<id>owl:Class</id>
 
<fullId>http://www.w3.org/2002/07/owl#Class
 
</fullId>
 
<label>owl:Class</label>
 
<type>Class</type>
 
<relations />
 
</classBean>
 
</list>
 
</instanceType>
 
</instanceBean>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>rdfs:comment</id>
 
<fullId>http://www.w3.org/2000/01/rdfschema#comment
 
</fullId>
 
<label>rdfs:comment</label>
 
<relations />
 
</propertyBean>
 
 
 
<list>
 
<string>SubstrateType of unknown type.</string>
 
</list>
 
</entry>
 
</relations>
 
<instanceType>
 
<list>
 
<classBean>
 
<id>SubstrateType</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType
 
</fullId>
 
<label>SubstrateType</label>
 
<type>Class</type>
 
<relations />
 
</classBean>
 
</list>
 
</instanceType>
 
</instanceBean>
 
</list>
 
</contents>
 
</page>
 
</data>
 
</success>
 
</pre>
 
 
 
== Get an instance and its property/value pairs ==
 
* '''Signature''': ./instance/{ontlogyVersionId}[?instanceid={instanceid}&email={email_address}]
 
 
 
* '''Example''': http://rest.bioontology.org/bioportal/instance/38801?instanceid=glass&email=example@example.org
 
* '''Description''': returns information about an instance and a list of property/value pairs.
 
* '''Sample Output:'''
 
<pre>
 
<?xml version="1.0" encoding="UTF8" ?>
 
<success>
 
<accessedResource>/bioportal/instance/38801
 
</accessedResource>
 
<accessDate>20100408 18:10:48.760 PDT</accessDate>
 
<data>
 
<instanceBean>
 
<id>glass</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass
 
</fullId>
 
<label>glass</label>
 
<relations>
 
<entry>
 
<propertyBean>
 
<id>:NAME</id>
 
<fullId>:NAME</fullId>
 
<label>:NAME</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<string>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass
 
</string>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>unique_identifier</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier
 
</fullId>
 
<label>unique_identifier</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<string>MO_742</string>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>rdfs:comment</id>
 
<fullId>http://www.w3.org/2000/01/rdfschema#comment
 
</fullId>
 
<label>rdfs:comment</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<string>The array is made on a glass slide.</string>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>:DIRECTTYPE</id>
 
<fullId>:DIRECTTYPE</fullId>
 
<label>:DIRECTTYPE</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<instanceBean>
 
<id>SubstrateType</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType
 
</fullId>
 
<label>SubstrateType</label>
 
<relations />
 
<instanceType>
 
<list>
 
<classBean>
 
<id>owl:Class</id>
 
<fullId>http://www.w3.org/2002/07/owl#Class
 
</fullId>
 
<label>owl:Class</label>
 
<type>Class</type>
 
<relations />
 
</classBean>
 
</list>
 
</instanceType>
 
</instanceBean>
 
</list>
 
</entry>
 
<entry>
 
<propertyBean>
 
<id>rdf:type</id>
 
<fullId>http://www.w3.org/1999/02/22rdfsyntaxns#type
 
</fullId>
 
<label>rdf:type</label>
 
<relations />
 
</propertyBean>
 
<list>
 
<instanceBean>
 
<id>SubstrateType</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType
 
</fullId>
 
<label>SubstrateType</label>
 
<relations />
 
<instanceType>
 
<list>
 
<classBean>
 
<id>owl:Class</id>
 
<fullId>http://www.w3.org/2002/07/owl#Class
 
</fullId>
 
<label>owl:Class</label>
 
<type>Class</type>
 
<relations />
 
</classBean>
 
</list>
 
</instanceType>
 
</instanceBean>
 
</list>
 
</entry>
 
</relations>
 
<instanceType>
 
<list>
 
<classBean>
 
<id>SubstrateType</id>
 
<fullId>
 
http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType
 
</fullId>
 
<label>SubstrateType</label>
 
<type>Class</type>
 
<relations />
 
</classBean>
 
</list>
 
</instanceType>
 
</instanceBean>
 
</data>
 
</success>
 
</pre>
 
 
 
=  Hierarchy Services =
 
 
 
The Hierarchy Services only work on the latest version of the ontology (the "virtual ontology").
 
 
 
'''<font color='red'>NOTE: To see which ontology versions have been processed for use with the Hierarchy Services, see http://rest.bioontology.org/obs/ontologies for ontologies with STATUS=28.</font>'''
 
 
 
 
 
 
 
 
 
 
 
==  Get paths to root/leaves from a concept in the latest version of a given ontology  ==
 
* '''Signature''': ./virtual/[rootpath|leafpath]/{ontologyId}/{conceptId}[?email={email_address}&{optional args}]
 
* '''Example''': http://rest.bioontology.org/bioportal/virtual/rootpath/1032/Melanoma?email=example@example.org
 
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/Melanoma?email=example@example.org
 
* '''Optional arguments:'''
 
** offset=<integer> – results offset (used for pagination)
 
** limit=<integer> – limits the number of results
 
* '''Description''': The same as the previous services, but takes an ontology id and returns parents from the latest version of that ontology.
 
 
 
 
 
 
 
==  Get siblings of a given concept in the latest version of a given ontology ==
 
* '''Signature''': ./virtual/siblings/{ontlogyId}/{conceptId}?level=<level>&email={email_address}&[&{optional args}]
 
* '''Example''': http://rest.bioontology.org/bioportal/virtual/siblings/1032/Melanoma?level=1&email=example@example.org
 
* '''Required arguments:'''
 
** level=<integer> - limits results to a given level in the hierarchy
 
* '''Optional arguments:'''
 
** offset=<integer> – results offset (used for pagination)
 
* '''Description''': The same as the previous service, but takes an ontology id and returns parents from the latest version of that ontology.
 
 
 
= Bio2RDF Dump Service =
 
 
 
This service allows you to output a given ontology from BioPortal in the form of a N3 RDF file conforming to the requirements for integrating into the [http://sourceforge.net/projects/bio2rdf/ Bio2RDF] collection.
 
 
 
* '''Signature''': ./ontology/dump_n3/{ontlogyVersionId}?email={email_address}
 
* '''Example''': http://rest.bioontology.org/bioportal/ontology/dump_n3/40865?email=example@example.org
 
 
 
= Annotator Service =
 
 
 
The NCBO Annotator is a Web service that can be used to annotate text metadata with biomedical ontology concepts. The concepts are from ontologies in BioPortal and includes the Unified Medical Language System (UMLS) Metathesaurus, OBO Foundry candidate ontologies and many others.
 
 
 
The Annotator can be tested via a Web interface available through [http://bioportal.bioontology.org/annotate BioPortal]. For more information on using the Annotator Web service, see: http://bioontology.org/wiki/index.php/Annotator_Web_service.
 
 
 
= Resource Index Service =
 
 
 
The Resource Index provides a mechanism to search for biomedical data based on ontology concepts. For more information on using the Resource Index service, see http://www.bioontology.org/wiki/index.php/Resource_Index.
 
 
 
= Prototypes =
 
 
 
== RDF Term Service ==
 
'''Coming in late May, 2010!''' This service allows you to output a snippet of an ontology from BioPortal in the form of an RDF file.
 
* '''Signature''': ./bioportal/rdf/{ontology version id}/{concept id}?email=example@example.org
 
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/{concept id}?email=example@example.org
 
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/{concept id},{concept id},...,{concept id}?email=example@example.org
 
* '''Examples''':
 
** http://rest.bioontology.org/bioportal/virtual/rdf/1321/NEMO_spatial:NEMO_0000024?email=example@example.org
 
** http://rest.bioontology.org/bioportal/rdf/42743/NEMO_spatial:NEMO_0000023?email=example@example.org
 
* '''Required arguments:'''
 
** ontology version id
 
** concept id
 
* '''Description''': returns a BioPortal concept as RDF/XML ontology snippet. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce].
 
** The RDF dump will use URIs that are based on which format the ontology is in:
 
*** '''OWL/RDF(S)''': preserve original URIs
 
*** '''Protégé & RRF''': <nowiki>http://purl.bioontology.org/ontology/{ACRONYM}/{ID}</nowiki>
 
*** '''OBO''': <nowiki>http://purl.obolibrary.org/{IDSPACE}_{LOCALID}</nowiki>
 
* '''Sample Output:'''
 
<pre>
 
<?xml version="1.0"?>
 
<rdf:RDF xmlns="http://purl.bioontology.org/ontology/NEMO/NEMO_spatial:NEMO_0000023.rdf#"
 
 
 
    ...
 
 
 
    <owl:Ontology rdf:about="http://purl.bioontology.org/ontology/NEMO/NEMO_spatial:NEMO_0000023.rdf">
 
        <bioportal:description>Neural ElectroMagnetic Ontologies (NEMO) describe classes of event-related brain potentials (ERP) and their properties, including spatial, temporal, functional (cognitive/behavioral) attributes, and data-level attributes (acquisition and analysis parameters).</bioportal:description>
 
        <bioportal:abbreviation>NEMO</bioportal:abbreviation>
 
        <bioportal:format>OWL</bioportal:format>
 
        <bioportal:date>Wed May 19 09:56:21 PDT 2010</bioportal:date>
 
        <bioportal:uri>http://purl.bioontology.org/ontology/NEMO/NEMO_spatial:NEMO_0000023.rdf</bioportal:uri>
 
        <bioportal:displayLabel>Neural ElectroMagnetic Ontologies</bioportal:displayLabel>
 
        <bioportal:versionNumber>.95</bioportal:versionNumber>
 
        <bioportal:id>42743</bioportal:id>
 
        <bioportal:ontologyId>1321</bioportal:ontologyId>
 
    </owl:Ontology>
 
 
 
    ...
 
 
 
    <owl:Class rdf:about="http://nemo.nic.uoregon.edu/ontologies/working/NEMO_spatial.owl#NEMO_0000023">
 
        <rdfs:label>right_parietal_scalp_surface_region</rdfs:label>
 
        <rdfs:subClassOf rdf:resource="http://nemo.nic.uoregon.edu/ontologies/working/NEMO_spatial.owl#NEMO_0000006"/>
 
        <skos:broader>NEMO_spatial:NEMO_0000006</skos:broader>
 
        <skos:notation>NEMO_spatial:NEMO_0000023</skos:notation>
 
        <skos:prefLabel>right_parietal_scalp_surface_region</skos:prefLabel>
 
    </owl:Class>
 
</rdf:RDF>
 
 
 
<!-- Generated by the OWL API (version 3.0.0.1447) http://owlapi.sourceforge.net -->
 
</pre>
 
 
 
== RDF Download Service ==
 
'''Coming in late July, 2010.''' This service allows you to download an entire ontology from BioPortal in the form of an RDF file.
 
* '''Signature''': ./bioportal/rdf/download/{ontology version id}?email=example@example.org
 
* '''Alt Signature''': ./bioportal/virtual/rdf/download/{ontology id}?email=example@example.org
 
* '''Examples''':
 
** http://rest.bioontology.org/bioportal/virtual/rdf/download/1321?email=example@example.org
 
** http://rest.bioontology.org/bioportal/rdf/download/42743?email=example@example.org
 
* '''Required arguments:'''
 
** ontology version id
 
* '''Description''': returns a BioPortal ontology as RDF/XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce].
 
** The RDF dump will use URIs that are based on which format the ontology is in:
 
*** '''OWL/RDF(S)''': preserve original URIs
 
*** '''Protégé & RRF''': http://purl.bioontology.org/ontology/{abbreviation}/{concept_id}
 
*** '''OBO''': http://purl.obolibrary.org/{idspace}_{localid}
 
 
 
== Notes Service ==
 
The prototype notes service has been replaced with a new [[Ontology_Notes|structured notes service]].
 
 
 
== Mapping Service ==
 
* ''' Production Mapping Web Service'''
 
** The production Mapping Web service is described here: http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service. Example Web service signatures are included for testing code updates.
 
 
 
* '''Prototype'''
 
** '''Signature''': ./mappings/service/{ontology_id}/{concept_id}
 
** '''Example''': http://bioportal.bioontology.org/mappings/service/1083/
 
** '''Required arguments:'''
 
*** ontology_id
 
** '''Optional arguments:'''
 
*** concept_id=if concept_id is included, the service will return all mappings to and from the given concept
 
** '''Description''': returns BioPortal Mappings as XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]
 
** '''Example Code:''' [http://www.bioontology.org/wiki/index.php/ExtractMappings Extract Mappings]
 
** '''Sample Output:'''
 
<pre>
 
<hash>
 
  <mapping-from type="array">
 
    <mapping-from>
 
      <comment nil="true"></comment>
 
      <map-type>Human</map-type>
 
      <created-at>2008-05-09 08:25:23</created-at>
 
      <updated-at>2008-08-05 17:26:06</updated-at>
 
 
 
      <source-name>Carbon</source-name>
 
      <source-ont-name>NanoParticle Ontology (NPO)</source-ont-name>
 
      <destination-id>CHEBI:27594</destination-id>
 
      <id>98216</id>
 
      <user-id>38139</user-id>
 
      <relationship-type nil="true"></relationship-type>
 
 
 
      <destination-ont-name>Chemical entities of biological interest</destination-ont-name>
 
      <destination-name>Carbon</destination-name>
 
      <map-source nil="true"></map-source>
 
      <destination-ont>1007</destination-ont>
 
      <source-id>Carbon</source-id>
 
      <destination-version-id>38377</destination-version-id>
 
 
 
      <source-version-id>29531</source-version-id>
 
      <source-ont>1083</source-ont>
 
    </mapping-from> 
 
    <mapping-from>
 
      <comment nil="true"></comment>
 
      <map-type>Human</map-type>
 
      <created-at>2008-05-09 08:27:05</created-at>
 
 
 
      <updated-at>2008-08-05 17:26:06</updated-at>
 
      <source-name>Gold</source-name>
 
      <source-ont-name>NanoParticle Ontology (NPO)</source-ont-name>
 
      <destination-id>CHEBI:29287</destination-id>
 
      <id>98218</id>
 
      <user-id>38139</user-id>
 
 
 
      <relationship-type nil="true"></relationship-type>
 
      <destination-ont-name>Chemical entities of biological interest</destination-ont-name>
 
      <destination-name>Gold</destination-name>
 
      <map-source nil="true"></map-source>
 
      <destination-ont>1007</destination-ont>
 
      <source-id>Gold</source-id>
 
      <destination-version-id>38377</destination-version-id>
 
 
 
      <source-version-id>29531</source-version-id>
 
      <source-ont>1083</source-ont>
 
    </mapping-from>
 
  </mapping-from>
 
  <mapping-to type="array">
 
    <mapping-to>
 
      <comment nil="true"></comment>
 
      <map-type>Human</map-type>
 
 
 
      <created-at>2008-05-09 08:35:27</created-at>
 
      <updated-at>2008-08-05 17:26:06</updated-at>
 
      <source-name>Carbohydrate</source-name>
 
      <source-ont-name>NanoParticle Ontology (NPO)</source-ont-name>
 
      <destination-id>Carbohydrate</destination-id>
 
      <id>98219</id>
 
 
 
      <user-id>38139</user-id>
 
      <relationship-type nil="true"></relationship-type>
 
      <destination-ont-name>NanoParticle Ontology (NPO)</destination-ont-name>
 
      <destination-name>Carbohydrate</destination-name>
 
      <map-source nil="true"></map-source>
 
      <destination-ont>1083</destination-ont>
 
      <source-id>Carbohydrate</source-id>
 
 
 
      <destination-version-id>29531</destination-version-id>
 
      <source-version-id>29531</source-version-id>
 
      <source-ont>1083</source-ont>
 
    </mapping-to>
 
  </mapping-to>
 
</hash>
 
 
 
</pre>
 
 
 
 
 
<!--
 
= Usage Logging =
 
* '''Signature''': ./usage?{args}
 
* '''Example''': http://rest.bioontology.org/bioportal/usage?requesturl=ontologies&resourceparameters=13578&email=example@example.org
 
* '''Required arguments:'''
 
** none specifically, but at least one optional argument is required
 
* '''Optional arguments:'''
 
** requesturl=<string contained in request url> – limit results to a given string contained in REST service request url. Unique values for the requesturl are:
 
<pre>
 
  /categories
 
  /concepts/{ontology version id}/{concept id}
 
  /concepts/{children or leafpath or parents or siblings}/{ontology version id}/{concept id}
 
  /diffs/{virtual id}
 
  /ontologies/{ontology version id}
 
  /ontologies/download/{ontology version id}
 
  /ontologies/versions/{ontology virtual id}
 
  /path/{ontology version id}/{concept id}
 
  /search/{search terms}
 
  /virtual/{virtual id}
 
  /virtual/ontology/{virtual id}/{concept id}
 
  /virtual/rootpath/{virtual id}/{concept id}
 
  /virtual/siblings/{virtual id}/{concept id}
 
</pre>
 
** resourceparameters=<string contained in resource parameters> – limit results to a given string contained in resource parameters. For example, in the URL http://rest.bioontology.org/bioportal/search/melanoma, the word "melanoma" is considered a "resource parameter".
 
** startdateaccessed=<date in format mm/dd/yyyy> – limit results to the given starting date (default: no starting date)
 
** startdateaccessed=<date in format mm/dd/yyyy> – limit results to the given ending date (default: today's date)
 
* '''Description''': returns BioPortal REST services usage data as XML.
 
* '''Sample Output:'''
 
<pre>
 
<?xml version="1.0" encoding="UTF-8" ?>
 
<success>
 
<accessedResource>/bioportal/usage</accessedResource>
 
<accessDate>2009-07-27 14:21:19.728 PDT</accessDate>
 
<data>
 
<list>
 
<usageLoggingBean>
 
<requestUrl>
 
/search/Certain infectious and parasitic diseases/
 
</requestUrl>
 
<httpMethod>GET</httpMethod>
 
<resourceParameters>
 
query=Certain%20infectious%20and%20parasitic%20diseases
 
</resourceParameters>
 
<requestParameters>
 
pagenum=1&ontologyids=1265&pagesize=20
 
</requestParameters>
 
<hitCount>1</hitCount>
 
<dateAccessed class="sql-timestamp">
 
2009-07-27 00:00:00.0
 
</dateAccessed>
 
</usageLoggingBean>
 
<usageLoggingBean>
 
<requestUrl>/search/Hypertension/</requestUrl>
 
<httpMethod>GET</httpMethod>
 
<resourceParameters>
 
query=Hypertension
 
</resourceParameters>
 
<requestParameters>
 
pagenum=1&ontologyids=1265&pagesize=20
 
</requestParameters>
 
<hitCount>2</hitCount>
 
<dateAccessed class="sql-timestamp">
 
2009-07-27 00:00:00.0
 
</dateAccessed>
 
</usageLoggingBean>
 
<usageLoggingBean>
 
<requestUrl>/search/Melanoma/</requestUrl>
 
<httpMethod>GET</httpMethod>
 
<resourceParameters>query=Melanoma</resourceParameters>
 
<requestParameters>
 
pagenum=1&ontologyids=1265&pagesize=20
 
</requestParameters>
 
<hitCount>3</hitCount>
 
<dateAccessed class="sql-timestamp">
 
2009-07-27 00:00:00.0
 
</dateAccessed>
 
</usageLoggingBean>
 
</list>
 
</data>
 
</success>
 
</pre>
 
-->
 
 
 
= XML Schema Definitions for the REST services =
 
 
 
XML Schema for [[#Term_services|concept]] and [[#Hierarchy_Services|hierarchy]] services have been provided courtesy Eamonn Maguire. An updated XML Schema document will be posted shortly.
 

Latest revision as of 22:00, 16 July 2016

NCBO BioPortal v4.0 REST services are documented at: http://data.bioontology.org/documentation