0

我正在尝试使用 owl-api 为 OWL 2 RL 'The Semantics of Equality' 中的规则生成蕴涵。我已经尝试过:为什么在 Protege 中可视化的推理与导出的推理公理不同

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());

并尝试预先计算相同的个人推理:

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

我已经尝试使用 Openllet 和 hermit 作为推理器。

但我仍然不能产生这样的蕴涵:

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

或平等语义学中的任何内容。

4

1 回答 1

0

没有将sameAs关系具体化的推断公理生成器。您可以自己编写一个,例如基于InferredPropertyAssertionGenerator,或者您可以在 OWLAPI GitHub 存储库上打开一个问题,以将功能添加到库中。

于 2021-05-16T14:02:20.087 回答