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" 、 或 者是 一個三元組 把 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 時,空節點提供了一條為這種情形更正確的建製方法: 上述 三元組清楚地說明了: " 有一個資源,其類型為 exterms:Person ,其電子信箱是由 " mailto:jane@example.org " 來標識的,其名字是 Jane Smith ,等等 " 。簡單來說,空節點可以看成「有一個資源」,而以此「資源」作主體的陳述,就提供了關於這個資源特性方面的資訊。
參考文獻: 1 http://zh.transwiki.org/wiki/index.php/RDF%E5%85%A5%E9%96%80 2 國立臺灣師範大學 093NTNU5447004 RDF 與 Topic Maps 之知識表徵比較研究 鍾季倫 ,93
3 語意網技術導論 / 屠正名譯 2006 譯自: A semantic Web primer 4 輔仁大學, SGML 、 XML 、 RDF 文件標準比較與 Metadata 資料模式設計 , 陳嵩榮 |
- Jun 05 Sat 2010 23:09
RDF語法簡介
close
全站熱搜
留言列表
發表留言