http://www.w3.org/RDF/Validator/

一、 RDF 容器 (Containers)

我們常常需要描述一組事物:例如一本書是由「多個作者」寫的,或某 一 門課程的學生都列出來,或一個套裝軟體下的所有模組。 RDF 提供了一些預先定義的類型和屬性用以描述一組事物。分別有下列三種:

rdf:Bag

「包裹容器」表示一組可能包含重複成員的資源或文字,但成員間的順序 不 重要。 ( 例如:要敘述某委員會的成員 )

rdf:Seq

「序 列 容器」 表示一組可能包含重複成員的資源或文字,成員間的順序是重要的。 ( 例如:要敘述 一組須按字母順序排 列 的事物 )

rdf:Alt

「選擇容器」 表示一組可以選擇的資源或文字(常常是屬性的一個值)。 ( 例 如:要 描述某著作的 不 同語 言譯作 )

(1)Bag

容器通常是用 來 表示,有個屬性其值為一組事物。 例 如,要表示 「修 IR 課程的學生有 Anadem 、 Kate 、 Poyu 、與 Inman 」,那麼我們可以為該課程加入 exterms:students 屬性,該屬性值為 rdf:Bag 包裹容器 ( 表示一組學生 ) ,並用「容器成員之屬性」將每個學生標示為該容器的成員

 

 

xmlns:exterms="http://www.example.org/terms/">

 

 

 

li rdf:resource="http://www.example.org/terms/students/Anadem"/>

li rdf:resource="http://www.example.org/terms/students/Kate"/>

li rdf:resource="http://www.example.org/terms/students/Poyu"/>

li rdf:resource="http://www.example.org/terms/students/Inman"/>

 

 

 

 

以 li 元素來代表資料模式的 rdf:_1,rdf:_2, rdf:_3,rdf:_4 property ,全部統一用 li 來表示,是因為 Bag 中所包含的四個資源在順序的排列上並不具特別的意義。

(2)Sequence

Sequence 與 Bag 主要差別即在  要改成 ,而 應用程式在創建和處理 RDF 圖時,便會正確解釋現在屬性名字中的順序 。

 

 

xmlns:exterms="http://www.example.org/terms/">

 

 

 

li rdf:resource="http://www.example.org/terms/students/Anadem"/>

li rdf:resource="http://www.example.org/terms/students/Inman"/>

li rdf:resource="http://www.example.org/terms/students/Kate"/>

li rdf:resource="http://www.example.org/terms/students/Poyu"/>

 

 

 

 

(3) Alternative

 

 

xmlns:exterms="http://www.example.org/terms/">

 

 

 

 

  •  

     

  •  

     

  •  

     

     

     

     

    1 、含有空白節點的敘述

    假設一個 需要被記錄的資訊,如果用簡單的 RDF 語句來描述就足夠的話,那麼一切都將變得很簡單,但是大多數現實世界中的資料,至少表面看起來,要比簡單的 RDF 語句所能描述的形式複雜得多。

    http://www.example.org/index.html has a creator whose value isJohn Smith

     

    例如在上面的例子中,在描述 John Smith 的個人資訊的情況下,我們來考慮 John 的位址,整個的位址可以被寫作一個簡單的字串 à "1501 Grant Avenue, Bedford, Massachusetts 01730" 、 或 者是 一個三元組 
    exstaff:85740 exterms:address "1501 Grant Avenue, Bedford, Massachusetts 01730" .
    然而 , 設想一下 John 的位址需要記錄為由一個街道 、 城市、州和郵遞區號組成的結構,像這樣結構化的資料資訊在 RDF 中是 透 過以下方式描述的:

    把 John Smith 的住址看成 是 一個「資源」,然後發表關於這個新資源的陳述。所以在 RDF 圖中,為了將 John Smith 住址分解成它的各個組成部分,一個用來描述 John Smith 住址這一概念的「新節點」就隨之產生了,並用一個新的 URIref 來標識,如 http://www.example.org/addressid/85740 ( 可縮寫為 exaddressid:85740) 。

     

     

    描述 RDF 結構化資料的方法 , 會產生很多的 " 中間的 "URIrefs ,比如像描述 John ’s address 的 URIref 「 exaddressid:85740 」。 這些「中間的 URIrefs 」 概念可能從來不會被從 RDF 圖的外部引用,因此可能不需要 " 通用的 " 識別字。另外,在用於描述一組陳述的圖中,用來標識 "John Smith's address" 的 URIref 並不是真正需要的

     

     

    使用了一個沒有 URIref 的節點來表示 "John Smith's address" 。這個 空節點雖然沒有 URIref ,但表達了它應該表達的含義,因為這個空節點本身提供了圖中各個部分之間必需的連通作用。然而,為了把這個圖表示為三元組的形式,就需要一個能清楚表示那個空節點的識別字。以下寫出圖二所示的內容相應的三元組:

    exstaff:85740 exterms:address ??? .

    ??? exterms:street "1501 Grant Avenue" .

    ??? exterms:city "Bedford" .

    ??? exterms:state "Massachusetts" .

    ??? exterms:postalCode "01730" .

    ??? 出現的地方正是出空節點出現過的地方。因為一個複雜的圖包含的空節點可能會不只一個,所以需要一種區分不同空節點的辦法。因此三元組以 "_:name" 的形式來表示空節點。例如:在這個例子中,空節點識別字 "_:johnaddress" 可以用來表示空節點,那麼相應的三元組可以寫成如下的形式:

    exstaff:85740 exterms:address _:johnaddress .

    _:johnaddress exterms:street "1501 Grant Avenue" .

    _:johnaddress exterms:city "Bedford" .

    _:johnaddress exterms:state "Massachusetts" .

    _:johnaddress exterms:postalCode "01730" .

    空節點識別字僅僅是在把 RDF 圖表示成三元組形式的時候,用來表示圖中的空節點的(區分不同的空節點)。最後,因為空節點識別字表示的是(空)節點而非弧 線 ,所以在一個圖的三元組運算式中:空節點識別字只能出現在三元組主 詞 和受詞的位置上;不能出現在述詞的位置上。

    有些資源可能沒有 URI ,空節點也提供了一種關於這些資源陳述的方法,但這 必須是透 過那些 「 有 URI 資源」的關係來描述的。

    例如:當發表一個關於 Jane Smith 的陳述 時 ,可能會很自然的想要用這人的 email 位址作為她的 URI ( mailto:jane@example.org ),但是這種方法可能會導致一些問題。如果需要同時記錄關於 Jane 的「 住址」和「 mail 」兩者資訊,那麼此時還一樣用她信箱位址作為她的 URIref 的話,就會很難區分真正的表述 主體 到底是指 Jane 還是她的信箱。

    問題的根本原因就是:用 Jane 的 信 箱來代表 Jane 是不正確的,因為 Jane 和她的信箱根本就是兩碼事,因此她和它應該區別對待。當 Jane 自己沒有 URI 時,空節點提供了一條為這種情形更正確的建製方法: 
    Jane 可以由一個空節點表示,並且用這個以 "exterms:mailbox" 為「屬性 」 的空節點作為陳述的主體,且用 URIref" mailto:jane@example.org " 作為它的這個「屬性的值」。這個空節點也可以用以 "exterms:Person" 為值的一個 "rdf:type" 屬性來表述,或者是其他有用的描述性資訊,正如下列三元組所示的: _:jane exterms:mailbox < mailto:jane@example.org > . _:jane rdf:type exterms:Person . _:jane exterms:name "Jane Smith" . _:jane exterms:empID "23748" . _:jane exterms:age "26" . (注意 " mailto:jane@example.org " 寫在兩個 角 括號 裡 ,是因為 " mailto:jane@example.org " 在 mailto URI 模式中是個完整的 URIref ,而不是一個 QName 縮寫,在三元組表示法裡,一個完整的 URIref 必須寫在一對角括號內。)

    上述 三元組清楚地說明了: " 有一個資源,其類型為 exterms:Person ,其電子信箱是由 " mailto:jane@example.org " 來標識的,其名字是 Jane Smith ,等等 " 。簡單來說,空節點可以看成「有一個資源」,而以此「資源」作主體的陳述,就提供了關於這個資源特性方面的資訊。

     

     

     

     

     

     

  •  

     

  •  

     

  •  

     

     

     

     

     

    參考文獻:

    1 http://zh.transwiki.org/wiki/index.php/RDF%E5%85%A5%E9%96%80
    _%E6%8E%A8%E8%96%A6%E6%A8%99%E6%BA%96

    2 國立臺灣師範大學 093NTNU5447004 RDF 與 Topic Maps 之知識表徵比較研究 鍾季倫 ,93

     

    3 語意網技術導論 / 屠正名譯 2006 譯自: A semantic Web primer

    4 輔仁大學, SGML 、 XML 、 RDF 文件標準比較與 Metadata 資料模式設計 , 陳嵩榮

    • 全站熱搜

      英國旅遊民宿推薦 發表在 痞客邦 留言(0) 人氣()