RDF簡介


1. 介紹(Introduction)

資源描述框架(Resource Description Framework, 簡稱 RDF)是一個用於表達關於萬維網(World Wide Web)上的資源的信息的語言. 它專門用於表達關於Web資源的元數據, 比如Web頁面的標題、作者和修改時間,Web文檔的版權和許可信息,某個被共享資源的可用計劃表等。然而,將“Web資源(Web resource)”這一概念一般化後,RDF可被用於表達關於任何可在Web上被標識的事物的信息,即使有時它們不能被直接從Web上獲取。比如關於一個在線購物機構的某項產品的信息(例如關於規格、價格和可用性信息),或者是關於一個Web用戶在信息遞送方面的偏好的描述。

RDF用於信息需要被應用程序處理而不是僅僅顯示給人觀看的場合。RDF提供了一種用於表達這一信息、並使其能在應用程序間交換而不喪失語義的通用框架。既然是通用框架,應用程序設計者可以利用現成的通用RDF解析器(RDF parser)以及通用的處理工具。能夠在不同的應用程序間交換信息意味着對於那些並非信息的最初創建者的應用程序也是可利用這些信息。

RDF基於這樣的思想:用Web標識符(稱作統一資源標識符Uniform Resource IdentifiersURIs)來標識事物,用簡單的屬性(property)及屬性值來描述資源。這使得RDF可以將一個或多個關於資源的簡單陳述表示爲一個由結點和弧組成的圖(graph),其中的結點和弧代表資源、屬性或屬性值。爲了讓討論顯得儘量具體一些,下面的這組陳述“有一個人由[url]http://www.w3.org/People/EM/contact#me[/url] 標識, 他的名字是Eric Miller, 他的電子郵件地址是[email][email protected][/email],他的頭銜是Dr.”可以表示爲圖1 ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#figure1[/url])所示的圖:

fig1dec16.png
圖1:一個描述Eric Miller的RDF圖

圖1 ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#figure1[/url])展示了RDF用URIs來標識:

RDF提供了一種基於XML的語法(稱爲RDF/XML)用於保存和交換RDF圖。圖1 ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#figure1[/url])所示的RDF用RDF/XML來書寫的話就像下面的例1 ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#example1[/url])這樣:

例1:一段描述Eric Miller的RDF/XML

 <?xml version="1.0"?>
<rdf:RDF xmlns:rdf="[url]http://www.w3.org/1999/02/22-rdf-syntax-ns#[/url]"
xmlns:contact="[url]http://www.w3.org/2000/10/swap/pim/contact#[/url]">
<contact:Person rdf:about="[url]http://www.w3.org/People/EM/contact#me[/url]">
<contact:fullName>Eric Miller</contact:fullName>
<contact:mailbox rdf:resource="mailto:[email protected]"/>
<contact:personalTitle>Dr.</contact:personalTitle>
</contact:Person>
</rdf:RDF>

注意:上述RDF/XML也包含URIs,同樣地還包含簡略形式的屬性(比如mailbox和fullName)及各個屬性的值([email][email protected][/email]和Eric Miller)。

和HTML一樣,RDF/XML也是機器可處理的,也使用URIs,RDF也可以鏈接Web上任何地方的信息。然而與傳統超文本不同的是,RDF URIs可以引用任何可標識的事物,包括那些不是直接可從Web上獲取的事物(比如Eric Miller這個人)。結果是,RDF除了能夠描述像網頁這類事物以外,還可以描述汽車,商業活動,人類,新聞事件等等。此外,RDF中的屬性本身有URIs,用以準確標識被鏈接的事物之間的關係。

下列文檔都屬於RDF規範的一部分:

  • RDF概念和抽象語法 ([url]http://www.w3.org/TR/rdf-concepts/[/url]) [RDF-CONCEPTS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-concepts[/url])]
  • RDF/XML語法規範 ([url]http://www.w3.org/TR/rdf-syntax-grammar/[/url]) [RDF-SYNTAX ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-syntax[/url])]
  • RDF詞彙描述語言1.0: RDF Schema ([url]http://www.w3.org/TR/rdf-schema/[/url]) [RDF-VOCABULARY ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-vocabulary[/url])]
  • RDF語義 ([url]http://www.w3.org/TR/rdf-mt/[/url]) [RDF-SEMANTICS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-semantics[/url])]
  • RDF測試用例 ([url]http://www.w3.org/TR/rdf-testcases/[/url]) [RDF-TESTS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-tests[/url])]
  • RDF入門 ([url]http://www.w3.org/TR/rdf-primer/[/url])(本文檔)
本文檔旨在提供一個關於RDF的介紹,並描述一些已有的RDF應用,以幫助信息系統設計者及應用程序開發者理解RDF的特性和如何使用這些特性。特別地,本文檔旨對下列這類問題做出回答:

  • RDF看起來是怎樣的?
  • RDF可以表達什麼信息?
  • RDF信息是如何被創建、訪問和處理的?
  • 現有信息如何能夠與RDF結合?

本文檔是一個非規範性(non-normative)文檔,也就是說它並不是關於RDF的權威性的規範。本文檔中的例子和其他解釋性的資料用於幫助讀者理解RDF,但是它們有可能並不是權威性的和充分完善的。在這些情況下,請參考RDF規範中相關的規範性文檔。爲此,本文檔描述了RDF規範中的其他文檔所擔任的角色,並在適當的地方提供了指向規範性文檔中相關部分的鏈接。

需要注意的是,上述RDF文檔更新並更清晰地解釋了先前發佈的一些RDF規範,資源描述框架(RDF)的模型和語法規範 ([url]http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/[/url]) [RDF-MS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdfms[/url])]和資源描述框架模式(RDF Schema)規範1.0 ([url]http://www.w3.org/TR/2000/CR-rdf-schema-20000327/[/url])[RDF-S ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-s[/url])]。所以,一些術語、語法和概念已經稍有變化。本文檔反映的是在上面的列表中給出的新版本RDF規範。因此,對於熟悉舊規範或基於舊規範的教程、入門讀物的讀者,應留意當前版本的規範與先前版本的一些差異。關於先前版本的RDF中出現的一些問題以及它們在當前版本中的解決方案的列表,請參見[[url]http://www.w3.org/2000/03/rdf-tracking/[/url] RDF問題跟蹤(Issue Tracking)。

2. 關於資源的陳述

RDF是用以提供一種發表關於Web資源(如網頁)的陳述的簡單方法的。這部分描述了RDF提供這些能力(描述這些概念的規範標準就是RDF概念和抽象語法 ([url]http://www.w3.org/TR/rdf-concepts/[/url])[RDF-CONCEPTS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-concepts[/url])])背後的基本思想。


2.1 基本概念

試想一下這樣的情形:有一個叫John Smith的人創建了某個網頁。如果用自然語言(比如英語)來陳述該事實,一種簡潔明瞭的方式是採用下面這種簡單陳述的形式:

 [url]http://www.example.org/index.html[/url] has a creator whose value is John Smith

強調該陳述的各個部分是爲了強調:爲了描述某事物的特性,需要某些方法來命名或標識多種事物:

  • 陳述所描述的事物(譬如此例中John Smith所創建的網頁)
  • 陳述所描述事物的具體屬性(property)(譬如本例中的creator)
  • 陳述所描述的作爲該屬性(陳述所描述事物對應的)的值的事物(如這個網頁的creator是誰)。
在上面的陳述中,網頁用它的URL(Uniform Resource Locator,統一資源定位符)來標識。另外,單詞“creator”被用來標識事物的屬性(property),短語“John Smith”被用來標識作爲屬性(property)的值的事物(一個人)。

該網頁的其他屬性(property)可以通過書寫其他具有相同形式的英文陳述來描述:用URL標識該網頁,用單詞(或其他表達式)來標識網頁的屬性(properties)及其值。例如:這個網頁的創建日期和所用的語種可以由下列陳述來描述:
 [url]http://www.example.org/index.html[/url] has a creation-date whose value is August 16, 1999
[url]http://www.example.org/index.html[/url] has a language whose value is English
RDF是基於這一思想的:被描述的事物具有一些屬性 ([url]http://www.w3.org/TR/rdf-concepts/#dfn-property[/url]) (properties),而這些屬性各有其值(values);對資源的描述可以通過對它作出指定了上述屬性及值的陳述(statement)來進行(就像上面例子中的那樣)。RDF用一套特定的術語來表達陳述中的各個部分。確切地說,關於事物(譬如上例中的網頁)的陳述中用於識別事物的那部分就叫做主體 ([url]http://www.w3.org/TR/rdf-concepts/#dfn-subject[/url]),而用於區分陳述對象主語的各個不同屬性(譬如:作者,創建日期,語種等等)的那部分就叫做謂詞 ([url]http://www.w3.org/TR/rdf-concepts/#dfn-predicate[/url]),陳述中用於區分各個屬性的值的那部分叫做客體 ([url]http://www.w3.org/TR/rdf-concepts/#dfn-object[/url])。因此,考慮英文陳述:

 [url]http://www.example.org/index.html[/url] has a creator whose value is John Smith

這個陳述裏的不同部分用RDF術語來說就是:

正如英語是作爲(用英語溝通的)人們之間很好溝通工具一樣,RDF是用來做出機器可處理的聲明的工具。那麼,如果想做出這種適合機器處理的聲明,還需要兩件事:

  • 一個可用來區分標識一個陳述中的主體,謂詞,客體的機器可處理的標識符系統,同時這個標識符系統不會和其他人可能在Web上使用的相似的標識符系統混淆;
  • 一種用以表示這些陳述並讓這些陳述可在機器間交流的機器可處理的語言;
幸運地是,現有的Web體系結構提供了這兩個必需的工具。

正如前面所描述的,Web已經提供了一種形式的標識符-URL(Uniform Resource Locator,同一資源定位符)。在第一個例子中,就採用了一個URL來標識John Smith所創建的網頁。URL是標識(identify)Web資源(Web resource)的字符串,這是通過標識資源的首選訪問機制來實現的(本質上,即資源的網絡“位置”)。然而,對於許多不具有網絡地址或URL的資源(這一點與網頁是不同的),能夠記錄關於它們的信息也是同等重要。

Web提供了一套更通用的標識符形式,稱爲統一資源標識符 ([url]http://www.isi.edu/in-notes/rfc2396.txt[/url])(Uniform Resource Identifier,URI)。URL是URI的一種具體形式。所有URI都具有共同的特徵:即不同的人或組織可以彼此獨立地創建並使用URI來標識事物。但是,URI並不侷限於標識具有網絡地址或其他計算機訪問機制的資源。實際上,我們可以創建URI來引用陳述中需要被標識的任何資源,包括:

  • 網絡可訪問資源,譬如,一份電子文檔、一個圖片、一個服務(例如,“洛山磯的今日天氣預報”)或是一組其他的資源;
  • 非網絡可訪問資源,譬如,人、公司、在圖書館裝訂成冊的書籍;
  • 不物理存在的抽象概念,如“作者(creator)”這個概念;
由於上述通用性,RDF用URIs作爲其標識機制(用於標識陳述中的主體、謂詞和客體)的基礎。更準確地說,RDF使用的是URI引用(URI references) ([url]http://www.w3.org/TR/rdf-concepts/#dfn-URI-reference[/url]) [URIS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-uri[/url])]。一個URI引用(或“URIref”)是一個在尾部附加了可選的“片段識別符(fragment identifier)”的URI。比如,URI引用(URIref) [url]http://www.example.org/index.html#[/url] 由URI [url]http://www.example.org/index.html[/url] 和(由符號#分隔的)的section2 (片段標識符)組成。RDF URIrefs可以包含Unicode[UNICODE ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-unicode[/url])]字符(參見[RDF-CONCEPTS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-concepts[/url])]),這就允許在URIrefs中使用多種語言。RDF將“資源(resource)”定義任何可被爲URI引用(URIref)標識的事物。因此,使用URIrefs,RDF實際上可以描述任何事物,並陳述這些事物之間的關係。URIrefs和片段標識符將在Appendix A ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#identifiers[/url])[RDF-CONCEPTS ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-concepts[/url])]中作進一步的闡述。

爲了用一種機器可處理的(machine-processable)方式來表示RDF陳述(RDF statements),RDF採用了可擴展標記語言(Extensible Markup Language) ([url]http://www.w3.org/TR/2000/REC-xml-20001006[/url])[XML ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-xml[/url])]。XML被設計成允許任何人來設計他們自己的文檔格式,並可用這種格式書寫文檔。RDF定義了一個特殊的XML標記語言(稱爲RDF/XML)來表示RDF信息和在機器間交換這些信息。在第一節 ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#intro[/url])中有一個關於RDF/XML的例子。這個例子(例 1 ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#example1[/url]) )使用了一些諸如<contact:fullName>和<contact:personalTitle>這樣的標籤來相應地區分Eric Miller和Dr這些文本內容。這些標籤能讓那些理解這些標籤含義的程序正確地解釋文本內容。XML的內容和標籤(除了一些特例)能夠包含統一字符編碼[UNICODE ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-unicode[/url])] 的字符,這就允許了來自各種語言的信息可以被直接顯示出來。附錄 B ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#documents[/url])大體上給出了關於XML進一步的背景知識。關於RDF的RDF/XML專用語法在第三節 ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#rdfxml[/url])中有更詳細的描述,且定義在規範[RDF-SYNTAX ([url]http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#ref-rdf-syntax[/url])]中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章