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.