owlcs / jfact

JFact repository
13 stars 8 forks source link

Invalid role expression #5

Closed alanruttenberg closed 9 years ago

alanruttenberg commented 9 years ago

Got this:

Java exception 'org.semanticweb.owlapi.reasoner.ReasonerInternalException: Invalid role expression: but got: (self-ref http://purl.obolibrary.org/obo/BFO_0000083)'.

During consistency test of http://purl.obolibrary.org/obo/bfo.owl

ignazio1977 commented 9 years ago

The failure can be reproduced on OWLAPI 3.5.1 and JFact 1.2.3 but not with more recent combinations. In OWL API 4 and 5, there is an error in parsing annotations on axioms and JFact is never allowed to see the ontology. This could be a bug in OWLAPI parsing, if incorrect axioms are parsed and passed to JFact.

ignazio1977 commented 9 years ago

Dropping four annotation axioms allows OWLAPI 4 to parse the ontology and replicates the failure in JFact 4.

ignazio1977 commented 9 years ago

Reducing the ontology to this still reproduces the issue:

InverseObjectProperties(<http://purl.obolibrary.org/obo/BFO_0000083> <http://purl.obolibrary.org/obo/BFO_0000123>)
SubClassOf(<http://purl.obolibrary.org/obo/BFO_0000040> ObjectAllValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000083> <http://purl.obolibrary.org/obo/BFO_0000028>))
SubClassOf(<http://purl.obolibrary.org/obo/BFO_0000006> ObjectHasSelf(<http://purl.obolibrary.org/obo/BFO_0000083>))
SubClassOf(<http://purl.obolibrary.org/obo/BFO_0000140> ObjectAllValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000083> ObjectUnionOf(<http://purl.obolibrary.org/obo/BFO_0000009> <http://purl.obolibrary.org/obo/BFO_0000018> <http://purl.obolibrary.org/obo/BFO_0000026>)))
SubClassOf(<http://purl.obolibrary.org/obo/BFO_0000004> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000083> <http://purl.obolibrary.org/obo/BFO_0000006>))
Declaration(ObjectProperty(<http://purl.obolibrary.org/obo/BFO_0000083>))
ObjectPropertyRange(<http://purl.obolibrary.org/obo/BFO_0000083> <http://purl.obolibrary.org/obo/BFO_0000006>)
ObjectPropertyDomain(<http://purl.obolibrary.org/obo/BFO_0000083> <http://purl.obolibrary.org/obo/BFO_0000004>)
ignazio1977 commented 9 years ago

The error message thrown is misleading - it's not an invalid property expression, it's unsupported in the current JFact and in FaCT++. One of the features that needs to be added.

tsarkov commented 9 years ago

Hmm, HasSelf should be supported with FaCT++ (and I think JFact as well). What is a problem with it? Can you try it with FaCT++ or give a full backtrace of JFact please.

tsarkov commented 9 years ago

I just double checked and FaCT++ 1.6.3 classifies BFO from the 1st comment without problems.

ignazio1977 commented 9 years ago

Thanks Dima, I've checked the code where the exception is thrown and it's the same between FaCT++ and JFact - I'm guessing there's some difference in the code leading to that.

ignazio1977 commented 9 years ago

Fixed by Dmitry and cherry picked on master, version 4 and version 5