How to deal with imports? #595
Replies: 3 comments 6 replies
-
Great to see OLS tackling this. Users are frequently bewildered by our odd ontology practice and expect to see something that clearly separates ontologies rather than current mishmashes. Some challenges with implementing this: How do you know who the authority is? Some ontologies foster IDs from other ontologies. I don't think this is good practice, and OBO is gradually moving away from this, but is exists. E.g. BFO terms owned by RO (https://oborel.github.io/obo-relations/ro-and-bfo/#ro-relations-with-bfo-ids) We are working towards solution, e.g. a standard AP, but for now this is a hard problem Second, how do you distinguish intentional axiom injections from the kinds of problematic axiom injection? There is as yet no consensus on if and when axiom injection should be done (see OBOFoundry/OBOFoundry.github.io#1443). But for now, if you were to exclude axioms about C from non-authoritative sources many graphs would be fragmented. If a workaround for these issues can be found then I am all for this. Maybe this is as simple as having opt-in opt-out for each ontology, with the ability to tag the exceptions in the ontology. The solution for 1 may inform 2, but I think so long as a URL can be formed it is fine to show dangling classes. However, don't show them at the root like Protege does please! For 3 an ideal scenario would involve versioning, and just like I can pin pypi dependencies I should be able to pin ontology version dependencies, and if I make a mistake and release an ontology that references a class that is obsoleted within my pinned range, that is on me. However, I appreciate this may be prohibitive on the back end. I welcome this direction though. We need ontologies to work more like software, modular, but no copypasta mishmashes |
Beta Was this translation helpful? Give feedback.
-
It is still better to show a particular concept is reused in another ontology. In this way users can see how well aligned different ontological views are. |
Beta Was this translation helpful? Give feedback.
-
As part of indexing OLS creates a node for each term in its underlying graph. When an ontology imports terms from another ontology, OLS will create a new node for that term for that ontology. This mean that if a term is imported into N ontologies in OLS, that term is duplicated N+1 (assuming the imported ontology is in OLS) times in OLS. The effect of this is that if the imported term is updated in the imported ontology and re-indexed by OLS, this change is not reflected in the N ontologies importing this term.
A concrete example of this is
biological process
(GO:0008150). This is a term is used in a number ontologies in OLS as illustrated in the image above.This is how OLS currently works. However, we may want to change it to have a term only once OLS where we assume updating it can only be done via the defining ontology, not downstream ontologies. The potential advantage of this is that if term is updated in the imported ontology and re-indexed by OLS, the update will reflect in downstream ontologies.
A few questions to ponder in this regard are:
Is there any other issues we need to think of in this regard?
Beta Was this translation helpful? Give feedback.
All reactions