●金 燕,江閃閃(鄭州大學 信息管理系,鄭州 450001)
關聯數據這一概念是由“互聯網之父”Tim Berners-Lee在2006年首次提出的。在分析web發展和演化過程的基礎上,Tim Berners-Lee提出了當前web環境下急需發展數據web的思想,數據web的核心和關鍵就是關聯數據。下表展現了數據web與傳統web的不同。

表 傳統Web與數據Web的比較
關于關聯數據的概念,維基百科給出的定義是:關聯數據是語義網的主題之一,描述了通過可鏈接的URI方式來發布、分享、連接Web中各類資源的方法。[1]
關聯數據通過web將一切web上沒有關聯的相關數據連接起來,并且可以直接訪問數據,是一種簡單的語義網實現技術,已經成為推動語義網發展的重要力量之一,在提出之后得到了社會的廣泛關注和認可。其意義體現在:① 采用訪問web信息資源的URI和RDF統一標準,將現實世界全面映射到網絡世界,為不同數據資源的整合和集成提供了穩定可靠的機制,揭示了web資源整合的本質。② 一種Web上的富鏈接機制將超文本鏈接轉變為超數據鏈接,為web提供開放數據的存取和鏈接機制。③ 通過數據萬維網的超鏈接和語義標注可以發現更多與之相關的數據。
關聯數據的四原則是Tim Berners-Lee在《關聯數據的設計問題》中針對關聯數據的構建和實現提出的,這四個原則是:[2]
(1)使用URI作為任何對象的標識名稱,即用戶可以將web上的任何資源用URI進行標識;
(2)使用HTTPURI使人們可以找到對象的標識名稱,即用戶在萬維網上可以通過HTTP協議連接URI從而找到標識的對象;
(3)訪問HTTPURI中的某個標識名稱時,可以根據訪問標識的URI發現有意義的信息(采用RDF,SPARQL標準),即用戶可以通過訪問HTTPURI找到有價值的信息,提高信息的利用率;
(4)提供相關的URI鏈接,以便查詢者可以發現更多的對象,即用戶通過互聯可以發現更多的信息。
這四個基本原則中,最重要的是利用RDF數據模型建立結構化數據并發布到網絡上,再鏈接到不同數據庫以便建立關聯。RDF對資源的表達是通過一系列的三元組來實現。每個三元組由主語、謂語和對象三個部分組成,主語是URI所標識的資源,對象可以是一個字符串,如字母、日期格式的字符值、數字等,也可以是一個一定程度上與主語有關的其他資源的URI,即RDF鏈接(RDFLink);謂語表明了主語和對象之間的關系,也可以是URI,比如來自某一詞表或URI集合。[3]關聯數據的三元組都應該盡可能以URI來表達,以RDF來編碼。由此可以通過RDF數據模型把web上存在的大量非結構化數據和采用不同標準的結構化數據轉換成遵循統一標準的結構化數據。
關聯數據的基本概念和四個基本原則揭示了關聯數據的核心理念,可以簡單高效地實現關聯數據的發布。
(1)沒有數據類型的限制,在web上發布關聯數據只需將發布數據轉化為統一結構化的RDF三元組,包括統一命名,統一內容描述機制即可。
(2)利用RDF鏈接同一數據資源內的各數據項和不同數據資源,建立內容關聯機制,包括關聯解析、檢索和調用機制,發現更多數據對象。
(3)依據關聯數據四原則發布關聯數據,可以構建一個發布數據的標準,網絡中的任何對象通過這個數據標準構建,然后將數據關聯起來,通過URI發布在萬維網上,既可通過傳統的信息發現方式發現相關關聯數據,也可根據關聯數據中的URI來發現新的關聯數據。這可以減少互聯網上的冗余數據,使數據得到最大化的使用,從而使互聯網信息服務的效率更高。
依據四原則發布關聯數據,最主要的是將信息資源用資源描述框架RDF表示出來。RDF一方面提供了一個極其簡單的數據模型,另一方面數據量的大小、數據的更新頻率和存儲方式很適合Web的結構。[4]
3.1.1 用URI對web上所要發布的數據進行標識
(1)用RDF 描述待發布的數據,并將各個實體對象間的關系用RDF 圖的形式表示出來。描述要發布的數據時先要統一詞匯。這些詞匯通常可以從Web 中一些公認的詞匯集中選擇,如朋友的朋友(FOAF),都柏林核心詞匯集(DC); RDFs 核心詞匯集(RDFSchema);簡單知識組織系統(SKOS);在線語義關聯社區(SIOC);項目描述(DOAP);描述藝術家、影集和軌跡的詞匯的音樂本體;表示復審的詞匯表;描述授權條款的詞匯創作共用(CC)[5] 等。根據RDF 圖建立RDF 數據模型時,RDF 圖要反映出三元組之間的聯系
(2)將RDF 圖轉換成數據頁這個環節可以借助D2RQ 平臺技術實現,該平臺由映射語言、D2R 引擎和D2R 服務器組成。[6]先通過D2RQ 映射語言,支持關系型數據庫到RDF 數據轉換規則的編寫,通過該語言,用戶可以定義如何將關系型數據庫中的表、列、行、列值、外鍵值映射成RDF 數據中的類、屬性、資源、文本、RDF 鏈接。然后通過D2R 引擎將用戶輸入的SPARQL 轉換成SQL,提交給關系型數據庫管理系統,并將SQL 查詢結果封裝成RDF 三元組最后,D2R 服務器在D2R 引擎之上提供Web 界面,使瀏覽器端的用戶可以查看數據頁。在轉換數據項時,要考慮訪問數據的時間、數據更新的難易和用戶的需求等。一般來說,RDF 文件過大會影響到用戶打開時的數據緩存速度。當要發布的文件較大或者描述的是多個數據時,應當將其拆分成幾個RDF 文件,以塊的形式發布。既可以將整個RDF 圖作為一個數據頁發布,也可以將每個實體描述項作為一個數據頁,還可以把若干實體的描述項作為一個數據頁。
(3)用URI 進行標識,為每個數據頁指定URI。數據頁映射后的RDF 是用XML 表達的三元組。RDF模型中數據是以URI 引用來命名的,上傳到web 后,可以為每個數據項指定URI。URI 是web 上訪問數據的標識,任何事物都可以有一個唯一的URI 引用。一方面,選取的URI 必須有著規范的名字,其他發布者就可以很信任的在自己的數據庫中鏈接相關資源,另一方面,必須把技術基礎設施做到位。選擇URI 時需要盡可能的使用HTTP URI 來標識對象,可以受限于技術環境。通常使用三個URI 即一個資源標識符、一個適合HTML 瀏覽器的信息資源標識符(用一個網頁表示)、一個適合RDF 瀏覽器的信息資源標識符(用RDF 或XML 來表示) 來標記非結構化信息資源。
3.1.2 為每個數據頁指定URI 后需要將數據頁在web 上表示出來,這個環節需使用HTTP 機制,其中,對于HTML 瀏覽器來說通常是將RDF 表示的形式作為RDF原代碼,或者是將其作為RDF 文件下載下來而不直接顯示出來。另外,上傳的數據頁除了要有RDF 表示形式外,還應有一個合適的HTML 表示形式,有助于理解URI 所指的是什么。
3.1.3 根據HTTPURI中的某個標識名稱發現可以鏈接的數據
RDF 數據模型的主體是RDF 三元組。通過訪問HTTP URI,可以發現三元組中主語、謂語和對象的標識名稱。無論要描述的對象是結構化數據還是非結構化數據,都可以在RDF 描述的URI 中添加元數據。如為了讓用戶合法地使用數據,每一個RDF 文件都應包含一個許可其內容可以使用的證書,可以添加諸如dc: date、dc: publisher、dc: license、foaf: topic 等元數據描述數據項。這樣,就可以根據HTTP URI 中的某個標識名稱發現新的數據。
3.1.4 提供相關的URI鏈接,以便用戶發現更多的數據對象
提供相關的URI 鏈接是通過添加RDF 鏈接實現的。數據web 和傳統web 有一點不同就是傳統的web鏈接對象是html 文檔,數據web 所關聯的是數據。RDF 鏈接能使不同數據發生關聯,隨RDF 鏈接瀏覽整個數據web。在關聯數據客戶端RDF 的瀏覽器界面中,用戶可以通過RDF 鏈接,使查詢的數據項鏈接到其他RDF 鏈接。例如,所要查找的是個人信息數據,通過一個查詢界面可以鏈接到web 上所有有關個人信息的數據,從而可以發現更多潛在的數據對象。
3.2.1 Facebook簡介
Facebook 是美國的一個大學生社交網站,由哈佛大學的Mark Zuckerberg 等學生創建,是當下互聯網上最大和增長速度最快的社交網絡平臺。目前,Facebook在所有以服務于大學生為主要業務的網站中,擁有最多的用戶,也是美國排名第一的照片分享站點,其產生的數據量非常巨大。Facebook 在2011 年10 月12 日提出了支持RDF 和關聯數據的URIs ,并且將關聯數據的API 引入自己的數據庫[7]
3.2.2 基于四原則的Facebook關聯數據發布
圖1 是Facebook 的關聯數據架構。在這個架構中可以發現關聯數據的核心作用,它處于內部數據庫處理機制和外部應用平臺之間,當結構化數據經Facebook數據庫抽取并轉化成RDF 文件之后,先存儲于Memcache 存儲器中,Facebook 訪問者訪問Facebook 應用平臺時,可以看到提供一個關聯數據界面的SPARQL端點,通過此端點查詢Facebook 的數據,而在Facebook Web 中關聯數據是通過html 瀏覽器呈現出來的,這個架構明確了Facebook 發布關聯數據的過程,是基于關聯數據四原則的。

圖1 Facebook的關聯數據架構
在此針對Facebook的Friends用戶界面詳細介紹關聯數據的發布方法。
(1)從“Friends”這一應用內容中的“FriendsList”頁面選取第一部分數據進行發布。“FriendsList”中主要自定義了“姓名”、“網址”、“狀態”等字段,對這些字段用URI 進行標識,可以從FOAF中選擇術語先進行RDF 描述。圖2 是“Friends List”的RDF 表示圖。然后將其轉換為數據頁,轉換時要定義“Friends List”的內容模型與FOAF 本體之間的RDF 映射,由于命名空間的前綴默認為“site”,由此,RDF 數據中術語的命名空間為site:http://siteurl/ns#,可以自動獲得一個http URI,一般地址默認為http://siteurl/node/nodeno/rdf。在用戶瀏覽器端就可以看到在“Friends List”里有name,networks,status 三個節點,表示出來就是:http://facebook.com/hadoop/name/rdf; http://facebook.com/hadoop/networks/rdf; http://facebook.com/hadoop/status/rdf。

圖2 “Friends List”的 RDF表示圖
(2)通過HTTP 協議連接“Friends”中字段的URI。用http 協議將“Friends List”的數據頁用HTML形式表現出來,HTML 形式的地址默認為:http://siteurl/Friends #。當一個節點創建后,系統會自動賦予一個http URI。一般默認為:http://siteurl/node/nodeno(siteurl) 為站點的URL 地址, 指向Facebook 中“Friends List”的html 文檔。由于Facebook 的核心數據集在Hadoop 里,由此“Friends List”站點的內容中的四個節點則生成一系列的URL 地址:http://facebook.com/hadoop/name facebook.com;http://facebook.com/hadoop/networks facebook.com; http://facebook.com/hadoop/statusfacebook.com。
(3)根據HTTP URI 中的其他字段發現可以鏈接的數據。Facebook 系統自動生成了每個用戶的html 文檔及其URI 和RDF 數據及其http URI,所有用戶的RDF 數據都存儲在后臺的RDF 倉儲之中,例如可以通過Name: Llia Alshanetsky 在本人的應用中發現Notes、Events、Photos、video、Group 等鏈接的信息,可以添加dc: Topic 來描述這些數據,從而發現更多關于Llia Alshanetsky 的數據
(4)提供與“Friends List”字段相關的URI 鏈接。在Facebook 中通過API 平臺提供“Friends List”字段相關的URI 鏈接。在API 平臺中有很多應用,將里面的信息抽取并轉化封裝成RDF 文件之后存儲于存儲器中,在Facebook 中通過API 平臺上的應用提供查詢“Friends List”字段的端點。同時,在查詢端點的前面要建立一個關聯數據界面,用戶通過此界面就可以進行多種途徑的檢索,獲得“Friends List”字段關聯數據, 從而找到用戶所需要的數據, 另外,Facebook 站點還建立了自己的SPAQL Endpoint 接口可向遠程站點(REMOTE DRUPAL SITE) 其他的網絡社區API 提供關聯數據服務,從而在整個數據web上可以查到“Friends List”字段中的關聯數據,可以獲得潛在的“Friends List”信息。
(1)事先定義好站點內容模型與RDF數據模型的映射,在Facebookweb上發布只要將F acebook中用戶的數據轉化為統一命名,統一內容描述機制的RDF三元組即可。
(2)Facebook中的數據轉化為RDF數據后可以保存在專用的RDF數據庫中,與原有系統的關系數據庫之間在物理上彼此獨立,在邏輯上相互映射。
(3)利用產生的RDF去鏈接Facebook中同一用戶數據內各種數據項和鏈接相關聯不同用戶的數據,建立用戶數據的關聯機制(關聯解析機制、檢索機制、調用機制),為用戶數據保存提供方便。且對Facebook的數據量大小和更新頻率的影響不大。
[1]kevenlw.數據的萬維網[EB/OL].(2009-10-02).[2012-02-15]. http://www.kevenlw.name/archives/1185.
[2]Tim Berners-Lee.Linked Data [EB/OL].(2009-06-18). [2012-02-15].http://www.w3.org/DesignIssues/LinkedData.html.
[3]白海燕.關聯數據及DBpedia實例分析[J].現代圖書情報技術,2010(3):33-38.
[4]Chris Bizer,etal.Howto Publishlinke ddataontheweb[EB/OL].(2010-02-22).[2012-02-15]http://www4.wiwiss.fu-berlin.de/bizer/pub/Linked Data Tutria l/.
[5]婁秀明.用關聯數據技術實現網絡知識組織系統的研究[D].上海:華東師范大學,2010.
[6]Tom Heath,Christian Bizer.Linked Data:Evolvingthe Webintoa Global Data Space[EB/OL].[2012-02-02].http://linkeddatabook.com/editions/1.0/.
[7]維基.Facebook研究[J].中國數字電視,2007(11):72-75.