我有一个关于使用 OWL API 和推理器的基本问题。
我已经尝试过 JFact Reasoner,成功运行它并得到了很多公理(其中一些是推断出来的,其中一些在原始本体中明确说明)。
我需要区分它们,但我真的找不到任何方法来做到这一点。
OWLClass 或其他地方有什么方法吗?
我有一个关于使用 OWL API 和推理器的基本问题。
我已经尝试过 JFact Reasoner,成功运行它并得到了很多公理(其中一些是推断出来的,其中一些在原始本体中明确说明)。
我需要区分它们,但我真的找不到任何方法来做到这一点。
OWLClass 或其他地方有什么方法吗?
断言公理与推断公理不同,仅因为它们明确存在于本体中。
您可以通过以下方式检查本体中是否存在公理:
OWLOntology o = ...
OWLAxiom ax = ...
boolean asserted = o.containsAxiom(ax);
注意:如果一个公理有注释,它可能不会被 theis 方法匹配:语义上等价但具有不同注释的公理彼此不匹配equals()
(这是 W3C 规范,不是 OWL API 决定)。在这种情况下,您可以找到一个公理是否被断言o.containsAxiomIgnoreAnnotations(ax)
。