在 OWL ontology 中检索推断对象 属性 填充符

Retrieve inferred object property filler in OWL ontology

如何检索 ontology O 中的每个 class 所有(推断的)存在限制?

我目前的做法是遍历所有对的 classes 和对象属性,并检查是否满足限制:

  • for each subclass (C, D) in Classes(O) × Classes(O):
    • for each property P defined in Object properties(O):
      • if C and P some D is satisfiable:
        • yield (C, P, D)

这非常慢,因为我正在使用具有 4557 个 class 和 107 个对象属性的 vaccine ontology。即使它是一次性计算,我也可能会从更好的方法中学到一些东西。

按照建议使用 JFact 中的 OWLKnowledgeExplorerReasoner did not work because it crashed when retrieving the neighbour labels (see my test case)

您能否建议任何使用 OWLAPI、Protégé 或​​任何其他工具的改进解决方案?此外,最好只检索最具体的填充符 classes.

谢谢!

首先,你的支票是错的。对于一个空的 ontology C and P some D 是可以满足的,这不是你想要的。您必须检查 C and not (P some D) 是否不可满足(或者,您可以只检查 isSubsumedBy(C, P some D))。

如果您使用一些用于分类的技术,您可以缩短探索时间,例如:

  • 如果CP some D的子类,那么C
  • 的所有子类也是
  • 如果C不是P some D的子类,那么C
  • 的所有超类也是
  • sub/super classes/properties PD
  • 的相似规则
  • 您可以为所有 P some Thing 表达式命名。分类后,您可以将 C 的搜索限制为这些概念的子 类。

如果您能缩小问题范围,也会有所帮助。您真的需要检查所有对和所有属性吗?

Using the OWLKnowledgeExplorerReasoner from JFact as suggested here did not work because it crashed when retrieving the neighbour labels (Exception Unreachable situation!).

能否请您提供一个测试用例和问题的完整堆栈跟踪,以便我们解决它?您是否尝试将其与 FaCT++ 一起使用?