簡體   English   中英

貓頭鷹物化與rdf物化

[英]owl reification vs. rdf reification

在具體化方面,最明顯的解決方案是RDF具體化,但似乎OWL2有自己的詞匯,我想了解原因。 讓我們舉一個例子:如果我有以下數據集(它是我們正在使用的數據集的一小部分,它使用OWL):

@prefix :      <http://purl.bdrc.io/ontology/core/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

bdr:T123  a     :Topic ;
    rdfs:seeAlso    bdr:T1129 .

我可以像這樣使用RDF來修改和注釋seeAlso語句:

_:b0 a             rdf:Statement ;
     rdf:subject   bdr:T123 ;
     rdf:predicate rdfs:seeAlso ;
     rdf:object    bdr:T1129 ;
     rdfs:label    "reification 1" .

但是很容易找到一些例子( 這里這里等):

_:b1 a             owl:Axiom ;
     owl:subject   bdr:T123 ;
     owl:predicate rdfs:seeAlso ;
     owl:object    bdr:T1129 ;
     rdfs:label    "reification 2" .

第一個問題:我的理解是owl:subject,謂詞,對象被棄用了,是這樣嗎?

另一種用OWL來修改和注釋三元組的方法似乎是:

_:b2 a                     owl:Axiom ;
     owl:annotatedSource   bdr:T123 ;
     owl:annotatedProperty rdfs:seeAlso ;
     owl:annotatedTarget   bdr:T1129 ;
     rdfs:label            "reification 3" .

(這是Protege使用的例子)但是我無法理解RDF物化+注釋與OWL物化+注釋之間的區別...... OWL方式是否只是告訴推理者不考慮具體化的方法? 還有什么區別?

RDF具體化提供了一種在RDF中討論語句的方法。 具體化三元組說有一個類型語句的資源表示RDF三重bdr:T123 rdfs:seeAlso bdr:T1129說。 然后,無論reified語句是否為true,都可以添加有關此語句的語句。 例如,您可以說該陳述代表Akira的意見,或者該陳述在1942年至2017年之間是真實的。

OWL 2公理注釋提供了一種添加公理信息的方法。 注釋說明了關於公理的一些內容,而不一定是它所表達的內容。 例如,它可能會說公理在2014年10月被添加到本體,這並不意味着該聲明在2014年成立.OWL 2注釋機制是根據OWL 2結構規范和功能樣式語法定義的 ,其中公理注釋是這樣寫的:

AnnotationAssertion(
    Annotation(rdfs:label "reification 1")
    rdfs:seeAlso bdr:T123 bdr:T1129
)

請注意,在OWL 2中, rdfs:seeAlso被定義為注釋屬性,因此原始斷言( bdr:T123 rdfs:seeAlso bdr:T1129 )本身就是一個注釋斷言。 正如你應該看到的,這里沒有具體的規定。 正如Ignazio所說owl:annotated*術語僅存在於RDF圖的映射中。

為了與編程類比,您可以想象一個程序,其中一個人想要將編程指令作為一等公民來管理。 例如,如果編程語言允許您編寫:

MyClass.myMethod(param1,param2); // Instruction I1

並且您希望有一個內存結構來告訴執行此類指令的時間,您可以引入一個可以實現指令的類:

Instruction ins = new Instruction(...); // Construct Instruction I1
ins.setExecutionTime("2017-08-13T10:42:42");

這類似於RDF具體化。 現在,我還可以說Béatrice將指令添加到了代碼中。 但是,這並沒有說明指令本身,而是說它在代碼中的出現。 所以它會更好地表達如下:

MyClass.myMethod(param1,param2); // this was added by Béatrice

這類似於OWL 2注釋。

我相信owl:{subject,predicate,object}反映了這些RDF屬性的URI的早期提議。 它們從未成為任何規范的一部分,因此雖然沒有正式棄用,但它們並未被使用。 owl:annotated{Source,Property,Target} URI是Ignazio鏈接到的官方規范中的URI。

我們有兩個詞匯表(RDF,OWL2)進行具體化的事實是不幸的,但OWL2規范開發人員認為這是必要的。 還有一些其他差異 - 例如,OWL具體化的公理必須是空白節點。

您顯示的owl注釋僅適用於RDF中公理的注釋,如下所述: https//www.w3.org/TR/owl2-mapping-to-rdf/

Reasoners不知道具體化的語句,因為這種具體化只是RDF的語法解決方法 - 其他語法不會為了對它們進行注釋或嵌套注釋而重新定義公理。 (花了一些時間調試處理嵌套注釋的OWLAPI代碼,我想對嵌套注釋很簡單的那些語法的作者表示感謝)。

我不知道owl:annotated*屬性已被棄用。 它們是當前OWL2到RDF映射的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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