我想我快疯了!我已经按照 Owl 和 Protege 的各种教程进行操作,但仍然无法找到答案。用例很简单。我已经定义了一个名为“Person”的类。我定义了一个名为 hasFirstName 的数据属性。我已经为 Person 添加了一个“子类”限制,如下所示:“hasFirstName 正好是 1 个字符串”。我还添加了一个名为 Alex 的 Person 类型的个人,并且没有添加 hasFirstName 属性。我希望推理者抱怨,因为我指定了基数 1,并断言 Alex 是一个人,但没有将属性值添加到 Alex 个体,但推理者没有抱怨。但是,如果我添加两个语句,例如 hasFirstName 'Alex' 和 hasFirstName 'John',那么我会收到投诉。我做错了什么?任何帮助将不胜感激,谢谢。
问问题
1617 次
1 回答
4
第一种情况没有矛盾。OWL 做出开放世界假设,这意味着未知的事物不同于已知为真或已知为假的事物。在我写这个答案时,您的用户名是 user3552593。我相对有信心你有一个名字,这与我还不知道它是什么的事实并不矛盾。
这么说
Person ⊑ =1 hasFirstName.String
然后
亚历克斯:人
你可以推断
亚历克斯:=1 hasFirstName.String
没有什么不符合的。亚历克斯,凭借亚历克斯的人格,只有一个名字——我们只是还不知道它是什么。
于 2014-04-20T02:07:07.640 回答