Open cmungall opened 2 years ago
Here is a visual illustration of the problem:
I'm not sure how IAO/STATO/OBI coordinate which term goes where, but this is very confusing for a user who either needs to select terms, even more so if they need to figure out which issue tracker to go to in order to select new terms
I not only like this, I think it is very necessary and already reflected by the "Scope" principle (which is not very well fleshed out right now, https://obofoundry.org/principles/fp-005-delineated-content.html). This is how I would like to attack it:
It is important to implement this rule independent of all existing violations. We have to improve this moving forward and not forever point to existing violations as reasons for not moving on.
Unless permission explicitly granted, on a per-term, per-branch, or per-ontology basis.
This is critical. PCL defines subclasses of CL terms. Single species AOs subclass Uberon and CL...
Big ask to require this for every subClassOf axiom that breaks the rule:
From that point on, subclassing a term from a different namespace (other than COB, RO, BFO) can only happen with a specific annotation property (like exclusion reason, but "subclass permission") which points to a resolvable issue tracker items that explains the exception.
And why are we folding COB into this issue? Isn't point 1 above more aspiration than reality for many ontology branches? (e.g. see issues around anatomical entities)
IAO would either have to be very permissive and/or grow to include domain-specific ICEs across numerous domains.
If the policy had been in place prior to STATO, how would things be better?
On Mon, Jul 18, 2022 at 3:01 PM David Osumi-Sutherland < @.***> wrote:
And why are we folding COB into this issue? Isn't point 1 above more aspiration than reality for many ontology branches? (e.g. see issues around anatomical entities)
— Reply to this email directly, view it on GitHub https://github.com/OBOFoundry/OBOFoundry.github.io/issues/1991#issuecomment-1188144461, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJR55R5YKF2VDR4YKUWOVTVUWSZ7ANCNFSM534YNAFA . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Unless permission explicitly granted, on a per-term, per-branch, or per-ontology basis. This is critical. PCL defines subclasses of CL terms. Single species AOs subclass Uberon and CL...
Yes, I mentioned the Uberon case in the original comment. There would be an agreement that species-specific subclasses are OK by a blanket rule, but if you want to make a species-neutral subclass this should be agreed first. PCL and CL is a good example, there is obviously close coordination and clear scoping rules between these two ontologies. So there would be a pairwise agreement. But I don't think CL wants extra-ontology subclasses that are neither data-driven classifications not species-specific, until new situations arise.
@hoganwr:
IAO would either have to be very permissive
There is nothing inherently wrong with this provided there is a simple process for adding new terms, for example, template-based with clear design patterns, and many people able to merge PRs. But see below for alternatives.
If the policy had been in place prior to STATO, how would things be better?
There would be clear delineation between the two ontologies. There's lots of ways to do this:
But simply having IAO have all information coupled with a simple process for adding new terms would be better than the current situation, with the striping between ontologies.
I am aware of some reasons why the current situation arose, I am not criticizing past decisions, but we need to move beyond these and implement clear modularity and scoping.
Just became aware of this issue. I'll register a strong objection. Let's quit proposing rules that limit what developers can put in their ontology.
Have to agree with Alan, as most of my group's ontologies build off other ontologies. In some cases we have requested new classes from appropriate ontologies, but in other cases our classes are probably too specific for inclusion in a higher level domain ontology.
@addiehl can you describe some of the processes you have put in place to avoid some of the issues highlighted here? It would be great to have documentation and SOPs on this and very much in the spirit of my original request!
I have a number of examples to describe, but don't have time until next week to write this up.
This is a companion issue to:
1443
But that issue focuses on injection which I define as adding axioms about terms another ontology (this is clearly defined in that issue, don't bring the discussion back here)
This issue is about when it is OK to make axioms that are not about terms in another ontology but that reference them in subClassOf axioms, in particular subClassOf between named classes.
On the surface this should be OK - I am an not altering the target ontology axioms in any way. Indeed some ontologies such as COB and BFO and CARO are designed expressly with the intention they are subclassed. To a certain extent uberon is too, although only for species-specific subclasses.
However, subclassing others ontologies is rampant in OBO, and this is actually harmful. It is poor modularity and it leads to confusion about scope. Users are not clear which ontology to go to get a term or to request a term.
It is also terrible for maintainability. If I maintain an ontology O1, containing class C1, and another ontology O2 starts makes subclasses, C1a, C1b, and so on. Then if I later need to introduce subclasses in O1, I need to first scan all OBO to see who has made subclasses and coordinate with these ontologies. This places a large impediment for maintainability.
Here is an example of what I call a heavily chequered inter-ontology subclass pattern, where there is a lack of clarity (to an external user about what belongs in STATO, OBI, or IAO):
(truncated)
To replicate with OAK:
stato roots -p i --id-prefix STATO | stato relationships - -p i
Proposal:
Ontologies MUST NOT create is-a children of classes in other ontologies in their own ontology, unless permission explicitly granted, on a per-term, per-branch, or per-ontology basis. This would be recorded in OBO metadata, e.g. for COB, BFO, CARO. OBI could choose to grant permission in this way, preferably with a link to some kind of documentation that states the relative scope of the two ontologies.