簡體   English   中英

owl:allValuesFrom和rdfs:范圍差異

[英]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限制,可以說人有父母,狗有狗父母等。有域/范圍,你不能。

還有另一個值得注意的區別。 當類上有多個rdfs:range(或rdfs:domain)三元組時,范圍或域是所述范圍/域的連接 (交集)。 請參閱RDFS規范 ,雖然措辭含糊不清, 這篇文章

如果在本體上執行推理,您將發現rdfs:range / domain三元組是針對所述范圍/域類的所有超類推斷的。 雖然在語義上是正確的,但這可能會令人困惑或難以使用。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM