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.
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.