[英]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.