我正试图使用OWL-api为OWL2RL中的规则"相等的语义"生成蕴涵。我已经尝试过了:为什么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和隐士作为推理机。
但我仍然无法产生这样的暗示:
If:
T(?x, owl:sameAs, ?y)
T(?y, owl:sameAs, ?z)
Then:
T(?x, owl:sameAs, ?z)
或者《平等语义学》中的任何东西。
没有推断出的公理生成器来实现sameAs
关系。您可以自己编写一个,例如基于InferredPropertyAssertionGenerator
,也可以在OWLAPI GitHub repo上打开一个问题,以便将功能添加到库中。