2014-10-29 134 views
1

我创建了一个简单的OWL本体中Protege描述人与人之间的关系:这个DL查询为什么不返回预期结果?

  • :人,男人,女人
    • 人是超一流的男人和女人
    • 男人和女人不相交
  • 对象属性:hasChild
    • 及其杜曼和范围是Person
  • 个人:一个(MAN),B(MAN),C(MAN)--- X (女性)中,y(女性)中,z(女性)
  • 断言
    • 一个hasChild X
    • 一个hasChildŸ
    • ÇhasChild一个

现在我要查询其子女唯一的女儿所有的人。我在DL查询标签中写了这个查询:

Person and hasChild only Woman 

但是它没有返回实例!或者对只有两个孩子的人的简单查询

Person and hasChild exactly 2 

这两个查询都没有返回任何实例,任何人都可以告诉我有什么问题吗?

谢谢

回答

4

DL有一个开放世界假设(OWA)。这意味着在本体中捕获的知识是不完整的。另一种选择是封闭世界假设(CWA),它用于数据库。在CWA中,没有宣布的一切都不存在。

根据OWA的说法,我们从上面的本体论知道,a和c有一些孩子。我们不知道a是否有多个孩子,因为x和y可以是相同的(为了避免这种情况,应该使用不同的个人()公理)。我们不知道这些是否是唯一的孩子:在开放的世界中,任何人都可以拥有其他在本体中被省略的任何性别的孩子。这就是为什么这些查询的答案是空集。

最简单的方法获得预期的答案os到关闭的知识。如果本体将包含一个公理

a instanceOf (hasChild only {x,y})

那么将成为第一个查询的答案。如果,此外,公理

DifferentIndividuals(x,y)

将增加,那么第二个查询将返回。 Protege允许人们轻松制作第二种公理。

+0

嗨德米特里。我衷心感谢您的有益答案!谢谢 – 2014-10-29 20:25:44

相关问题