问题描述
我想我快要疯了!我遵循了有关Owl和Protege的各种教程,但仍然找不到答案.用例很简单.我定义了一个名为人"的类.我定义了一个名为hasFirstName的数据属性.我在Person上添加了"subclass of"限制:"hasFirstName正好是1个字符串".我还添加了一个称为Person类型的Alex,并且没有添加hasFirstName属性.我希望推理者抱怨,因为我已经指定了1的基数,并且断言Alex是一个Person,但是没有将属性值添加到Alex个人,但是推理者却没有抱怨.但是,如果我添加两个语句,例如hasFirstName"Alex"和hasFirstName"John",然后我会抱怨.我做错了什么?任何帮助将不胜感激,谢谢.
I think I am going crazy! I have followed the various tutorials for Owl and Protege and still cannot figure out the answer. Use case is simple. I have defined a class called ‘Person’. I have defined a data property called hasFirstName. I have added a ‘subclass of’ restriction to Person like this : ‘hasFirstName exactly 1 string’. I have also added an individual called Alex of type Person, and have not added the hasFirstName property. I expect the reasoner to complain as I have specified the cardinality of 1, and asserted that Alex is a Person, but have not added the property value to Alex individual, yet the reasoner does not complain. If however I add two statements e.g. hasFirstName ‘Alex’ and hasFirstName ‘John’ then I get a complain. What I am doing wrong? Any help will be most appreciated, thanks.
推荐答案
在第一种情况下,没有不一致的地方. OWL做出了开放世界假设,这意味着未知的事物不同于已知的事物.正确或已知为错误.您的用户名,在我撰写此答案时为user3552593.我相对有信心 you 有一个名字,这与我还不知道它的名字并不矛盾.
There's no inconsistency in the first case. OWL makes the open world assumption, which means that something being unknown is different from it being known to be true or known to be false. Your username, at the time I'm writing this answer is user3552593. I'm relatively confident that you have a name, and that's not inconsistent with the fact that I don't know what it is yet.
这么说
那
您可以推断
没有什么矛盾的;凭借Alex的个性,Alex恰好有一个名字-我们只是不知道它的名字.
There's nothing inconsistent with that; Alex, by virtue of Alex's personhood, has exactly one first name—we just don't know what it is yet.
这篇关于严格保护1个基数OWL限制而不会引起不一致的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!