Thank you all for your answers. I well re-read and searched the semantics of allValuesFrom. I finally understand it . having such two allValuesFrom together with disjoint dataRanges (or two disjoint AllOPEFiller class expressions ) ( meaning explicitly that instances of persons have , if they have, identifier instance of Nothing ) will not be detected by the reasoner as a case od incoherent or inconsistent ontology. However, once we want to assert some dataPropertyassertion (or objectPropertyAssertion) involving these ones, the reasoner will raise this inconsistency.This is explained to the semantics of AllValuesFrom:the instances of "person", if they ever have identifier, this identifier must be DR1this semantics works for the two subclassOf axioms: the assertion is true for one and inconsistent woth the other subClassOf.That's why the reasoner raises inconsistencyThank you all for your explanations.
Le Vendredi 26 décembre 2014 17h10, Bijan Parsia <bijan.parsia@manchester.ac.uk> a écrit :
I think that if you intend to explicitly block use of a property then should make your intention clear by using Nothing.
Your example is a really interesting one. I do think it's more common for it to be an error (as with unsat classes).
But, that may partially be an illusion due to the fact that 1) we can easily detect it and 2) lots of prominent examples are obviously bonkers.
We might want to more regularly close roles.
Cheers,
Bijan.