在 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)
)。
如果您使用一些用于分类的技术,您可以缩短探索时间,例如:
- 如果
C
是P some D
的子类,那么C
的所有子类也是
- 如果
C
不是P some D
的子类,那么C
的所有超类也是
- sub/super classes/properties
P
和 D
的相似规则
- 您可以为所有
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++ 一起使用?
如何检索 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
您能否建议任何使用 OWLAPI、Protégé 或任何其他工具的改进解决方案?此外,最好只检索最具体的填充符 classes.
谢谢!
首先,你的支票是错的。对于一个空的 ontology C and P some D
是可以满足的,这不是你想要的。您必须检查 C and not (P some D)
是否不可满足(或者,您可以只检查 isSubsumedBy(C, P some D)
)。
如果您使用一些用于分类的技术,您可以缩短探索时间,例如:
- 如果
C
是P some D
的子类,那么C
的所有子类也是
- 如果
C
不是P some D
的子类,那么C
的所有超类也是
- sub/super classes/properties
P
和D
的相似规则
- 您可以为所有
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++ 一起使用?