[英]owl:allValuesFrom and rdfs:range difference
我正在研究语义网,我想知道:写一个限制的语义是否有任何区别:
:Person
a owl:Class ;
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty :hasParent ;
owl:allValuesFrom :Person
] .
并编写范围限制,如:
:hasParent rdfs:range :Person.
在我看来,它意味着相同:父母必须有一种人。 没有任何区别吗?
第一个片段意味着a :Person
拥有父母的人必须具有:Person
-parent。 但是,a :Dog
可能有父母不是:Person
,例如。 第二个片段说任何拥有父母的人都必须拥有:Person
-parent,无论这是什么东西。
在krajol的评论之后编辑:
第一个代码段的allValuesFrom
限制不等同于:
:hasParent rdfs:domain :Person;
rdfs:range :Person .
在allValuesFrom
限制的情况下,仍然可能有父母不是人。 对于rdfs:domain
/ rdfs:range
组合,它是不可能的。 有了allValuesFrom
限制,可以说人有父母,狗有狗父母等。有域/范围,你不能。
(添加已经回答的问题的答案,因为我发现接受的答案的本质缺乏。)
[ a owl:Restriction ;
owl:onProperty :hasParent ;
owl:allValuesFrom :Person
]
可以读作“ hasParent
谓词的任何值(可能没有)属于Person
类型的所有事物的类”。
通过说Person
是这个类的子类,我们说它是这个类的一个更专业的版本。 因此, Person
仍然只能将其他Person
作为hasParent
值。
这与rdfs:range
不同,因为我们没有声明hasParent
本身的有效域/范围。 为了回收Antoine的例子 ,我们仍然可以说:
:dog1 a :Dog.
:dog2 a :Dog.
:dog1 :hasParent :dog2.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.