Table 2 |
|||
|
Mappings between OntoCAT's interface and the underlying resources respective functionalities. |
|||
|
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 |
|
|
|||
|
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. |
|||
|
Adamusiak et al. BMC Bioinformatics 2011 12:218 doi:10.1186/1471-2105-12-218 |
|||