ontodev / robot

ROBOT is an OBO Tool
http://robot.obolibrary.org
BSD 3-Clause "New" or "Revised" License
261 stars 74 forks source link

Minor problem with --equivalent-classes-allowed asserted-only #539

Closed matentzn closed 5 years ago

matentzn commented 5 years ago

I love the fact I can use ROBOT to identify unintended equivalent classes. There seems to be one case that is not caught however, which has, in my opinion, a strong use case in the are of definition oriented development:

If you run:

robot reason -I http://purl.obolibrary.org/obo/xp.owl --equivalent-classes-allowed asserted-only -o test.owl

(even of you use none instead of asserted-only)

you will find no warning given. If you run the reasoner in protege; you will find that for example http://purl.obolibrary.org/obo/XPO_0103890 has a freshly inferred equivalent class due to the ontology developer (me :P, mea culpa) using the same logical definition twice (a very typical case in all phenotype ontologies).

matentzn commented 5 years ago

Hm, could this be a consequence using ELK 0.4.3 instead of 0.5 perhaps?

matentzn commented 5 years ago

Update:

robot reason -I http://purl.obolibrary.org/obo/xp.owl --reasoner hermit --axiom-generators "SubClass EquivalentClass" --equivalent-classes-allowed none -o test2.owl

Is empty (and does not throw an error), so it is probably not an ELK problem after all. Must be thatthis case:

Case 1:

A=R some B
B=R some B

is internally interpreted as EquivalentClasses(A,B,R some B), which means it is counted as some kind of asserted. It is, however, a bit strange that --equivalent-classes-allowed none does not scream in this case? Maybe I made a mistake after all..

cmungall commented 5 years ago

this sounds weird, can you make a smaller example?

matentzn commented 5 years ago

Something else has gone wrong, robot works correctly. IRI in the test query did not work, should have been http://purl.obolibrary.org/obo/xpo.owl