INCATools / boomer

Bayesian OWL ontology merging
https://incatools.github.io/boomer/
BSD 3-Clause "New" or "Revised" License
28 stars 2 forks source link

Include SiblingOf in json output #267

Closed cmungall closed 2 years ago

cmungall commented 2 years ago

when looking at pngs, it is useful to be able to see which mappings were rejected

I think the easiest way is to include a triple for SiblingOf calls (there is a way to represent properSiblingOf in OWL but it's verbose)

For example given a ptable where one mapping is likely to be interpreted as siblingOf:

A:1 B:1 0.01    0.01    0.05    0.93
A:2 B:1 0.01    0.01    0.95    0.03

I get output that is very useful, where each mapping is traceable:

however the json doesn't have the first mapping, and thus the png also lacks it (and also loses the A1 node altogether

cmungall commented 2 years ago

I see we have

  --output-internal-axioms | -e  <bool>
        Include axioms used to enforce proper subclass relationships (e.g. generated disjoint sibling classes) in OWL output (default false).

note: the -e shorthand is a lie as that is already used for exhaustive search

but this doesn't make simple triples, and I think the generated OWL may be incomplete anyway

for example, when using the ptable above I get:


# Class: <http://boom.monarchinitiative.org/vocab/DisjointSibling#c2faaa9fb6823c53d64ff5d60f0367b41c04c2f2> (<http://boom.monarchinitiative.org/vocab/DisjointSibling#c2faaa9fb6823c53d64ff5d60f0367b41c04c2f2>)

SubClassOf(<http://boom.monarchinitiative.org/vocab/DisjointSibling#c2faaa9fb6823c53d64ff5d60f0367b41c04c2f2> <http://example.org/B/1>)

# Class: <http://boom.monarchinitiative.org/vocab/DisjointSibling#6f7e726aacf6262c47aa5670a09c14c50c6c118e> (<http://boom.monarchinitiative.org/vocab/DisjointSibling#6f7e726aacf6262c47aa5670a09c14c50c6c118e>)

SubClassOf(<http://boom.monarchinitiative.org/vocab/DisjointSibling#6f7e726aacf6262c47aa5670a09c14c50c6c118e> <http://example.org/A/1>)

# Class: <http://example.org/A/2> (<http://example.org/A/2>)

EquivalentClasses(<http://example.org/A/2> <http://example.org/B/1>)

there needs to be disjointness axioms added

balhoff commented 2 years ago

I think the generated OWL may be incomplete anyway

I'll look at this—it is there in the search but must have a problem being translated back to OWL for output.