【问题标题】:How to disinguish between inferred and explicit axiom?如何区分推断公理和显式公理?
【发布时间】:2014-11-25 10:00:56
【问题描述】:

我有一个关于使用 OWL API 和推理器的基本问题。

我尝试过 JFact Reasoner,成功运行它并得到了很多公理(其中一些是推断出来的,其中一些是在原始本体中明确说明的)。

我需要区分它们,但我真的找不到任何方法来做到这一点。

OWLClass 或其他地方有什么方法吗?

【问题讨论】:

    标签: java ontology owl-api reasoning inferred-type


    【解决方案1】:

    断言的公理与推断的公理不同,只是因为它们明确地存在于本体中。

    您可以通过这种方式检查一个公理是否存在于本体中:

    OWLOntology o = ...
    OWLAxiom ax = ...
    boolean asserted = o.containsAxiom(ax);
    

    注意:如果一个公理有注解,它可能不会被 theis 方法匹配:语义上等价但有不同注解的公理彼此不是equals()(这是 W3C 规范,不是 OWL API 决定)。在这种情况下,您可以查看是否使用o.containsAxiomIgnoreAnnotations(ax) 断言了一个公理。

    【讨论】:

    • 这就是我想要的,虽然我希望有更好的解决方案(比如一些指示标志)......但大多数情况下我需要检查三元组。有可能以这种方式完成吗?
    • 不可能在三级轻松做到这一点——它们不会直接暴露在 OWL API 中。您必须将本体和公理都渲染为三元组并检查包含,同时考虑具有不同身份的空白节点。渲染器包中有用于流式传输三元组的代码,但其余部分需要大量编码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多