When creating new ontologies, it's not uncommon for ontology authors to reuse terms from other ontologies. BioPortal has a number of ontologies that contain terms with identical IDs. For example, the term "melanoma" with ID "http://purl.obolibrary.org/obo/DOID_1909" exists in the DOID ontology, as well as in a number of other ontologies (BAO, NIFSTD, DTO, etc.).
Contrary to the above statement, the JavaScript code for displaying search results in BioPortal does indeed have an algorithm that attempts to determine the "owner ontology". In particular, see the aggregateResultsWithSubordinateOntologies method that chooses an ontology most likely to be the owner ontology, then groups all other results as instances of term reuse.
The body of JavaScript for displaying search results and determining owner ontologies for terms was written by staff members no longer at Stanford. It would be worthwhile to set aside time (at some point) to allow current staff to come up to speed with this code and evaluate whether this algorithm produces an acceptable display of results.
Initial investigation into this code was prompted by the following exchange on the user support list. An end user pointed out a case where the ordering of search results returned from the REST API was different from the ordering presented in the BioPortal user interface.
When creating new ontologies, it's not uncommon for ontology authors to reuse terms from other ontologies. BioPortal has a number of ontologies that contain terms with identical IDs. For example, the term "melanoma" with ID "http://purl.obolibrary.org/obo/DOID_1909" exists in the DOID ontology, as well as in a number of other ontologies (BAO, NIFSTD, DTO, etc.).
Current thinking in the BioPortal and CEDAR projects is that determining which ontology is the canonical source for a given term is a non-trivial issue. Full discussion available here: https://github.com/metadatacenter/cedar-template-editor/issues/555.
Contrary to the above statement, the JavaScript code for displaying search results in BioPortal does indeed have an algorithm that attempts to determine the "owner ontology". In particular, see the aggregateResultsWithSubordinateOntologies method that chooses an ontology most likely to be the owner ontology, then groups all other results as instances of term reuse.
The body of JavaScript for displaying search results and determining owner ontologies for terms was written by staff members no longer at Stanford. It would be worthwhile to set aside time (at some point) to allow current staff to come up to speed with this code and evaluate whether this algorithm produces an acceptable display of results.
Initial investigation into this code was prompted by the following exchange on the user support list. An end user pointed out a case where the ordering of search results returned from the REST API was different from the ordering presented in the BioPortal user interface.