Closed alanruttenberg closed 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.
Dropping four annotation axioms allows OWLAPI 4 to parse the ontology and replicates the failure in JFact 4.
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>)
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.
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.
I just double checked and FaCT++ 1.6.3 classifies BFO from the 1st comment without problems.
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.
Fixed by Dmitry and cherry picked on master, version 4 and version 5
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