OWL中的奇怪查询行为!

时间:2009-05-09 06:07:56

标签: semantic-web owl dlquery manchester-syntax

在OWL中,此查询工作正常

"person and hasChild min 3"

它工作正常,它给了我所有超过3个孩子的人

但这个不起作用

"person and hasChild max 3"

它应该给我所有少于3个孩子但不起作用的人

有没有人对此有所了解?

为什么“min”有效,而“max”没有给出任何结果!??

由于

2 个答案:

答案 0 :(得分:8)

第二个查询“不起作用”的原因是开放世界假设,也可能(缺少)唯一名称假设

说你说:

John lives in Paris.
Mary lives in Paris.

以下问题由OWL推理员以下列方式回答。

Who lives in Paris?  John, Mary
Does at least one thing live in Paris?  YES
Do at least two things live in Paris?  Maybe
Is Paris a person?  Maybe
Is John and Mary the same thing?  Maybe
Is Paris and Mary the same thing?  Maybe
Does at most one thing live in Paris?  Maybe

每当OWL推理器返回 Maybe 时,用户界面(例如Protege)往往不会显示任何内容。

为了获得您可能想要的答案,您需要向知识库添加更多信息,例如

Mary is not John.
Everybody who lives in Paris is either John or Mary.

希望这会有所帮助。看看您最近在Stack Overflow上收到的问题的观点很少,我想最好在Protege邮件列表上暂时提出这些问题。或者甚至更好,看看邮件列表档案。开放世界假设相关问题每周至少出现一次。

答案 1 :(得分:1)

要添加Kaarel的观点并对您的示例查询进行评论,推理人将查看您所拥有的断言三元组并询问“是否还有其他断言的三元组,我目前没有这个三元组,断言这个人有额外的孩子会让他们超过“三个孩子”的限制吗?“由于这个问题的答案是“可能”,因此推理者无法推断(事实上)你的例子中的人最多有三个孩子。

由于开放的世界假设,推理者很难证明否定的断言。您的“人员不得超过三个孩子”查询此问题。为了达到你想要的目的,你可以断言这个人输入了一类有三个孩子或更少孩子的父母。然后,如果你这样做,你可能不需要首先查询。