資源描述框架RDF

阮一峰發表於2008-02-25

圖書館裡,每一本書都要被編目,這樣才能方便查詢和利用。於是,很早就有人想到,網上所有的資源也需要"編目"。

如果要對網路資源編目,首先就必須有一套"編目規則"。資源描述框架(Resource Description Framework ,簡稱RDF),就是一套W3C提出的描述網路資源的方法。

RDF的基本思想很簡單,就是說任何網路資源都可以唯一地用URI(統一資源識別符號,Uniform Resource Identifier)來表示。在這裡,可以簡化地將URI理解成網址URL。

比如,世界第一大網站Yahoo!首頁的網址是http://www.yahoo.com/,那麼它的首頁就可以用這個網址來唯一代表。

有了這個識別符以後,網路資源的其他特性都用"屬性(Property)"="屬性值(Property value)"這樣的形式來表示。

bg2008022501.png

請看上圖,最頂部的方框表示網路資源http://www.yahoo.com/,下面的兩個方框表示兩個屬性關係,一個是"資源作者=Yahoo!公司",另一個是"資源名稱=Yahoo!首頁"。

根據RDF的定義,資源本身是主語subject,屬性名稱是謂語predicate,屬性指是賓語object。對網路資源的描述就採用主-謂-賓的形式。

RDF本身用xml檔案的形式表示,比如上圖寫成xml檔案就是:

<?xml version="1.0"?>

<RDF>
<Description about="http://www.yahoo.com/">
<資源作者>Yahoo!公司</資源作者>
<資源名稱>Yahoo!首頁</資源名稱>
</Description>
</RDF>

這個xml檔案不是很規範,主要是為了說明問題。

RDF強大的地方在於,它只規定了主-謂-賓這種描述形式,至於謂語和賓語到底是什麼,完全可以根據不同需要自由選用。因此,RDF才能定義為"資源描述框架",而不是"資源描述方法"。

用於RDF的最常見謂語和賓語,是都柏林核心(Dublin Core),簡稱DC。它是一套用於描述資訊的後設資料,一共有15個標籤,也就是15個謂語和賓語的組合,其中常見的標籤包括Title,Creator,Subject等等。

採用了都柏林核心以後,基本上所有的網路資源都可以用RDF描述出來,因此初步實現了對網路資源進行編目的目的,為下一步機器化處理和最終語義網的實現打下了基礎。

以下我舉一個例項。

2年前的今天,2006年2月25日,我寫了一篇網誌《學科和採礦》,用RDF對這篇網誌進行編目,就是下面的結果:

<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
rdf:about="http://www.ruanyifeng.com/blog/2006/02/post_179.html"
trackback:ping="http://www.ruanyifeng.com/cgi-bin/mtype/mt-tb.cgi/251"
dc:title="學科和採礦"
dc:identifier="http://www.ruanyifeng.com/blog/2006/02/post_179.html"
dc:subject="History"
dc:description="今天突然想到一個比喻:選擇不同的學科就好像採礦一樣。 有的礦是新發現的礦物品種,埋藏淺,品味高,容易開採。選擇這樣的礦,很容易出成果。某些新興學科大概就是這樣的礦,電腦科學可以算一個例子。..."
dc:creator="ruanyf"
dc:date="2006-02-25T20:52:32+08:00" />

</rdf:RDF>

這是一個規範的xml檔案,可以實際使用。請注意標成黑體的那幾行。首行"rdf:Description",這是RDF規定使用的標籤,表示主語subject,後來的"rdf:about"屬性用來表示資源的識別符號,也就是url,它唯一地確定了一個網路資源。其他屬性中的dc:title、dc:identifier、dc:subject、dc:description、dc:creator和dc:date,分別表示題目、識別符號、主題、簡介、創造者、日期,這幾項都屬於都柏林核心,等號後面是相應的值。至於trackback:ping屬性,這一項在都柏林核心中沒有規定,但是也可以加上去,從中可以看到RDF資源描述框架的靈活和強大。

[延伸閱讀]

1. RDF Tutorial
2. W3C: RDF Primer

(完)

相關文章