3

在 OWL 中,此查询工作正常

"person and hasChild min 3"

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

但这一个不起作用

"person and hasChild max 3"

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

有人对此有任何想法吗?

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

谢谢

4

2 回答 2

8

第二个查询“不起作用”的原因是Open World Assumption,也可能(缺少)Unique Name Assumption

说你说:

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 邮件列表中提出这些问题。或者更好的是,查看邮件列表档案。与开放世界假设相关的问题每周至少出现一次。

于 2009-05-10T15:57:32.700 回答
1

为了补充 Kaarel 的观点并对您的示例查询进行评论,推理者将查看您拥有的断言三元组并问:“是否存在其他断言三元组,我目前没有,断言此人有其他孩子这会让他们超过‘三个孩子’的限制?” 由于这个问题的答案是“可能”,推理者将无法推断(作为事实)您示例中的人最多有三个孩子。

由于开放世界假设,推理者很难证明否定断言。您的“人不得有超过三个孩子”的查询遇到了这个问题。为了实现您正在寻找的内容,您可以断言该人键入一类有三个或三个以下孩子的父母。再说一次,如果你这样做了,你可能一开始就不需要查询。

于 2009-06-06T04:42:13.713 回答