Skip to main content

Table 2 Mappings between OntoCAT's interface and the underlying resources respective functionalities.

From: OntoCAT -- simple ontology search and integration in Java, R and REST/JavaScript

OntoCAT OLS client BioPortal REST OWL API
  QueryServiceLocator().getOntologyQuery() http://rest.bioontology.org/bioportal/ OWLOntology
   ontology methods  
getOntologies() .getOntologyNames()
Δ
eager fetching with .getOntology()
./ontologies
?email=email_address
.getOntologyID()
Δ
getOntology() .getOntologyNames()
.getOntologyLoadDate()
.getVersion()
./virtual/ontology/ontologyAccession ?email=email_address getOntologies().get(0)
   term methods  
searchAll() .getPrefixedTermsByName(query, false)
Δ
./search/
?query=url-encoded_query
&sexactmatch=[1/0]
&includeproperties=[1/0]
&maxnumhits = 10000000
&email=email_address
.getClassesInSignature()
OWLClass.getAnnotations()
searchOntology() depending on the search options a combination of:
1) .getTermsByExactName(query, ontolo-gyAccession)
2) .getTermsByName(query, ontologyAcces-sion, false)
3) .getTermsByAnnotationData(ontologyAccession, annotationType, query, fromDblValue, toDblValue), .getAnnotationStringValue()
Δ
./search/
?query = url-encoded query
&isexactmatch=[1/0]
&includeproperties=[1/0]
&maxnumhits = 10000000
&email=email_address
&ontologyids=ontologyAccession
searchAll()
there is only one ontology
getTerm() Δ
.getTermById(termAccession, ontologyAccession)
./virtual/ontology/ontologyAccession
?conceptid=url-encoded termAccession
&email=email_address
.getClassesInSignature()
Δ
   if termAccession was not found:
./search/?query=url-encoded _termAccession
&isexactmatch = 1
 
   &includeproperties = 1 &maxnumhits = 10000000  
   &email=email_address  
   &ontologyids=ontologyAccession  
getAllTerms() no native support, slow
getRootTerms()
getAllChildren()
./virtual/ontology/ontologyAccession/all ?pagesize = 300
&pagenum=pagenum
&email=email_address
.getClassesInSignature()
Δ
getAnnotations() .getTermMetadata(termAccession, ontologyAccession) getTerm() OWLClass.getAnnotations() OWLAnnotation.getProperty().getIRI().toURI()
OWLAnnotation.getValue().getLiteral()
getSynonyms() getAnnotations()
Δ
getTerm()
Δ
getAnnotations()
Δ
getDefinitions() getAnnotations()
Δ
getTerm()
Δ
getAnnotations()
Δ
   hierarchy methods  
getRootTerms() .getRootTerms(ontologyAccession)
eager fetching with getTerm()
./virtual/ontology/ontologyAccession
?conceptid = root &email=email_address
getChildren()
.getClassesInSignature()
OWLClass.getSuperClasses()
getAnnotations()
getTermPath() non-recursive traversal of the path to root with getParents()
Δ
./virtual/rootpath/ontologyAccession/url-encoded termAccession &email=email_address
Δ
non-recursive traversal of the path to root with getParents()
Δ
   eager fetching with getTerm()  
getChildren() .getTermChildren(termAccession, ontologyAccession, 1, null) getTerm()
Δ
OWLClass.getSubClasses()
getParents() .getTermParents(termAccession, ontologyAccession) getTerm()
Δ
OWLClass.getSuperClasses()
getAllChildren()   getChildren() called non-recursively  
getAllParents()   getParents() called non-recursively  
getRelations() .getTermXrefs(termAccession, ontology-Accession).
getTermRelations(termAccession, ontolo-gyAccession)
not implemented in OntoCAT not implemented in OntoCAT
  1. Search defaults to non-exact matching and excludes properties, but this can be overridden by user with specific search options (see SearchOptions enum in the package). The Δ symbol signifies that some additional processing is performed on the original output of the underlying service to integrate the results with the OntoCAT's OntologyService interface. For example, in the case of OBO synonyms the appropriate property is found among the term's metadata and the additional context information is removed before the values are returned. Eager fetching means that when the underlying service returns only partial results, e.g. BioPortal's rootpath only provides term accessions, an additional query is issued to fully populate the result set. All hierarchy algorithms where noted are called in a non-recursive way to avoid memory issues for traversing large graphs in a recursive manner.