使用owl API检查类是否与给定类不相交

时间:2017-12-11 09:04:42

标签: ontology owl-api

我想使用owl API检查类不相交的公理。我的问题。我有两个类 ChickenTopping HamTopping .ChickenTopping类有一个公理的子类 hasSpiciness some Hot 和HamTopping类有一个axiom的子类 hasSpiciness some Mild 。这些 Hot Mild 类是脱节的。由于公理的子类,ChickenTopping和HamTopping类是脱节的。那么如何检查给定的HamTopping类是否与Chicken类不相交?

1 个答案:

答案 0 :(得分:2)

Galigator已经提到了一些你可以使用的reasoners。

要检查某个类是否与另一个已知类不相交,创建OWLReasoner后,您可以使用以下代码:

OWLClass a = ...
OWLClass b = ...
OWLReasoner reasoner = ...
OWLDataFactory df = ...
OWLAxiom axiom = df.getOWLDisjointClassesAxiom(Arrays.asList(a, b));
boolean classesAreDisjoint = reasoner.isEntailed(axiom);