INCATools / boomer

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

equivalence in output.txt but not in ontology #39

Closed wdduncan closed 4 years ago

wdduncan commented 4 years ago

I ran boomer on our ECTO ontologies. The output.txt lists a number of equivalences: https://github.com/EnvironmentOntology/environmental-exposure-ontology/blob/issue-97/src/mapping/output.txt

XCO:0000105 EquivalentTo ECTO:0002049   true
NCIT:C920 EquivalentTo XCO:0000625  true
NCIT:C119053 EquivalentTo XCO:0000266   true
XCO:0000042 EquivalentTo NCIT:C44462    true
ECTO:0002048 EquivalentTo XCO:0000094   true
PECO:0000059 EquivalentTo XCO:0000088   true
XCO:0000346 EquivalentTo NCIT:C645  true
XCO:0000038 EquivalentTo NCIT:C61398    true
...

But in the axiom-boomer.obo file these are is_a relations: https://github.com/EnvironmentOntology/environmental-exposure-ontology/blob/issue-97/src/mapping/axioms-boomer.obo

id: ECTO:0002049
is_a: XCO:0000105

id: XCO:0000105
is_a: ECTO:0002049

Logically, ECTO:0002049 and XCO:0000105 would be inferred to be equivalent. Is possible for you run the reasoner on the output before creating the output.ofn?

cc @cmungall

balhoff commented 4 years ago

@wdduncan you are right—currently it's outputting a very literal translation of the axioms used in the reasoning tests. An immediate thing you could do is run the output through robot reason with --axiom-generators "SubClass EquivalentClass".

wdduncan commented 4 years ago

Yes ... I was just trying a step in the output :( Will the -- axiom-generators "SubClass EquivalentClass" option eliminate the redundant is_a statements?

balhoff commented 4 years ago

Try also passing --remove-redundant-subclass-axioms true to robot reason. I'm not completely sure but I think these will go away.

wdduncan commented 4 years ago

Thanks!

wdduncan commented 4 years ago

This command:

robot reason -e all --axiom-generators "SubClass EquivalentClass" -i axioms-boomer.owl -o axioms-boomer-reasoned.owl

generates the reasoned file, but produces a number of errors:

2020-04-13 18:20:33,784 ERROR org.obolibrary.robot.ReasonOperation - Reference violations found: 6 - reasoning may be incomplete
2020-04-13 18:20:33,786 ERROR org.obolibrary.robot.ReasonOperation - Reference violation: InvalidReferenceViolation [axiom=SubClassOf(<http://boom.monarchinitiative.org/vocab/DisjointSibling#47310af97e7ead4f66b3d7f107d5880706f0cae3> <http://purl.obolibrary.org/obo/NCIT_C160214>), referencedObject=<http://purl.obolibrary.org/obo/NCIT_C160214>, category=DANGLING]
2020-04-13 18:20:33,786 ERROR org.obolibrary.robot.ReasonOperation - Reference violation: InvalidReferenceViolation [axiom=Declaration(Class(<http://purl.obolibrary.org/obo/NCIT_C160214>)), referencedObject=<http://purl.obolibrary.org/obo/NCIT_C160214>, category=DANGLING]
2020-04-13 18:20:33,786 ERROR org.obolibrary.robot.ReasonOperation - Reference violation: InvalidReferenceViolation [axiom=SubClassOf(<http://purl.obolibrary.org/obo/PECO_0000137> <http://purl.obolibrary.org/obo/NCIT_C160214>), referencedObject=<http://purl.obolibrary.org/obo/NCIT_C160214>, category=DANGLING]
2020-04-13 18:20:33,786 ERROR org.obolibrary.robot.ReasonOperation - Reference violation: InvalidReferenceViolation [axiom=SubClassOf(<http://purl.obolibrary.org/obo/NCIT_C29029> <http://purl.obolibrary.org/obo/XCO_0000543>), referencedObject=<http://purl.obolibrary.org/obo/XCO_0000543>, category=DANGLING]
2020-04-13 18:20:33,786 ERROR org.obolibrary.robot.ReasonOperation - Reference violation: InvalidReferenceViolation [axiom=Declaration(Class(<http://purl.obolibrary.org/obo/XCO_0000543>)), referencedObject=<http://purl.obolibrary.org/obo/XCO_0000543>, category=DANGLING]
2020-04-13 18:20:33,786 ERROR org.obolibrary.robot.ReasonOperation - Reference violation: InvalidReferenceViolation [axiom=SubClassOf(<http://boom.monarchinitiative.org/vocab/DisjointSibling#6212d8e82b7be24d8b37ade44a50fda4ead7c8c5> <http://purl.obolibrary.org/obo/XCO_0000543>), referencedObject=<http://purl.obolibrary.org/obo/XCO_0000543>, category=DANGLING]

Is there another flag I need to pass for the DANGLING errors?

wdduncan commented 4 years ago

Also, when I convert to obo format, there is a line called owl-axioms that lists all the axioms in functional syntax. Is this normal? I found an explanation in the documentation about them being untranslatable, but there are just a lot of them.

balhoff commented 4 years ago

but produces a number of errors:

This is normal ROBOT output, nothing to worry about here.

Also, when I convert to obo format, there is a line called owl-axioms that lists all the axioms in functional syntax. Is this normal? I found an explanation in the documentation about them being untranslatable, but there are just a lot of them.

That's right, these are axioms that can't be translated to OBO format. Do you need to use OBO format? I avoid it whenever possible.

matentzn commented 4 years ago

Plus 100 to avoid, but Bill has to live in OBO-grepistan.. no choice. I wouldn’t worry about what’s in owlaxioms for now.

balhoff commented 4 years ago

Closing this in favor of #44.