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

check whether a class is disjoint or not with the given class using owl API

我想使用 owl API.here 我的 problem.suppose 检查 class 不相交的公理 我有两个 classes ChickenToppingHamTopping.ChickenTopping class 有公理的子class hasSpiciness some Hot 和 HamTopping class 有公理 的子 class 有一些温和 的辣味。这些 HotMild class 是脱节的。由于 subclass 公理,ChickenTopping 和 HamTopping classes 是脱节的。那么如何检查给定的 HamTopping class 是否与 Chicken class 不相交?

Galigator 已经提到了一些您可以使用的推理器。

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

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