【问题标题】:Jena Fuseki missed inference?Jena Fuseki 错过了推论?
【发布时间】:2020-01-05 19:40:56
【问题描述】:

我正在使用 Jena Fuseki 3.13.1(使用 OWLFBRuleReasoner),并且我已断言(上传)以下三元组:

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix f: <http://vleo.net/family#> .

f:Bob f:hasWife f:Alice .
f:Bob f:hasWife f:Alice2 .
f:Alice2 f:hasHusband f:Bob2 .

f:hasWife a owl:FunctionalProperty .
f:hasWife a owl:InverseFunctionalProperty .
f:hasHusband owl:inverseOf f:hasWife .

现在,如果我查询和ASK { f:Alice owl:sameAs f:Alice2 },我就知道了。

但是,如果我ASK { f:Bob owl:sameAs f:Bob2 },我就错了!在另一个推理器(owl-rl)上加载相同的三元组,我得到了三元组 f:Bob owl:sameAs f:Bob2 推断。

这里发生了什么?

【问题讨论】:

  • 不确定,可能是一个错误 - 规则是 here:规则 inverseOf2ifp1 应该导致推断出的三元组。您应该在 Jena 邮件列表中询问,Dave Reynolds(推理层的主要开发人员)通常会很快回答
  • @AKSW 感谢您的提示!我会将此报告给 Jena 邮件列表

标签: jena owl fuseki


【解决方案1】:

我已按照此文档与 jena reasoner 合作: https://jena.apache.org/documentation/inference/ 我有多年使用耶拿的经验,并且从未使用过 OWLFBRuleReasoner,并且它没有出现在指定的文档中,这对我来说很好奇。

并非所有推理器都使用相同的构造,这就是我检查文档的原因,这意味着也许 OWLFBRuleReasoner 不使用与您使用的另一个推理器 (owl-rl) 相同的 owl 构造。

另一件事是,据我了解,您的 KB 不一致,因为您声明: f:hasWife a owl:FunctionalProperty

但是,您要为其分配 2 个值,这必然会使您的 KB 不一致。

路易斯·拉莫斯

【讨论】:

  • 那不正确,KB没有不一致
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

后续行动:根据 UninformedUser 的建议,我在 Jena 邮件列表中询问了这个人,并得到了 Dave 的答复。

Jena 的实现以一些推理完整性换取性能,这种情况下的解决方案是在 owl-fb 规则文件中显式添加 inverseOf 的转发版本:

[inverseOf2b: (?P owl:inverseOf ?Q), (?X ?P ?Y) -> (?Y ?Q ?X) ]

详情在这个thread

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多