Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix composite unsats #3099

Merged
merged 3 commits into from
Oct 26, 2023
Merged

Fix composite unsats #3099

merged 3 commits into from
Oct 26, 2023

Conversation

gouttegd
Copy link
Collaborator

This PR fixes unsatisfiable classes recently found in composite-metazoan by:

  1. removing a bogus axiom (likely coming from an old version of Uberon) in the local CTENO mirror;
  2. removing a bogus axiom in the local EHDAA2 mirror;
  3. removing the bogus mappings between Uberon’s serous sac and EMAPA:16060 and MA:0000005.

See individual commit messages for more details about each issue.

The local CTENO mirror, used to produce composite-metazoan, contains
several axioms coming from an old version of Uberon (CTENO has not been
updated since 2016). One such axiom is

'surface groove' SubClassOf: 'surface structure'

which *may* have been correct in 2016 but is clearly bogus now, since
'surface groove' (UBERON:0006846) is an immaterial anatomical entity
whereas 'surface structure' (UBERON:0003102) is an anatomical structure
(and thus a material anatomical entity).

That single axiom is causing massive unsatisfiability issues when
building composite-metazoan.
The local EHDAA2 mirror, used to build composite-metazoan, contains the
following axiom:

'extra embryonic coelum' SubClassOf: 'attached to' some 'coelomic cavity
lumen'

This is wrong as 'attached to' (RO:0002371) is range- and
domain-restricted to anatomical structures, while both 'extra embryonic
coelum' (EHDAA2:0004739) and 'coelomic cavity lumen' (EHDAA2:0000267)
are anatomical spaces (immaterial entities).

This should really be fixed in EHDAA2, but the ontology is officially
marked as inactive and has not seen any really meaningful edit for the
past 8 years.
'serous sac' (UBERON:0005906) is mapped with EMAPA:16060. This is wrong,
because the Uberon term represents an entire organ, made of a serous
membrane surrounding an anatomical cavity, while the EMAPA term refers
to a body cavity OR the lining that surrounds it. The Uberon term is
necessarily a material entity, while the EMAPA term is not committed to
being either a material entity or an immaterial entity.

Mapping the two terms together results, when building
composite-metazoan, in the EMAPA term becoming a subclass of the Uberon
term, thereby forcing the EMAPA term to be a material entity. This
causes several unsatisfiability issues because there are other Uberon
terms that are mapped to subclasses of the EMAPA term but represent
immaterial entities.

Likewise for MA:0000005.
@gouttegd gouttegd requested a review from anitacaron as a code owner October 26, 2023 01:50
@gouttegd gouttegd self-assigned this Oct 26, 2023
Copy link
Contributor

@matentzn matentzn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow how long did that small looking PR take you! That looks like a massive detective hunt..

@anitacaron anitacaron merged commit 989b5a0 into master Oct 26, 2023
1 check passed
@gouttegd
Copy link
Collaborator Author

  • The CTENO issue: around 1h;
  • The EHDAA2 issue: around 10min;
  • The EMAPA/MA issue: around 6.022⨉10²³ hours, or so it seemed.

@matentzn
Copy link
Contributor

Amazing.. 😅

@gouttegd
Copy link
Collaborator Author

While I am here, note to my future self and to anyone attempting to debug unsatisfiability issues in composite-metazoan (or any other composite-* product):

  1. Don’t.
  2. But if you must, then: avoid using composite-metazoan.owl itself or its direct precursor $(TMPDIR)/unreasoned-composite-metazoan.owl to chase down the cause(s) of an unsatisfiability issue. This is because the --merge-species-ontology and --merge-equivalence-sets step that are at the core of the composite pipeline may materialise axioms that were not explicitly asserted in any of the source ontologies and by doing that, it may make it impossible for any reasoner to explain to you the real root cause for an erroneous inferred assertion. Use instead an intermediate file that is just upstream of that step, $(TMPDIR)/merged-composite-metazoan.owl.

@gouttegd gouttegd deleted the fix-composite-unsats branch October 26, 2023 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants