Difference between revisions of "Resource Index REST Web Service User Guide"

From NCBO Wiki
Jump to navigation Jump to search
 
(74 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
'''version 2.0 (REST Web Services API) is obsolete
 +
NCBO BioPortal v4.0 REST services are documented at: http://data.bioontology.org/documentation'''
 +
 
===Introduction===
 
===Introduction===
 
The Resource Index API is available through a REST web services interface.
 
The Resource Index API is available through a REST web services interface.
Line 6: Line 9:
 
The Resource index API is based on the web service that returns annotations from the Resource Index (called via a REST post). Additionally some simplified REST get services returned simplified results.
 
The Resource index API is based on the web service that returns annotations from the Resource Index (called via a REST post). Additionally some simplified REST get services returned simplified results.
  
 
'''Attention, this documentation is not currently in sync with the deployed version... we plan to release pretty soon the new API (that goes with this documentation). Please refer to the history of this wiki page for [http://www.bioontology.org/wiki/index.php?title=Resource_Index_REST_Web_Service_User_Guide&oldid=10015, old documentation].'''
 
  
 
----
 
----
Line 13: Line 14:
 
===Sample HTTP Client for the Resource Index REST Web Service===
 
===Sample HTTP Client for the Resource Index REST Web Service===
  
Test HTML Page : http://rest.bioontology.org/resource_index/test
+
* Test HTML Page : http://rest.bioontology.org/resource_index/test
  
Resources Service Page : http://rest.bioontology.org/resource_index/resources/list/
+
* Test HTML Page ('''element per concept(s)''') : http://rest.bioontology.org/resource_index/test/search
  
===Service endpoint===
+
=== List of Resource Index Resources ===
 +
* Resources Page : http://rest.bioontology.org/resource_index/resources/list/
  
http://rest.bioontology.org/resource_index/
+
===Service endpoints===
 +
* To retrieve "annotations" either per element or per concept(s) : http://rest.bioontology.org/resource_index/
 +
 
 +
* To retrieve "element" per concept(s) : http://rest.bioontology.org/resource_index/search
 +
 
 +
=== Resource Index Web service Validation ===
 +
* '''<font color='red'>Note</font>''': All NCBO REST Web services will be required to contain the parameter "apikey=YourApiKey" starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, login to BioPortal and go to "Account" where your API key will be displayed. The addition of the API key replaces the use of the email parameter.
 +
 
 +
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to "Account" where your API key will be displayed. The addition of the API key replaces the use of the email parameter.
  
 
=== POST calls ===
 
=== POST calls ===
  
POST your requests at the service endpoint.
+
POST your requests at the service endpoints.
  
 
====Parameters====
 
====Parameters====
Line 31: Line 41:
 
Please see below for the list of parameters and the possible values.
 
Please see below for the list of parameters and the possible values.
  
'''Note** :''' ''Parameter '''email''' and '''applicationid''' are applies to all POST and GET calls.''
+
'''Note** :''' ''Parameter '''apikey''' and '''applicationid''' applies to all POST and GET calls.''
  
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''email**'''
+
|width="10%"|'''apikey**'''
|width="10%"|{email id}
+
|width="10%"|{apikey}
 
|width="10%"|default: null
 
|width="10%"|default: null
|width="70%"|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.
+
|width="70%"|User identification query parameter with the pattern of "apikey=YourAPIKey". This parameter replaces the email parameter. The parameter will be required in June 2011.
  
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''applicationid**'''
 
|width="10%"|'''applicationid**'''
|width="10%"|{aplicationid}
+
|width="10%"|{applicationid}
 
|width="10%"|default: null  
 
|width="10%"|default: null  
|width="70%"|Identifies the application calling the REST service.
+
|width="70%"|Identifies the application calling the REST service. To receive your "applicationid" please request one from [mailto:support@bioontology.org Support].
  
 
|-valign="top"
 
|-valign="top"
Line 116: Line 126:
 
|width="10%"|{true, false}
 
|width="10%"|{true, false}
 
|width="10%"|default: false
 
|width="10%"|default: false
|width="70%"|Specifies the if the list of ontologies are all BioPortal virtual ontology IDs. This parameter applies to both conceptids and ontologiesToKeepInResult parameters.
+
|width="70%"|Specifies the if the list of ontologies are all BioPortal virtual ontology ids. This parameter applies to both conceptids and ontologiesToKeepInResult parameters.
  
 
|-valign="top"
 
|-valign="top"
Line 132: Line 142:
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''resourceid'''
+
|width="10%"|'''resourceids'''
 
|width="10%"|
 
|width="10%"|
 
|width="10%"|default: all
 
|width="10%"|default: all
|width="70%"|Specifies the resource to filter the annotations with. The resourceid identifies a resource in the Resource Index. They are defined in section Resource identifiers. The list of resourceid can be used is available at the /obs/resources URL.  
+
|width="70%"|Specifies the resource to filter the annotations with. The resourceids identifies a resource in the Resource Index. They are defined in section Resource identifiers. The list of resourceids can be used is available at the /obs/resources URL.  
 
* For example, GEO,CT,AE.
 
* For example, GEO,CT,AE.
  
Line 151: Line 161:
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''from and number'''
+
|width="10%"|'''offset and limit'''
|width="10%"|{real_number}
+
|width="10%"|{integer}
 
|width="10%"|default: 0/10 respectively  
 
|width="10%"|default: 0/10 respectively  
|width="70%"|Specifies an offset of annotations defined by from and number.
+
|width="70%"|Specifies an offset and limits the number of annotation results.
  
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''format'''
 
|width="10%"|'''format'''
|width="10%"|{text,tabDelimited, xml}
+
|width="10%"|{text, tabDelimited, owl, rdf, xml}
 
|width="10%"|default: xml
 
|width="10%"|default: xml
|width="70%"|Specifies the desired format of the response.
+
|width="70%"|Specifies the desired format of the response. RDF and OWL outputs are defined according to a RDFS schema and OWL ontology respectively available here: http://obs.bioontology.org/ontologies/BioPortalAnnotation.rdfs and http://obs.bioontology.org/ontologies/NCBO_OBS_ontology.owl
  
 
|}
 
|}
Line 168: Line 178:
 
'''Response Format'''
 
'''Response Format'''
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
 +
|-valign="top"
 +
|width="10%"|'''text'''
 +
|width="90%"| Returns plain text representation of the ObrResultBean(Detailled).
 +
 +
|-valign="top"
 +
|width="10%"|'''tabDelimited'''
 +
|width="90%"| Shorter version of "Text" format, returns not the full result content but the annotations only (no statistics, etc.). The format of the tab delimited file is: score \t conceptId \t preferredName \t synonyms (separated by ' /// ') \t semanticType (separated by ' /// ') \t contextName \t isDirect \t other context information (e.g., childConceptId, mappedConceptId, level, mappingType) (separated by ' /// ').
 +
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''xml'''
 
|width="10%"|'''xml'''
|width="90%"| returns XML representation of the ObrResultBeanDetailled.
+
|width="90%"| Returns XML representation of the ObrResultBean(Detailled).
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''text'''
+
|width="10%"|'''owl'''
|width="90%"| returns plain text representation of the ObrResultBeanDetailled.
+
|width="90%"| Returns OWL representation of the ObrResultBean(Detailled). The elementsof the result (dictionary, parameters, annotations, etc) are described as instances in the following ontology: http://obs.bioontology.org/ontologies/NCBO_OBS_ontology.owl
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''tabDelimited'''
+
|width="10%"|'''rdf'''
|width="90%"| shorter version of "Text" format. returns not the full result content but the annotations only (no statistics, etc.). The format of the tab delimited file is: score \t conceptId \t preferredName \t synonyms (separated by ' /// ') \t semanticType (separated by ' /// ') \t contextName \t isDirect \t other context information (e.g., childConceptId, mappedConceptId, level, mappingType) (separated by ' /// ').  
+
|width="90%"| Returns RDF representation of the annotations in ObrResultBean(Detailled). The elements of the result are described as instances in the following ontology: http://obs.bioontology.org/ontologies/BioPortalAnnotation.rdfs
 
|}
 
|}
  
'''Note :''' ''if request parameter withContext is true, then returns representation of the ObrResultBeanDetailled and if request parameter withContext is false, then returns representation of the ObrResultBean.''
+
'''Note :''' ''if request parameter withContext is true, then returns representation of the ObrResultBeanDetailed and if request parameter withContext is false, then returns representation of the ObrResultBean.''
  
'''Response Content: ObrResultBeanDetailled'''
+
'''Response Content: ObrResultBeanDetailed'''
  
Response ObrResultBeanDetailled contains all the contents of ObrResultBean. Those contents are described in section Response Content: ObrResultBean.
+
Response ObrResultBeanDetailed contains all the contents of ObrResultBean. Those contents are described in section Response Content: ObrResultBean.
  
Following are remaining contents for ObrResultBeanDetailled :
+
Following are remaining contents for ObrResultBeanDetailed :
  
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''directAnnotations'''
 
|width="10%"|'''directAnnotations'''
|width="90%"| ObrAnnotationBean is a representation of one annotation.
+
|width="90%"| One '''annotation''' is represented by ''ObrAnnotationBean''.
  
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''isaAnnotations'''
 
|width="10%"|'''isaAnnotations'''
|width="90%"| ObrAnnotationBean is a representation of one annotation.
+
|width="90%"| One '''annotation''' is represented by ''ObrAnnotationBean''.
  
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''mappingAnnotations'''
 
|width="10%"|'''mappingAnnotations'''
|width="90%"| ObrAnnotationBean is a representation of one annotation.
+
|width="90%"| One '''annotation''' is represented by ''ObrAnnotationBean''.
 
   
 
   
 
|}
 
|}
Line 210: Line 228:
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''resultID'''
+
|width="10%"|'''resultId'''
 
|width="90%"|
 
|width="90%"|
 
|-valign="top"
 
|-valign="top"
Line 216: Line 234:
 
|width="90%"| Dictionary contains the metadata (not the content) of the dictionary used for a result. dictionaryId, dictionaryName, and dictionaryDate identify the dictionary on the server side and give information about its content. Dictionary versioning is strongly linked to the evolution of the ontologies used. Each time ontologies change, the dictionary is updated. All the dictionary information may be useful for comparing results of the Annotator Restlet service on time.
 
|width="90%"| Dictionary contains the metadata (not the content) of the dictionary used for a result. dictionaryId, dictionaryName, and dictionaryDate identify the dictionary on the server side and give information about its content. Dictionary versioning is strongly linked to the evolution of the ontologies used. Each time ontologies change, the dictionary is updated. All the dictionary information may be useful for comparing results of the Annotator Restlet service on time.
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''statistics'''
+
|width="10%"|'''resultStatistics'''
|width="90%"| Statistics contains information on the number of annotations done for a given context. The contextName keyword identifies the type of context and nbAnnotation is the number of annotations of this type.
+
|width="90%"| Each '''statistics''' contains information on the number of annotations done for a given context. The contextName keyword identifies the type of context and annotationCount is the number of annotations of this type.
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''parameters'''
 
|width="10%"|'''parameters'''
Line 226: Line 244:
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''annotations'''
 
|width="10%"|'''annotations'''
|width="90%"| ObrAnnotationBean/ObrAnnotationBeanDetailled is a representation of one annotation. If ''elementDetails'' parameter is true the service return response of type ObrAnnotationBean ,otherwise ObrAnnotationBeanDetailled.  An annotation has a score which represents the accuracy of the annotation computed by the scoring algorithm (if the scored=true parameter was chosen, otherwise score=-1). An annotation is done with a concept in a context.
+
|width="90%"| ''ObrAnnotationBean/ObrAnnotationBeanDetailed'' is a representation of one '''annotation/annotationDetailed'''. If ''elementDetails'' parameter is true the service return response of type '''annotation''', otherwise '''annotationDetailed'''.  An annotation has a score which represents the accuracy of the annotation computed by the scoring algorithm (if the scored=true parameter was chosen, otherwise score=-1). An annotation is done with a concept in a context.
  
 
'''Response Content: ObrAnnotationBeanDetailled'''
 
'''Response Content: ObrAnnotationBeanDetailled'''
  
Response ObrAnnotationBeanDetailled contains all the contents of ObrAnnotationBean. Those contents are described in section Response Content: ObrAnnotationBean.
+
Response ObrAnnotationBeanDetailed contains all the contents of ObrAnnotationBean. Those contents are described in section Response Content: ObrAnnotationBean.
  
Following are remaining contents for ObrAnnotationBeanDetailled :
+
Following are remaining contents for ObrAnnotationBeanDetailed :
  
 
{| border="2" <!-- The nested table must be on a new line -->
 
{| border="2" <!-- The nested table must be on a new line -->
Line 239: Line 257:
 
|width="10%"|'''element'''
 
|width="10%"|'''element'''
 
|width="90%"|
 
|width="90%"|
* ''localElementID'' - Global identifier for the resource element.  
+
* ''localElementId'' - Global identifier for the resource element.  
 
* ''elementStructure'' - Represents Structure of an element for a given resource.   
 
* ''elementStructure'' - Represents Structure of an element for a given resource.   
  
Line 246: Line 264:
 
{| border="2" style="background:#ABCDEF;"<!-- The nested table must be on a new line -->
 
{| border="2" style="background:#ABCDEF;"<!-- The nested table must be on a new line -->
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''resourceID'''
+
|width="10%"|'''resourceId'''
 
|width="90%"|resource identifier for Resource.
 
|width="90%"|resource identifier for Resource.
  
Line 262: Line 280:
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''ontoIDs'''
+
|width="10%"|'''ontoIds'''
|width="90%"|map contain ontologyIDs for each context (as String).  
+
|width="90%"|map contain ontologyIds for each context (as String).  
 
|}
 
|}
  
Line 272: Line 290:
 
{| border="2" <!-- The nested table must be on a new line -->
 
{| border="2" <!-- The nested table must be on a new line -->
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''localElementID'''
+
|width="10%"|'''localElementId'''
 
|width="90%"| Identifier for resource element.
 
|width="90%"| Identifier for resource element.
 
|-valign="top"
 
|-valign="top"
Line 294: Line 312:
 
|width="90%"| represents direct annotations done with the Mgrep concept recognizer. A Mgrep context has 3 properties:  
 
|width="90%"| represents direct annotations done with the Mgrep concept recognizer. A Mgrep context has 3 properties:  
 
* ''termName'' - the expression (preferred name or synonyms) that was matched by Mgrep.  
 
* ''termName'' - the expression (preferred name or synonyms) that was matched by Mgrep.  
* ''from'' and ''to'' - specify the character index in the given text for the matched expression.
+
* ''from'' and ''to'' - specify the character index in the given text for the matched expression. Attention, those values are in number of bytes, not characters e.g., ½ is a two-byte character, thus will count for 2 characters.
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''ISA_CLOSURE'''
 
|width="10%"|'''ISA_CLOSURE'''
Line 312: Line 330:
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''localElementID localConceptIDs mode withContext elementDetails counts offsetStart offsetMax'''
+
|width="10%"|'''localElementId localConceptIds mode withContext elementDetails counts offsetStart offsetMax'''
 
|width="90%"| Parameters summarizes all the parameters specified by the user when requesting the Resource Index Restlet service. Those parameters are described in section Service parameters
 
|width="90%"| Parameters summarizes all the parameters specified by the user when requesting the Resource Index Restlet service. Those parameters are described in section Service parameters
  
 
|}
 
|}
 
  
 
===GET calls===
 
===GET calls===
Line 322: Line 339:
  
 
====Annotation by Concept Service====
 
====Annotation by Concept Service====
Returns the set of annotations done with a given localConceptID.
+
Returns the set of annotations done with a given localConceptId.
  
*GET Request Format :  '''/byconcept/{ontologyid}/{withContext}/{counts}/{from}/{number}?conceptid={conceptid}'''
+
*GET Request Format :  '''/byconcept/{ontologyid}/{withContext}/{counts}/{offset}/{limit}?conceptid={conceptid}'''
*Example : http://rest.bioontology.org/resource_index/byconcept/42693/false/true/0/10?conceptid=Melanoma&email=example@bioontology.org&applicationid=NCBOtest
+
*Example : http://rest.bioontology.org/resource_index/byconcept/42838/false/true/0/10?conceptid=Melanoma&apikey=YourAPIKey
 
*Old Request Format*  :
 
*Old Request Format*  :
 
**/byconcept/{ontologyID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/{ontologyID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/{ontologyID}/{conceptID}/{withContext}/{counts}/{from}/{number}
 
**/byconcept/{ontologyID}/{conceptID}/{withContext}/{counts}/{from}/{number}
  
*Response Content : ObrResultBean/ObrResultBeanDetailled. If request parameter withContext is true, then returns representation of the ObrResultBeanDetailled and if request parameter withContext is false, then returns representation of the ObrResultBean.
+
*Response Content : ''ObrResultBean/ObrResultBeanDetailed'' is a representation of  '''result/resultDetailed'''. If request parameter withContext is true, then returns representation of the '''resultDetailed''' and if request parameter withContext is false, then returns representation of the '''result'''.
  
 
====Annotation for BioPortal virtual ontology Concept Service ====
 
====Annotation for BioPortal virtual ontology Concept Service ====
Returns the set of all annotations done with a given localConceptID using BioPortal virtual ontology ID.
+
Returns the set of all annotations done with a given localConceptId using BioPortal virtual ontology id.
  
*GET Request Format :  '''/byconcept/virtual/{virtualOntologyID}/{withContext}/{counts}/{from}/{number}?conceptid={conceptid}'''
+
*GET Request Format :  '''/byconcept/virtual/{virtual_ontology_id}/{withContext}/{counts}/{offset}/{limit}?conceptid={conceptid}'''
*Example : http://rest.bioontology.org/resource_index/byconcept/virtual/1032/false/true/0/10?conceptid=Melanoma&email=example@bioontology.org&applicationid=NCBOtest
+
*Example : http://rest.bioontology.org/resource_index/byconcept/virtual/1032/false/true/0/10?conceptid=Melanoma&apikey=YourAPIKey
 
*Old Request Format* :  
 
*Old Request Format* :  
 
**/byconcept/virtual/{virtualOntologyID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/virtual/{virtualOntologyID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/virtual/{virtualOntologyID}/{conceptID}/{withContext}/{counts}/{from}/{number}
 
**/byconcept/virtual/{virtualOntologyID}/{conceptID}/{withContext}/{counts}/{from}/{number}
 
   
 
   
*Response Content : ObrResultBean/ObrResultBeanDetailled.
+
*Response Content : ''ObrResultBean/ObrResultBeanDetailed'' is a representation of  '''result/resultDetailed'''.
  
 
====Annotation By Concept And Resource Service ====
 
====Annotation By Concept And Resource Service ====
Returns the set of all annotations done with a given localConceptID for given resourceID.
+
Returns the set of all annotations done with a given localConceptId for given resourceId.
  
*GET Request Format :  '''/byconcept/{ontologyid}/{resourceid}/{withContext}/{counts}/{from}/{number}?conceptid={conceptid}'''
+
*GET Request Format :  '''/byconcept/{ontologyid}/{resourceid}/{withContext}/{counts}/{offset}/{limit}?conceptid={conceptid}'''
*Example : http://rest.bioontology.org/resource_index/byconcept/42693/AE/false/true/0/10?conceptid=Melanoma&email=example@bioontology.org&applicationid=NCBOtest
+
*Example : http://rest.bioontology.org/resource_index/byconcept/42838/AE/false/true/0/10?conceptid=Melanoma&apikey=YourAPIKey
 
*Old Request Format* :  
 
*Old Request Format* :  
 
**/byconcept/{ontologyID}/{resourceID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/{ontologyID}/{resourceID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/{ontologyID}/{conceptID}/{resourceID}/{withContext}/{counts}/{from}/{number}/{from}/{number}
 
**/byconcept/{ontologyID}/{conceptID}/{resourceID}/{withContext}/{counts}/{from}/{number}/{from}/{number}
 
   
 
   
*Response Content : ObrResultBean/ObrResultBeanDetailled.
+
*Response Content : ''ObrResultBean/ObrResultBeanDetailed'' is a representation of  '''result/resultDetailed'''.
  
 
====Annotation for BioPortal virtual ontology Concept And Resource Service ====
 
====Annotation for BioPortal virtual ontology Concept And Resource Service ====
Returns the set of all annotations done with a given localConceptID using BioPortal virtual ontology ID and using particular resourceID.
+
Returns the set of all annotations done with a given localConceptId using BioPortal virtual ontology id and using particular resourceId.
  
*GET Request Format :  '''/byconcept/virtual/{virtualOntologyID}/{resourceid}/{withContext}/{counts}/{from}/{number}?conceptid={conceptid}'''
+
*GET Request Format :  '''/byconcept/virtual/{virtual_ontology_id}/{resourceid}/{withContext}/{counts}/{offset}/{limit}?conceptid={conceptid}'''
*Example : http://rest.bioontology.org/resource_index/byconcept/virtual/1032/AE/false/true/0/10?conceptid=Melanoma&email=example@bioontology.org&applicationid=NCBOtest
+
*Example : http://rest.bioontology.org/resource_index/byconcept/virtual/1032/AE/false/true/0/10?conceptid=Melanoma&apikey=YourAPIKey
 
*Old Request Format* :   
 
*Old Request Format* :   
 
**/byconcept/virtual/{virtualOntologyID}/{resourceID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/virtual/{virtualOntologyID}/{resourceID}/{withContext}/{counts}/{from}/{number}?conceptID={conceptID}
 
**/byconcept/virtual/{virtualOntologyID}/{conceptID}/{resourceID}/{withContext}/{counts}/{from}/{number}
 
**/byconcept/virtual/{virtualOntologyID}/{conceptID}/{resourceID}/{withContext}/{counts}/{from}/{number}
  
*Response Content : ObrResultBean/ObrResultBeanDetailled.
+
*Response Content : ''ObrResultBean/ObrResultBeanDetailed'' is a representation of  '''result/resultDetailed'''.
 +
 
 +
'''For Multiple resources using service at basis URL'''
 +
*GET Request Format :  '''/?conceptids={conceptids}&isVirtualOntologyId=true&resourceids={resourceids}&withContext={withContext}&counts={counts}&offset={offset}&limit={limit}&levelMax=2147483647&filterNumber=false'''
 +
*Example : http://rest.bioontology.org/resource_index/?conceptids=1032/Melanoma&isVirtualOntologyId=true&resourceids=CT,DBK,OMIM,RXRD&withContext=true&counts=true&offset=0&limit=10&levelMax=2147483647&filterNumber=false&apikey=YourAPIKey
 +
 
 +
*Response Content : '''result/resultDetailed''' for each resource. ''ObrResultBean/ObrResultBeanDetailed'' is a representation of one '''result/resultDetailed'''
  
 
====Annotation By Resource Element Service ====
 
====Annotation By Resource Element Service ====
Returns the set of all annotations done with a given resource element localElementID for all the concepts.
+
Returns the set of all annotations done with a given resource element localElementId for all the concepts.
 +
 
 +
*GET Request Format :  '''/byelement/{resourceid}/{elementDetails}{withContext}/{counts}/{offset}/{limit}?elementid={elementid}'''
 +
*Example 1 : http://rest.bioontology.org/resource_index/byelement/AE/false/true/false/0/10?elementid=E-GEOD-18509&apikey=YourAPIKey
 +
*Example 1 : http://rest.bioontology.org/resource_index/byelement/AE/true/true/false/0/10?elementid=E-GEOD-18509&apikey=YourAPIKey
  
*GET Request Format :  '''/byelement/{resourceid}/{withContext}/{counts}/{from}/{number}?elementid={elementid}'''
 
*Example : http://rest.bioontology.org/resource_index/byelement/AE/true/false/0/10?elementid=E-GEOD-18509&email=example@bioontology.org&applicationid=NCBOtest
 
 
*Old Request Format* :   
 
*Old Request Format* :   
 
**/byelement/{resourceID}/{withContext}/{counts}/{from}/{number}?elementID={localElementID}
 
**/byelement/{resourceID}/{withContext}/{counts}/{from}/{number}?elementID={localElementID}
 
**/byelement/{resourceID}/{localElementID}/{withContext}/{counts}/{from}/{number}
 
**/byelement/{resourceID}/{localElementID}/{withContext}/{counts}/{from}/{number}
 
   
 
   
*Response Content : ObrResultBean/ObrResultBeanDetailled.
+
*Response Content : ''ObrResultBean/ObrResultBeanDetailed'' is a representation of  '''result/resultDetailed'''.
  
 
====Annotation Details By Resource Element Service ====
 
====Annotation Details By Resource Element Service ====
Returns the set of all annotations details with a given resource element localElementID for given conceptID
+
Returns the set of all annotations details with a given resource element localElementId for given conceptId
  
*GET Request Format :  '''/details/{elementDetails}/concept/{ontologyid}/resource/{resourceid}?conceptid={conceptid}&elementid={elementid}'''
+
*GET Request Format :  '''/details/{elementDetails}/concept/{ontologyid}/resource/{resourceid}/{offset}/{limit}?conceptid={conceptid}&elementid={elementid}'''
*Example1 : http://rest.bioontology.org/resource_index/details/true/concept/42693/resource/AE?conceptid=Melanoma&elementid=E-GEOD-18509&email=example@bioontology.org&applicationid=NCBOtest
+
*Example : http://rest.bioontology.org/resource_index/details/true/concept/42838/resource/AE/0/10?conceptid=Melanoma&elementid=E-GEOD-18509&apikey=YourAPIKey
*Example1 : http://rest.bioontology.org/resource_index/details/false/concept/42693/resource/AE?conceptid=Melanoma&elementid=E-GEOD-18509&email=example@bioontology.org&applicationid=NCBOtest
 
 
*Old Request Format* :   
 
*Old Request Format* :   
 
**/details/{elementDetails}/concept/{ontologyID}/resource/{resourceID}?conceptID={conceptID}&elementID={localElementID}
 
**/details/{elementDetails}/concept/{ontologyID}/resource/{resourceID}?conceptID={conceptID}&elementID={localElementID}
 
**/details/{elementDetails}/concept/{ontologyID}/{conceptID}/resource/{resourceID}/element/{localElementID}
 
**/details/{elementDetails}/concept/{ontologyID}/{conceptID}/resource/{resourceID}/element/{localElementID}
 
   
 
   
*Response Content :  ObrAnnotationBeanDetailled if elementDetails is true otherwise ObrAnnotationBean
+
*Response Content :  ''ObrAnnotationBean/ObrAnnotationBeanDetailed'' is a representation of one '''annotation/annotationDetailed'''. annotationDetailed if elementDetails is true otherwise annotation.
  
 
====Annotation Details By Resource Element Service for BioPortal Virtual OntologyID====
 
====Annotation Details By Resource Element Service for BioPortal Virtual OntologyID====
Returns the set of all annotations details with a given resource element localElementID for given conceptID of BioPortal virtual ontologyID
+
Returns the set of all annotations details with a given resource element localElementId for given conceptId of BioPortal virtual ontologyId
  
*GET Request Format :  '''/details/{elementDetails}/virtual/concept/{virtualOntologyID}/resource/{resourceid}?conceptid={conceptid}&elementid={elementid}'''
+
*GET Request Format :  '''/details/{elementDetails}/virtual/concept/{virtual_ontology_id}/resource/{resourceid}/{offset}/{limit}?conceptid={conceptid}&elementid={elementid}'''
*Example1 : http://rest.bioontology.org/resource_index/details/true/virtual/concept/1032/Melanoma/resource/AE?conceptid=Melanoma&elementid=E-GEOD-18509&email=example@bioontology.org&applicationid=NCBOtest
+
*Example : http://rest.bioontology.org/resource_index/details/true/virtual/concept/1032/resource/AE/0/10?conceptid=Melanoma&elementid=E-GEOD-18509&apikey=YourAPIKey
*Example2 : http://rest.bioontology.org/resource_index/details/false/virtual/concept/1032/npo:Nanoparticle/resource/AE?conceptid=Melanoma&elementid=E-GEOD-18509&email=example@bioontology.org&applicationid=NCBOtest
 
 
*Old Request Format* :   
 
*Old Request Format* :   
 
**/details/{elementDetails}/virtual/concept/{virtualOntologyID}/resource/{resourceID}?conceptID={conceptID}&elementID={localElementID}
 
**/details/{elementDetails}/virtual/concept/{virtualOntologyID}/resource/{resourceID}?conceptID={conceptID}&elementID={localElementID}
 
**/details/{elementDetails}/virtual/concept/{virtualOntologyID}/{conceptID}/resource/{resourceID}/element/{localElementID}
 
**/details/{elementDetails}/virtual/concept/{virtualOntologyID}/{conceptID}/resource/{resourceID}/element/{localElementID}
 
   
 
   
*Response Content : ObrAnnotationBeanDetailled if elementDetails is true otherwise ObrAnnotationBean.
+
*Response Content : ''ObrAnnotationBean/ObrAnnotationBeanDetailed'' is a representation of one '''annotation/annotationDetailed'''. annotationDetailed if elementDetails is true otherwise annotation.
  
 
====Resources Service ====
 
====Resources Service ====
Line 404: Line 427:
  
 
*GET Request Format :  ''/resources''
 
*GET Request Format :  ''/resources''
*Example: http://rest.bioontology.org/resource_index/resources?email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/resources?apikey=YourAPIKey
 
   
 
   
 
*Response Content : Resource is a representation of one resource  
 
*Response Content : Resource is a representation of one resource  
Line 415: Line 438:
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''resourceID'''
+
|width="10%"|'''resourceId'''
 
|width="90%"| Identifier of the resource.
 
|width="90%"| Identifier of the resource.
  
Line 446: Line 469:
 
{| border="2" style="background:#ABCDEF;"<!-- The nested table must be on a new line -->
 
{| border="2" style="background:#ABCDEF;"<!-- The nested table must be on a new line -->
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''resourceID'''
+
|width="10%"|'''resourceId'''
 
|width="90%"|resource identifier for Resource.
 
|width="90%"|resource identifier for Resource.
  
Line 462: Line 485:
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''ontoIDs'''
+
|width="10%"|'''ontoIds'''
|width="90%"|map contain ontologyIDs for each context (as String).  
+
|width="90%"|map contain ontology ids for each context (as String).  
 
|}
 
|}
  
Line 469: Line 492:
  
 
====Resource Service ====
 
====Resource Service ====
Returns the resource in resource index for given resourceID and information related to it.
+
Returns the resource in resource index for given resource id and information related to it.
  
 
*GET Request Format :  ''/resources/{resourceid}''
 
*GET Request Format :  ''/resources/{resourceid}''
*Example: http://rest.bioontology.org/resource_index/resources/AE?email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/resources/AE?apikey=YourAPIKey
 
*Old Request Format* :  /resources/{resourceID}
 
*Old Request Format* :  /resources/{resourceID}
*Response Content : Resource.
+
*Response Content : ''Resource'' is a representation of one '''resource'''.
  
 
====Resource Element Service ====
 
====Resource Element Service ====
Service returns elementURL for given localElementID and redirect it to get resource element on the web.
+
Service returns elementURL for given localElementId and redirect it to get resource element on the web.
  
 
*GET Request Format :  ''/element/{resourceid}?elementid={elementid}''
 
*GET Request Format :  ''/element/{resourceid}?elementid={elementid}''
*Example: http://rest.bioontology.org/resource_index/element/AE?elementid=E-GEOD-9118&email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/element/AE?elementid=E-GEOD-9118&apikey=YourAPIKey
 
*Old Request Format* :  /element/{resourceID}?element={localElementID}  
 
*Old Request Format* :  /element/{resourceID}?element={localElementID}  
 
*Response Content : Web page containing details of the element.
 
*Response Content : Web page containing details of the element.
 +
 +
====Element details service by elementid ====
 +
Returns detail for given element using resource id and element id
 +
 +
*GET Request Format :  ''/elementDetails/{resourceid}?elementid={elementid}''
 +
*Example: http://rest.bioontology.org/resource_index/elementDetails/AE?elementid=E-GEOD-9118&apikey=YourAPIKey
 +
 +
*Response Content : element
 +
 +
====Elements detail service by chronology ====
 +
Retruns elements details for given resource id cronologically
 +
 +
*GET Request Format :  ''/elements/{resourceid}?method={method}&offset={offset}&limit={limit}''
 +
*Example: http://rest.bioontology.org/resource_index/elements/AE?method=chronology&offset=0&limit=10&apikey=YourAPIKey
 +
 +
*Response Content : ''Element'' is a representation of one '''element'''.
  
 
====Resources Service with ontologies used for indexing  ====
 
====Resources Service with ontologies used for indexing  ====
Line 488: Line 527:
  
 
*GET Request Format :  ''/resources?withontologies=true''
 
*GET Request Format :  ''/resources?withontologies=true''
*Example: http://rest.bioontology.org/resource_index/resources?withontologies=true&email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/resources?withontologies=true&apikey=YourAPIKey
 
*Old Request Format* :  /resources?withOntologies=true  
 
*Old Request Format* :  /resources?withOntologies=true  
 
*Response Content : ObrResourceBean is a representation of one resource with ontologies
 
*Response Content : ObrResourceBean is a representation of one resource with ontologies
Line 504: Line 543:
 
{| border="2" style="background:#ABCDEF;"<!-- The nested table must be on a new line -->
 
{| border="2" style="background:#ABCDEF;"<!-- The nested table must be on a new line -->
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''localOntologyID'''
+
|width="10%"|'''localOntologyId'''
 
|width="90%"|Local onotology id  for Ontology.
 
|width="90%"|Local onotology id  for Ontology.
  
Line 516: Line 555:
  
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''virtualOntologyID'''
+
|width="10%"|'''virtualOntologyId'''
 
|width="90%"|virtual ontology id for ontology.  
 
|width="90%"|virtual ontology id for ontology.  
 
|}
 
|}
Line 525: Line 564:
  
 
*GET Request Format :  ''/resources/{resourceid}?withontologies=true''
 
*GET Request Format :  ''/resources/{resourceid}?withontologies=true''
*Example: http://rest.bioontology.org/resource_index/resources/AE?withOntologies=true&email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/resources/AE?withOntologies=true&apikey=YourAPIKey
 
*Old Request Format : /resources/{resourceID}?withOntologies=true
 
*Old Request Format : /resources/{resourceID}?withOntologies=true
*Response Content : Resource is represented by ObrResourceBean.
+
*Response Content : '''resource''' is represented by ''ObrResourceBean''.
  
 
====Ontologies Service with resources indexed ====
 
====Ontologies Service with resources indexed ====
Line 533: Line 572:
  
 
*GET Request Format :  ''/ontologies?withresources=true''
 
*GET Request Format :  ''/ontologies?withresources=true''
*Example: http://rest.bioontology.org/resource_index/ontologies?withresources=true&email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/ontologies?withresources=true&apikey=YourAPIKey
  
*Response Content : Each Ontology is represented by ObrOntologyBean.
+
*Response Content : Each '''ontology''' is represented by ''ObrOntologyBean''.
  
 
Response ObrOntologyBean contains all the contents of OntologyBean.Those contents are described in section Response Content: OntologyBean.
 
Response ObrOntologyBean contains all the contents of OntologyBean.Those contents are described in section Response Content: OntologyBean.
Line 543: Line 582:
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''resources'''
 
|width="10%"|'''resources'''
|width="90%"| Represents list of resources. Response content for each resource is of type Resource.
+
|width="90%"| Represents list of resources. Response content for each '''resource''' is of type ''Resource''.
 
|}
 
|}
  
Line 550: Line 589:
  
 
*GET Request Format :  ''/ontologies/{ontologyid}''
 
*GET Request Format :  ''/ontologies/{ontologyid}''
*Example: http://rest.bioontology.org/resource_index/ontologies/42693?email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/ontologies/42838?apikey=YourAPIKey
 
   
 
   
*Response Content : Ontology is represented by ObrOntologyBean.
+
*Response Content : '''ontology''' is represented by ''ObrOntologyBean''.
 +
 
 +
====Virtual Ontology Service with resources indexed ====
 +
Returns the ontology versions in resource index with list of resources for given virtual_ontology_id.
 +
 
 +
*GET Request Format :  ''/virtual/ontology/{virtual_ontology_id}?withresources={true|false}''
 +
*Example: http://rest.bioontology.org/resource_index/virtual/ontology/1032?withresources=true&apikey=YourAPIKey
 +
 +
*Response Content : List of '''ontology''' represented by ''ObrOntologyBean''.
 +
 
 +
====Concept Frequency Service====
 +
Returns the get most used concepts for given resource id.
 +
 
 +
*GET Request Format :  ''/most-used-concepts/{resourceid}?method={counts|score}&offset={offset}&limit={limit}''
 +
*Example: http://rest.bioontology.org/resource_index/most-used-concepts/AE?method=counts&offset=0&limit=10&apikey=YourAPIKey
 +
 +
*Response Content : '''conceptFrequency''' with format ''ObrConceptFrequencyBean''.
 +
 
 +
'''Response Content: ObrConceptFrequencyBean'''
 +
 
 +
Following are contents for ObrConceptFrequencyBean:
 +
{| border="2" <!-- The nested table must be on a new line -->
 +
|-valign="top"
 +
|width="10%"|'''concept'''
 +
|width="90%"|ConceptBean is a representation of concept
 +
 
 +
|-valign="top"
 +
|width="10%"|'''counts'''
 +
|width="90%"|Frequency counts for a concept .
 +
 
 +
|-valign="top"
 +
|width="10%"|'''score'''
 +
|width="90%"|score for a concept .
 +
 
 +
|}
  
 
====All Statistics Service====
 
====All Statistics Service====
Line 558: Line 631:
  
 
*GET Request Format :  ''/statistics/all''
 
*GET Request Format :  ''/statistics/all''
*Example: http://rest.bioontology.org/resource_index/statistics/all?email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/statistics/all?apikey=YourAPIKey
 
   
 
   
*Response Content : All annotations represented by ObrStatisticsBean.
+
*Response Content : All '''statistics' represented by ''ObrStatisticsBean''.
 
   
 
   
 
'''Response Content: ObrStatisticsBean'''
 
'''Response Content: ObrStatisticsBean'''
Line 591: Line 664:
  
 
*GET Request Format :  ''/statistics/ontology/{ontologyid}''
 
*GET Request Format :  ''/statistics/ontology/{ontologyid}''
*Example: http://rest.bioontology.org/resource_index/statistics/ontology/42693?email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/statistics/ontology/42838?apikey=YourAPIKey
 
   
 
   
*Response Content : Ontology statistics with format ObrOntologyStatisticsBean.
+
*Response Content : '''ontologyStatistics''' with format ''ObrOntologyStatisticsBean''.
  
 
'''Response Content: ObrOntologyStatisticsBean'''
 
'''Response Content: ObrOntologyStatisticsBean'''
Line 599: Line 672:
 
{| border="2" <!-- The nested table must be on a new line -->
 
{| border="2" <!-- The nested table must be on a new line -->
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''resourceID'''
+
|width="10%"|'''resourceId'''
 
|width="90%"|Resource Id for resource.
 
|width="90%"|Resource Id for resource.
  
Line 612: Line 685:
  
 
*GET Request Format :  ''/statistics/ontology/{onotlogyid}?byresource=true''
 
*GET Request Format :  ''/statistics/ontology/{onotlogyid}?byresource=true''
*Example: http://rest.bioontology.org/resource_index/statistics/ontology/42693?byresource=true&email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/statistics/ontology/42838?byresource=true&apikey=YourAPIKey
 
   
 
   
*Response Content : ObrOntologyStatisticsBean
+
*Response Content : '''ontologyStatistics''' with format ''ObrOntologyStatisticsBean''.
  
 
====Resource Statistics Service====
 
====Resource Statistics Service====
Line 620: Line 693:
  
 
*GET Request Format :  ''/statistics/resource/{resourceid}''
 
*GET Request Format :  ''/statistics/resource/{resourceid}''
*Example: http://rest.bioontology.org/resource_index/statistics/resource/CANANO?email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/statistics/resource/CANANO?apikey=YourAPIKey
 
   
 
   
*Response Content : Resource statistics with format ObrResourceStatisticsBean.
+
*Response Content : '''resourceStatistics''' with format ''ObrResourceStatisticsBean''.
  
 
'''Response Content: ObrResourceStatisticsBean'''
 
'''Response Content: ObrResourceStatisticsBean'''
Line 628: Line 701:
 
{| border="2" <!-- The nested table must be on a new line -->
 
{| border="2" <!-- The nested table must be on a new line -->
 
|-valign="top"
 
|-valign="top"
|width="10%"|'''localOntologyID'''
+
|width="10%"|'''localOntologyId'''
 
|width="90%"|local ontology id for given ontology.
 
|width="90%"|local ontology id for given ontology.
  
 
|-valign="top"
 
|-valign="top"
 
|width="10%"|'''statistics'''
 
|width="10%"|'''statistics'''
|width="90%"|ObrStatisticsBean is a representation of statistics
+
|width="90%"|''ObrStatisticsBean'' is a representation of '''statistics'''.
  
 
|}
 
|}
Line 641: Line 714:
  
 
*GET Request Format :  ''/statistics/resource/{resourceid}?byontology=true ''
 
*GET Request Format :  ''/statistics/resource/{resourceid}?byontology=true ''
*Example: http://rest.bioontology.org/resource_index/statistics/resource/AE?byontology=true&email=example@bioontology.org&applicationid=NCBOtest
+
*Example: http://rest.bioontology.org/resource_index/statistics/resource/AE?byontology=true&apikey=YourAPIKey
 +
 +
*Response Content : '''resourceStatistics''' with format ''ObrResourceStatisticsBean''.
 +
 
 +
====All Executions Service====
 +
Returns the information about all workflow executions done in resource index.
 +
 
 +
*GET Request Format :  ''/executions''
 +
*Web Page Request Format :  ''/executions/list/''
 +
*Examples:
 +
**http://rest.bioontology.org/resource_index/executions?apikey=YourAPIKey
 +
**http://rest.bioontology.org/resource_index/executions/list/?apikey=YourAPIKey
 +
 +
*Response Content : List of all '''execution'' represented by ''ObrExecutionBean''.
 
   
 
   
*Response Content : Resource statistics with format ObrResourceStatisticsBean.
+
'''Response Content: ObrExecutionBean'''
 +
Following are remaining contents for ObrExecutionBean:
 +
{| border="2" <!-- The nested table must be on a new line -->
 +
|-valign="top"
 +
|width="10%"|'''resourceId'''
 +
|width="90%"|Identifier of the resource.
 +
 
 +
|-valign="top"
 +
|width="10%"|'''dictionaryId'''
 +
|width="90%"|Identifier of the dictionary used for execution.
 +
 
 +
|-valign="top"
 +
|width="10%"|'''withCompleteDictionary'''
 +
|width="90%"|Specifies if complete dictionary is used for execution or not (true/false).
 +
 
 +
|-valign="top"
 +
|width="10%"|'''elementCount'''
 +
|width="90%"|Number of elements updated/annotated in execution.
 +
 
 +
|-valign="top"
 +
|width="10%"|'''firstExecution'''
 +
|width="90%"|Boolean value specifies if execution is first execution.
 +
 
 +
|-valign="top"
 +
|width="10%"|'''executionBeginning'''
 +
|width="90%"|Specifies Date/Time at which execution started.
 +
 
 +
|-valign="top"
 +
|width="10%"|'''executionEnd'''
 +
|width="90%"|Specifies Date/Time at which execution ended..
 +
 
 +
|-valign="top"
 +
|width="10%"|'''executionTime'''
 +
|width="90%"|Time required (in HH:mm:ss format) to complete current execution.
 +
 +
|}
 +
 
 +
====Resource Executions Service====
 +
Returns the information about workflow executions done for given resource in resource index.
  
 +
*GET Request Format :  ''/executions/{resourceid}''
 +
*Example: http://rest.bioontology.org/resource_index/executions/WP?apikey=YourAPIKey
  
 +
*Response Content : '''execution'' represented by ''ObrExecutionBean''.
 
----
 
----
 
'''Note* :''' ''Old Request Format not working anymore.''
 
'''Note* :''' ''Old Request Format not working anymore.''
  
 
----
 
----

Latest revision as of 15:43, 7 November 2014

version 2.0 (REST Web Services API) is obsolete NCBO BioPortal v4.0 REST services are documented at: http://data.bioontology.org/documentation

Introduction

The Resource Index API is available through a REST web services interface.

This documentation describes the current version of the API. Some changes may append in the future.

The Resource index API is based on the web service that returns annotations from the Resource Index (called via a REST post). Additionally some simplified REST get services returned simplified results.



Sample HTTP Client for the Resource Index REST Web Service

List of Resource Index Resources

Service endpoints

Resource Index Web service Validation

  • Note: All NCBO REST Web services will be required to contain the parameter "apikey=YourApiKey" starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, login to BioPortal and go to "Account" where your API key will be displayed. The addition of the API key replaces the use of the email parameter.
  • Note for Application Developers: Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to "Account" where your API key will be displayed. The addition of the API key replaces the use of the email parameter.

POST calls

POST your requests at the service endpoints.

Parameters

The Resource Index web service offers a set of parameters that allows a user to customize the annotations returned according to his specific requirements. For example, the annotations returned can be limited to a specific set of ontology and a specific set of semantic types. Plus, the expanded annotations can be filtered.

Please see below for the list of parameters and the possible values.

Note** : Parameter apikey and applicationid applies to all POST and GET calls.

apikey** {apikey} default: null User identification query parameter with the pattern of "apikey=YourAPIKey". This parameter replaces the email parameter. The parameter will be required in June 2011.
applicationid** {applicationid} default: null Identifies the application calling the REST service. To receive your "applicationid" please request one from Support.
ontologiesToKeepInResult {localOntology1,...,localOntologyN} default: empty (i.e. all ontologies) Specifies the list of ontologies you want to filter in the result from the annotation process. The list of ontologies that can be used is available in the sample HTML page. The values are separated with comma (without spaces)
  • For example, 42789,42838,42142.
semanticTypes {semanticType1,...,semanticTypeN} default: empty (i.e. all semanticTypes) Specifies the list of UMLS semantic types to use in the annotation process. The list of semantic types that can be used is available at the /obs/semanticTypes URL. Note that the restriction to semantic types is also applied during the semantic expansion steps.
  • For example, T047,T048,T191.
levelMax {integer} default: 0 Specifies the maximum level a parent concept must have to be considered for the is_a semantic closure expansion step.
  • For example, an annotation done with levelMax=3 will expand a direct annotations done with a concept up to the 3rd level parent in the is_a hierarchy for this concept. An annotation done with levelMax=0 is equivalent to disable the is_a transitive closure expansion step.
mappingTypes {null,mappingType1,...,mappingTypeN} default: empty (i.e. all mappingTypes) Specifies the list of mapping types to use during the mapping expansion step. The list of rmapping types that can be used is available at the /obs/mappingTypes URL. The current list is described in section Mapping types.
  • For example, Automatic,Manual.
  • Note that the use of the key word "null" in the mappingTypes list disables the mapping expansion component.
filterNumber {true, false} default: true Specifies whether the concept recognition step to filter numbers or not.
minTermSize {integer} default: 0 Specifies the minimum length of the term to be included in the annotations.
withSynonyms {true, false} default: true Specifies either or not the direct annotations are done with or without Synonyms. By default it includes all the synonyms and preferred name. If 'false' is selected, the direct annotations are done with only preferred name.
additionalStopWords {stopWord1,...,stopWordN} default: empty (i.e. none) Specifies the list of additional stop words to use. Already used stop words are available here: [[1]]
isStopWordsCaseSenstive {true, false} default: false Specifies whether stopwords are case-sensitive or not.
conceptids {conceptid1,...,conceptidn} default: empty (i.e. all concepts) Specifies the list of concept to use to query the Resource index (i.e., get the annotations done with this list). This parameter must be jointly specified with the mode parameter. If conceptids contains only one element then the mode parameter can be ignored. The values are separated with comma (without spaces).
  • For example, 40401/D008545,4513/Virtual_surface.
isVirtualOntologyId {true, false} default: false Specifies the if the list of ontologies are all BioPortal virtual ontology ids. This parameter applies to both conceptids and ontologiesToKeepInResult parameters.
mode {union, intersection} default: union Specifies the mode to use when querying the resource index with several concept (parameter conceptids ). The union mode returns the union of all the annotations (filtered eventually with other parameters) done with each specified conceptid. The intersection mode returns the intersection.
elementid default: all Specifies the identifier of the resource element for which annotations are requested. The elementid is defined by the original resource e.g., PMID for PubMed, NCT for ClinicalTrials. The full list of the elementid type is defined in Section Local element ID used.
  • For example, NCT00001589 or GDS2735.
resourceids default: all Specifies the resource to filter the annotations with. The resourceids identifies a resource in the Resource Index. They are defined in section Resource identifiers. The list of resourceids can be used is available at the /obs/resources URL.
  • For example, GEO,CT,AE.
elementDetails {true, false} default: false Specifies the if the returned resource elements to be detailed or not.
withContext {true, false} default: true Specifies whether the annotations context information to be available or not. If turn to false, the set of annotations returned will be simplified and will not detail the context information for an annotation. Only the score will be returned.
offset and limit {integer} default: 0/10 respectively Specifies an offset and limits the number of annotation results.
format {text, tabDelimited, owl, rdf, xml} default: xml Specifies the desired format of the response. RDF and OWL outputs are defined according to a RDFS schema and OWL ontology respectively available here: http://obs.bioontology.org/ontologies/BioPortalAnnotation.rdfs and http://obs.bioontology.org/ontologies/NCBO_OBS_ontology.owl

Web Service Response

Response Format

text Returns plain text representation of the ObrResultBean(Detailled).
tabDelimited Shorter version of "Text" format, returns not the full result content but the annotations only (no statistics, etc.). The format of the tab delimited file is: score \t conceptId \t preferredName \t synonyms (separated by ' /// ') \t semanticType (separated by ' /// ') \t contextName \t isDirect \t other context information (e.g., childConceptId, mappedConceptId, level, mappingType) (separated by ' /// ').
xml Returns XML representation of the ObrResultBean(Detailled).
owl Returns OWL representation of the ObrResultBean(Detailled). The elementsof the result (dictionary, parameters, annotations, etc) are described as instances in the following ontology: http://obs.bioontology.org/ontologies/NCBO_OBS_ontology.owl
rdf Returns RDF representation of the annotations in ObrResultBean(Detailled). The elements of the result are described as instances in the following ontology: http://obs.bioontology.org/ontologies/BioPortalAnnotation.rdfs

Note : if request parameter withContext is true, then returns representation of the ObrResultBeanDetailed and if request parameter withContext is false, then returns representation of the ObrResultBean.

Response Content: ObrResultBeanDetailed

Response ObrResultBeanDetailed contains all the contents of ObrResultBean. Those contents are described in section Response Content: ObrResultBean.

Following are remaining contents for ObrResultBeanDetailed :

directAnnotations One annotation is represented by ObrAnnotationBean.
isaAnnotations One annotation is represented by ObrAnnotationBean.
mappingAnnotations One annotation is represented by ObrAnnotationBean.

Note : Response contents of the ObrAnnotationBean are described in section ObrResultBean annotations


Response Content: ObrResultBean

resultId
dictionary Dictionary contains the metadata (not the content) of the dictionary used for a result. dictionaryId, dictionaryName, and dictionaryDate identify the dictionary on the server side and give information about its content. Dictionary versioning is strongly linked to the evolution of the ontologies used. Each time ontologies change, the dictionary is updated. All the dictionary information may be useful for comparing results of the Annotator Restlet service on time.
resultStatistics Each statistics contains information on the number of annotations done for a given context. The contextName keyword identifies the type of context and annotationCount is the number of annotations of this type.
parameters Parameters summarizes all the parameters specified by the user when requesting the Annotator Restlet service. Those parameters are described in section Service parameters
ontologies To keep the model simple, we provide only the global ontology identifier, localOntologyId the name (ontologyName) and version (ontologyVersion). This information come from the original repositories (UMLS/BioPortal) and might help the user to select the right ontology to use. When an ontology is used in the annotation, a result has a set of OntologyUsed which specify 2 other properties: nbAnnotation, the number of annotation that have been made with concepts from this ontology. score, the sum of all the scores of the annotations done with concepts from this ontology (if parameter scored=true). Therefore, score represents the most accurate ontology to annotate the given text.
annotations ObrAnnotationBean/ObrAnnotationBeanDetailed is a representation of one annotation/annotationDetailed. If elementDetails parameter is true the service return response of type annotation, otherwise annotationDetailed. An annotation has a score which represents the accuracy of the annotation computed by the scoring algorithm (if the scored=true parameter was chosen, otherwise score=-1). An annotation is done with a concept in a context.

Response Content: ObrAnnotationBeanDetailled

Response ObrAnnotationBeanDetailed contains all the contents of ObrAnnotationBean. Those contents are described in section Response Content: ObrAnnotationBean.

Following are remaining contents for ObrAnnotationBeanDetailed :

element
  • localElementId - Global identifier for the resource element.
  • elementStructure - Represents Structure of an element for a given resource.

Response Content: Structure

resourceId resource identifier for Resource.
contexts list of context for resource.
itemKeys list of itemKeys for resource.
weights map contain weights (as double) for each context (as String).
ontoIds map contain ontologyIds for each context (as String).

Response Content: ObrAnnotationBean

localElementId Identifier for resource element.
score
concept
  • localConceptId - global identifier for the concept in its original repository.
  • localOntologyId - identifier for the ontology in which the concept is defined.
  • isTopLevel - specifies if the concept is a root concept in its ontology.
  • preferredName - label or preferred term for this concept (as assigned by the original repository).
  • synonyms - the set of possible terms that represent the concept but are not preferred.
  • semanticTypes - the set of the semantic types of the concept (assigned by UMLS + T000 and T999).
context Context specifies if it is a direct or expanded annotation and give precision about the origin of the annotation. contextName identifies the type of context. The context properties vary with the type of concept. There are 3 possible contexts identified by their contextName:
MGREP represents direct annotations done with the Mgrep concept recognizer. A Mgrep context has 3 properties:
  • termName - the expression (preferred name or synonyms) that was matched by Mgrep.
  • from and to - specify the character index in the given text for the matched expression. Attention, those values are in number of bytes, not characters e.g., ½ is a two-byte character, thus will count for 2 characters.
ISA_CLOSURE represents expanded annotations done with the is_a transitive closure expansion component. A ISA_CLOSURE context has 2 properties:
  • childConceptId - the concept from which the annotation was derived.
  • level - the distance in the is_a hierarchy between the annotating concept and the concept from which the annotation was derived.
  • from and to - specify the character index in the given text for the matched expression.
  • For example, if a direct annotation with NCI/C0025202 (melanoma) was done, the is_a transitive closure component may expand it to another annotation with NCI/C1302746 (Melanocytic Neoplasm) because the latter is a direct parent (i.e., level 1) concept of the former. The ISA_CLOSURE annotation generated will have the following properties {NCI/C0025202, 1}.
MAPPING represents expanded annotations done with the mapping expansion component. A MAPPING context has 2 properties:
  • mappedConceptId identifies the concept from which the annotation was derived.
  • mappingType specifies the type of mapping.
  • from and to - specify the character index in the given text for the matched expression.
localElementId localConceptIds mode withContext elementDetails counts offsetStart offsetMax Parameters summarizes all the parameters specified by the user when requesting the Resource Index Restlet service. Those parameters are described in section Service parameters

GET calls

Following section describes all other simplified GET services available in Resource_Index_API.

Annotation by Concept Service

Returns the set of annotations done with a given localConceptId.

  • Response Content : ObrResultBean/ObrResultBeanDetailed is a representation of result/resultDetailed. If request parameter withContext is true, then returns representation of the resultDetailed and if request parameter withContext is false, then returns representation of the result.

Annotation for BioPortal virtual ontology Concept Service

Returns the set of all annotations done with a given localConceptId using BioPortal virtual ontology id.

  • Response Content : ObrResultBean/ObrResultBeanDetailed is a representation of result/resultDetailed.

Annotation By Concept And Resource Service

Returns the set of all annotations done with a given localConceptId for given resourceId.

  • Response Content : ObrResultBean/ObrResultBeanDetailed is a representation of result/resultDetailed.

Annotation for BioPortal virtual ontology Concept And Resource Service

Returns the set of all annotations done with a given localConceptId using BioPortal virtual ontology id and using particular resourceId.

  • Response Content : ObrResultBean/ObrResultBeanDetailed is a representation of result/resultDetailed.

For Multiple resources using service at basis URL

  • Response Content : result/resultDetailed for each resource. ObrResultBean/ObrResultBeanDetailed is a representation of one result/resultDetailed

Annotation By Resource Element Service

Returns the set of all annotations done with a given resource element localElementId for all the concepts.

  • Old Request Format* :
    • /byelement/{resourceID}/{withContext}/{counts}/{from}/{number}?elementID={localElementID}
    • /byelement/{resourceID}/{localElementID}/{withContext}/{counts}/{from}/{number}
  • Response Content : ObrResultBean/ObrResultBeanDetailed is a representation of result/resultDetailed.

Annotation Details By Resource Element Service

Returns the set of all annotations details with a given resource element localElementId for given conceptId

  • Response Content : ObrAnnotationBean/ObrAnnotationBeanDetailed is a representation of one annotation/annotationDetailed. annotationDetailed if elementDetails is true otherwise annotation.

Annotation Details By Resource Element Service for BioPortal Virtual OntologyID

Returns the set of all annotations details with a given resource element localElementId for given conceptId of BioPortal virtual ontologyId

  • Response Content : ObrAnnotationBean/ObrAnnotationBeanDetailed is a representation of one annotation/annotationDetailed. annotationDetailed if elementDetails is true otherwise annotation.

Resources Service

Returns the set of all resources available in resource index and information related to it.

  • Response Content : Resource is a representation of one resource

Response Content: Resource

resourceName Name of the particular resource.
resourceId Identifier of the resource.
mainContext Main context string for the resource.
resourceURL Website URL for the resource
resourceElementURL Base URL for getting elements for resource.
resourceDescription Description of the resource.
resourceLogo URL of logo image for the resource.
resourceStructure Represents Structure of an element for the resource.

Response Content: Structure

resourceId resource identifier for Resource.
contexts list of context for resource.
itemKeys list of itemKeys for resource.
weights map contain weights (as double) for each context (as String).
ontoIds map contain ontology ids for each context (as String).

Resource Service

Returns the resource in resource index for given resource id and information related to it.

Resource Element Service

Service returns elementURL for given localElementId and redirect it to get resource element on the web.

Element details service by elementid

Returns detail for given element using resource id and element id

  • Response Content : element

Elements detail service by chronology

Retruns elements details for given resource id cronologically

  • Response Content : Element is a representation of one element.

Resources Service with ontologies used for indexing

Returns the set of all resources available in resource index and list of onotolgies used for indexing them.

Response Content: ObrResourceBean

Response ObrResourceBean contains all the contents of Resource. Those contents are described in section Response Content: Resource.

Following are remaining contents for ObrResourceBean :

ontologiesUsed Presents list of ontologies used for indexing. Each ontology of type OntologyBean.

Response Content: OntologyBean

localOntologyId Local onotology id for Ontology.
ontologyName name of the resource.
ontologyVersion version number for resource.
virtualOntologyId virtual ontology id for ontology.

Resource Service with ontologies used for indexing

Returns the information about resources and list of onotolgies used for indexing it.

Ontologies Service with resources indexed

Returns the set of all ontologies used in resource index with list of resources indexed by given ontology.

  • Response Content : Each ontology is represented by ObrOntologyBean.

Response ObrOntologyBean contains all the contents of OntologyBean.Those contents are described in section Response Content: OntologyBean.

Following are remaining contents for ObrResourceBean :

resources Represents list of resources. Response content for each resource is of type Resource.

Ontology Service with resources indexed

Returns the information about given ontologies used in resource index with list of resources.

  • Response Content : ontology is represented by ObrOntologyBean.

Virtual Ontology Service with resources indexed

Returns the ontology versions in resource index with list of resources for given virtual_ontology_id.

  • Response Content : List of ontology represented by ObrOntologyBean.

Concept Frequency Service

Returns the get most used concepts for given resource id.

  • Response Content : conceptFrequency with format ObrConceptFrequencyBean.

Response Content: ObrConceptFrequencyBean

Following are contents for ObrConceptFrequencyBean:

concept ConceptBean is a representation of concept
counts Frequency counts for a concept .
score score for a concept .

All Statistics Service

Returns the information about number of all the annotations done in resource index.

  • Response Content : All statistics' represented by ObrStatisticsBean.

Response Content: ObrStatisticsBean Following are remaining contents for ObrStatisticsBean:

aggregatedAnnotations Sum of the number of rows in all the indexing tables
mgrepAnnotations Number of mgrep annotations entries in direct annotation table.
reportedAnnotations Number of reported annotations entries in direct annotation table.
isaAnnotations Number of is-a annotations entries in extended annotation table.
mappingAnnotations Number of mapping annotations entries in extended annotation table.

Ontology Statistics Service

Returns the total statistics for given ontology for All resources.

  • Response Content : ontologyStatistics with format ObrOntologyStatisticsBean.

Response Content: ObrOntologyStatisticsBean Following are contents for ObrOntologyStatisticsBean:

resourceId Resource Id for resource.
statistics ObrStatisticsBean is a representation of statistics

Ontology Statistics Service by resources

Returns the statistics for given ontology for each resource separately.

  • Response Content : ontologyStatistics with format ObrOntologyStatisticsBean.

Resource Statistics Service

Returns the total statistics for given resource for All ontology.

  • Response Content : resourceStatistics with format ObrResourceStatisticsBean.

Response Content: ObrResourceStatisticsBean Following are contents for ObrResourceStatisticsBean:

localOntologyId local ontology id for given ontology.
statistics ObrStatisticsBean is a representation of statistics.

Resource Statistics Service by ontologies

Returns the statistics for given resource for each ontology separately.

  • Response Content : resourceStatistics with format ObrResourceStatisticsBean.

All Executions Service

Returns the information about all workflow executions done in resource index.

  • Response Content : List of all 'execution represented by ObrExecutionBean.

Response Content: ObrExecutionBean Following are remaining contents for ObrExecutionBean:

resourceId Identifier of the resource.
dictionaryId Identifier of the dictionary used for execution.
withCompleteDictionary Specifies if complete dictionary is used for execution or not (true/false).
elementCount Number of elements updated/annotated in execution.
firstExecution Boolean value specifies if execution is first execution.
executionBeginning Specifies Date/Time at which execution started.
executionEnd Specifies Date/Time at which execution ended..
executionTime Time required (in HH:mm:ss format) to complete current execution.

Resource Executions Service

Returns the information about workflow executions done for given resource in resource index.

  • Response Content : 'execution represented by ObrExecutionBean.

Note* : Old Request Format not working anymore.