uberon icon indicating copy to clipboard operation
uberon copied to clipboard

UBERON:0007685 'region of nephron tubule' is both part of and subclass of 'nephron tubule'

Open paolaroncaglia opened this issue 3 years ago • 12 comments

Uberon term UBERON:0007685 'region of nephron tubule'

Bug description Is both (asserted) part of nephron tubule and (inferred) subclass of nephron tubule Explanation in screenshot attached:

Screenshot 2022-02-04 at 10 44 48

I came across this by chance.

  • [ ] Are Uberon classes allowed to be both subclass of and part of the same superclass?
  • [ ] If not, as I suspect, are there other instances in Uberon that may need fixing? And
  • [ ] Is there a post-reasoning check in place to flag such instances?
  • [ ] For this specific case, replace 'region of nephron tubule' subclass of 'epithelial tube' with subclass of 'organ part' (or a more granular term if anyone would like to suggest one). Thanks.

paolaroncaglia avatar Feb 04 '22 09:02 paolaroncaglia

@matentzn could you please comment on the first 3 checkboxes or tag others as appropriate, and I'll address the 4th one (but I'll leave it as is for now in case it's useful to run checks). Thank you.

paolaroncaglia avatar Feb 04 '22 09:02 paolaroncaglia

Are Uberon classes allowed to be both subclass of and part of the same superclass?

Definitely not

Is there a post-reasoning check in place to flag such instances?

Seems not! This is an important and quite advanced qc query for @anitacaron. Basically:

Look for

  • all UBERON ids
  • that have an existential restriction with a part-of property to some UBERON:A
  • and are children (whether direct or indirect, use *) of UBERON:A

matentzn avatar Feb 04 '22 10:02 matentzn

One problem here is that we, again, have no access to the part of closure.. Maybe this can be solved with souffle rather than SPARQL?

matentzn avatar Feb 04 '22 10:02 matentzn

Are Uberon classes allowed to be both subclass of and part of the same superclass?

Definitely not

Thought so ;-) thanks @matentzn and @anitacaron for addressing this.

paolaroncaglia avatar Feb 04 '22 10:02 paolaroncaglia

One problem here is that we, again, have no access to the part of closure.. Maybe this can be solved with souffle rather than SPARQL?

Actually, it's relation-graph that materialise and infer the existential axioms

anitacaron avatar Feb 04 '22 10:02 anitacaron

Its I think solvable with this: https://github.com/obophenotype/uberon/pull/2125

matentzn avatar Feb 04 '22 10:02 matentzn

I might be misunderstanding the issue, but I think it would be quite common to be part of and also a subclass of certain classes, if you are including inferences in this. A bone is both part of an 'anatomical structure' and also is an 'anatomical structure'.

balhoff avatar Feb 04 '22 15:02 balhoff

Hmmm you are right.. Sorry it was I who was too hasty here. You can indeed have the same parent and be part of it - its just not very often.. Sorry. Maybe there is, after all, no general check we can have that protects us here..

matentzn avatar Feb 04 '22 16:02 matentzn

Hi @balhoff and @matentzn , I agree that at a high level all UBERON classes will be anatomical structures/entities via is_a as well as part_of. Is there a way to have a check in place at some lower level in the ontology? The example that spurred this ticket is just intuitively incorrect, a region of a tubule can't really be a type of tube. :-)

paolaroncaglia avatar Feb 04 '22 16:02 paolaroncaglia

I think investigating this is worth it, but I have a hard time figuring out how to draw the line between "upper" and "lower" level. Can a limb be part of a limb? Very hard to be sure..

It is probably better to solve this with logic, i.e. you identify some mid level classes for which the above is definitely false, and then we add an axiom saying: limb disjoint with part of limb.

matentzn avatar Feb 04 '22 18:02 matentzn

This ticket is in the Todo list of the Tech board now, so I'll remove my assignment (won't edit the example I provided in case it's useful to run checks and also because a consensus hasn't been reached yet).

paolaroncaglia avatar Feb 24 '22 10:02 paolaroncaglia

This issue has not seen any activity in the past 6 months; it will be closed automatically in one year from now if no action is taken.

github-actions[bot] avatar Aug 24 '22 03:08 github-actions[bot]

This issue has been closed automatically because it has not been updated in 18 months. Please re-open if you still need this to be addressed.

github-actions[bot] avatar Aug 25 '23 01:08 github-actions[bot]