javainferenceowl-apireasoner

Inferencing the Sematincs of Equality (OWL 2 RL) using owlapi


I'm trying to produce entailment for the rule in OWL 2 RL 'The Semantics of Equality' using owl-api. I already tried to follow: Why the inferences visualised in Protege differ from the exported inferred axioms

genInferred.add(new InferredSubClassAxiomGenerator());
genInferred.add(new InferredClassAssertionAxiomGenerator());
genInferred.add(new InferredDisjointClassesAxiomGenerator());
genInferred.add(new InferredEquivalentClassAxiomGenerator());
genInferred.add(new InferredEquivalentDataPropertiesAxiomGenerator());
genInferred.add(new InferredEquivalentObjectPropertyAxiomGenerator());
genInferred.add(new InferredInverseObjectPropertiesAxiomGenerator());
genInferred.add(new InferredObjectPropertyCharacteristicAxiomGenerator());
genInferred.add(new InferredPropertyAssertionGenerator());
genInferred.add(new InferredSubDataPropertyAxiomGenerator());
genInferred.add(new InferredSubObjectPropertyAxiomGenerator());

And try to precomputed the same individual inference:

reasoner.precomputeInferences(InferenceType.SAME_INDIVIDUAL);
ontologyInf.addAxioms(reasoner.getPendingAxiomAdditions());

I already try using Openllet and hermit as reasoner.

But I still can't produce entailment like this:

If:
T(?x, owl:sameAs, ?y)
T(?y, owl:sameAs, ?z) 
Then:
T(?x, owl:sameAs, ?z)

or anything in Semantics of Equality.


Solution

  • There is no inferred axiom generator that materialises the sameAs relations. You could write one yourself, based e.g., on InferredPropertyAssertionGenerator, or you can open an issue on the OWLAPI GitHub repo for the functionality to be added to the library.