【问题标题】:Retrieve inferred object property filler in OWL ontology在 OWL 本体中检索推断的对象属性填充
【发布时间】:2017-04-23 17:38:37
【问题描述】:

如何在我的本体中检索每个类O所有(推断的)存在限制?

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

  • 对于 Classes(O) × Classes(O) 中的每个子类 (C, D)
    • 对于 Object properties(O) 中定义的每个属性 P
      • 如果 C and P some D 是可满足的:
        • 产量(C, P, D)

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

按照建议使用来自 JFact 的 OWLKnowledgeExplorerReasoner here 不起作用,因为它在检索邻居标签时崩溃(请参阅我的 test case

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

谢谢!

【问题讨论】:

    标签: owl protege owl-api fact++


    【解决方案1】:

    首先,您的检查是错误的。对于一个空的本体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 的所有超类也是如此
    • PD 的子/超类/属性的类似规则
    • 您可以为所有P some Thing 表达式命名。分类后,您可以将C 的搜索限制为这些概念的子类。

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

    按照此处的建议使用 JFact 中的 OWLKnowledgeExplorerReasoner 不起作用,因为它在检索邻居标签时崩溃(异常无法到达的情况!)。

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

    【讨论】:

    • 感谢您的快速回复!我会尝试你的建议。我的问题的缩小版本是检索一组类所需的所有对象属性语句。我希望这可以比循环遍历所有类对和属性更直接地实现。我进一步添加了一个指向带有回溯的测试用例的链接。
    • 对于您的问题,我将为您感兴趣的所有P 创建P some Thing 的命名类。然后我将对丰富的本体进行分类,并要求所有的析取的超类从你的集合中的概念(这可能需要一段时间)。谢谢你的例子,我去看看。
    • 再次感谢。我能够使用您的原始答案(无法满足C and not (P some D))和一些优化来提取有关推断对象属性的信息。 (我的第二个建议的implementationP some Thing 代表所有P)仅导致T,但考虑到第一个解决方案,这没关系。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    相关资源
    最近更新 更多