●金 燕,江閃閃(鄭州大學 信息管理系,鄭州 450001)
關聯(lián)數(shù)據(jù)這一概念是由“互聯(lián)網(wǎng)之父”Tim Berners-Lee在2006年首次提出的。在分析web發(fā)展和演化過程的基礎上,Tim Berners-Lee提出了當前web環(huán)境下急需發(fā)展數(shù)據(jù)web的思想,數(shù)據(jù)web的核心和關鍵就是關聯(lián)數(shù)據(jù)。下表展現(xiàn)了數(shù)據(jù)web與傳統(tǒng)web的不同。
表 傳統(tǒng)Web與數(shù)據(jù)Web的比較
關于關聯(lián)數(shù)據(jù)的概念,維基百科給出的定義是:關聯(lián)數(shù)據(jù)是語義網(wǎng)的主題之一,描述了通過可鏈接的URI方式來發(fā)布、分享、連接Web中各類資源的方法。[1]
關聯(lián)數(shù)據(jù)通過web將一切web上沒有關聯(lián)的相關數(shù)據(jù)連接起來,并且可以直接訪問數(shù)據(jù),是一種簡單的語義網(wǎng)實現(xiàn)技術,已經(jīng)成為推動語義網(wǎng)發(fā)展的重要力量之一,在提出之后得到了社會的廣泛關注和認可。其意義體現(xiàn)在:① 采用訪問web信息資源的URI和RDF統(tǒng)一標準,將現(xiàn)實世界全面映射到網(wǎng)絡世界,為不同數(shù)據(jù)資源的整合和集成提供了穩(wěn)定可靠的機制,揭示了web資源整合的本質(zhì)。② 一種Web上的富鏈接機制將超文本鏈接轉(zhuǎn)變?yōu)槌瑪?shù)據(jù)鏈接,為web提供開放數(shù)據(jù)的存取和鏈接機制。③ 通過數(shù)據(jù)萬維網(wǎng)的超鏈接和語義標注可以發(fā)現(xiàn)更多與之相關的數(shù)據(jù)。
關聯(lián)數(shù)據(jù)的四原則是Tim Berners-Lee在《關聯(lián)數(shù)據(jù)的設計問題》中針對關聯(lián)數(shù)據(jù)的構建和實現(xiàn)提出的,這四個原則是:[2]
(1)使用URI作為任何對象的標識名稱,即用戶可以將web上的任何資源用URI進行標識;
(2)使用HTTPURI使人們可以找到對象的標識名稱,即用戶在萬維網(wǎng)上可以通過HTTP協(xié)議連接URI從而找到標識的對象;
(3)訪問HTTPURI中的某個標識名稱時,可以根據(jù)訪問標識的URI發(fā)現(xiàn)有意義的信息(采用RDF,SPARQL標準),即用戶可以通過訪問HTTPURI找到有價值的信息,提高信息的利用率;
(4)提供相關的URI鏈接,以便查詢者可以發(fā)現(xiàn)更多的對象,即用戶通過互聯(lián)可以發(fā)現(xiàn)更多的信息。
這四個基本原則中,最重要的是利用RDF數(shù)據(jù)模型建立結(jié)構化數(shù)據(jù)并發(fā)布到網(wǎng)絡上,再鏈接到不同數(shù)據(jù)庫以便建立關聯(lián)。RDF對資源的表達是通過一系列的三元組來實現(xiàn)。每個三元組由主語、謂語和對象三個部分組成,主語是URI所標識的資源,對象可以是一個字符串,如字母、日期格式的字符值、數(shù)字等,也可以是一個一定程度上與主語有關的其他資源的URI,即RDF鏈接(RDFLink);謂語表明了主語和對象之間的關系,也可以是URI,比如來自某一詞表或URI集合。[3]關聯(lián)數(shù)據(jù)的三元組都應該盡可能以URI來表達,以RDF來編碼。由此可以通過RDF數(shù)據(jù)模型把web上存在的大量非結(jié)構化數(shù)據(jù)和采用不同標準的結(jié)構化數(shù)據(jù)轉(zhuǎn)換成遵循統(tǒng)一標準的結(jié)構化數(shù)據(jù)。
關聯(lián)數(shù)據(jù)的基本概念和四個基本原則揭示了關聯(lián)數(shù)據(jù)的核心理念,可以簡單高效地實現(xiàn)關聯(lián)數(shù)據(jù)的發(fā)布。
(1)沒有數(shù)據(jù)類型的限制,在web上發(fā)布關聯(lián)數(shù)據(jù)只需將發(fā)布數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一結(jié)構化的RDF三元組,包括統(tǒng)一命名,統(tǒng)一內(nèi)容描述機制即可。
(2)利用RDF鏈接同一數(shù)據(jù)資源內(nèi)的各數(shù)據(jù)項和不同數(shù)據(jù)資源,建立內(nèi)容關聯(lián)機制,包括關聯(lián)解析、檢索和調(diào)用機制,發(fā)現(xiàn)更多數(shù)據(jù)對象。
(3)依據(jù)關聯(lián)數(shù)據(jù)四原則發(fā)布關聯(lián)數(shù)據(jù),可以構建一個發(fā)布數(shù)據(jù)的標準,網(wǎng)絡中的任何對象通過這個數(shù)據(jù)標準構建,然后將數(shù)據(jù)關聯(lián)起來,通過URI發(fā)布在萬維網(wǎng)上,既可通過傳統(tǒng)的信息發(fā)現(xiàn)方式發(fā)現(xiàn)相關關聯(lián)數(shù)據(jù),也可根據(jù)關聯(lián)數(shù)據(jù)中的URI來發(fā)現(xiàn)新的關聯(lián)數(shù)據(jù)。這可以減少互聯(lián)網(wǎng)上的冗余數(shù)據(jù),使數(shù)據(jù)得到最大化的使用,從而使互聯(lián)網(wǎng)信息服務的效率更高。
依據(jù)四原則發(fā)布關聯(lián)數(shù)據(jù),最主要的是將信息資源用資源描述框架RDF表示出來。RDF一方面提供了一個極其簡單的數(shù)據(jù)模型,另一方面數(shù)據(jù)量的大小、數(shù)據(jù)的更新頻率和存儲方式很適合Web的結(jié)構。[4]
3.1.1 用URI對web上所要發(fā)布的數(shù)據(jù)進行標識
(1)用RDF 描述待發(fā)布的數(shù)據(jù),并將各個實體對象間的關系用RDF 圖的形式表示出來。描述要發(fā)布的數(shù)據(jù)時先要統(tǒng)一詞匯。這些詞匯通??梢詮腤eb 中一些公認的詞匯集中選擇,如朋友的朋友(FOAF),都柏林核心詞匯集(DC); RDFs 核心詞匯集(RDFSchema);簡單知識組織系統(tǒng)(SKOS);在線語義關聯(lián)社區(qū)(SIOC);項目描述(DOAP);描述藝術家、影集和軌跡的詞匯的音樂本體;表示復審的詞匯表;描述授權條款的詞匯創(chuàng)作共用(CC)[5] 等。根據(jù)RDF 圖建立RDF 數(shù)據(jù)模型時,RDF 圖要反映出三元組之間的聯(lián)系
(2)將RDF 圖轉(zhuǎn)換成數(shù)據(jù)頁這個環(huán)節(jié)可以借助D2RQ 平臺技術實現(xiàn),該平臺由映射語言、D2R 引擎和D2R 服務器組成。[6]先通過D2RQ 映射語言,支持關系型數(shù)據(jù)庫到RDF 數(shù)據(jù)轉(zhuǎn)換規(guī)則的編寫,通過該語言,用戶可以定義如何將關系型數(shù)據(jù)庫中的表、列、行、列值、外鍵值映射成RDF 數(shù)據(jù)中的類、屬性、資源、文本、RDF 鏈接。然后通過D2R 引擎將用戶輸入的SPARQL 轉(zhuǎn)換成SQL,提交給關系型數(shù)據(jù)庫管理系統(tǒng),并將SQL 查詢結(jié)果封裝成RDF 三元組最后,D2R 服務器在D2R 引擎之上提供Web 界面,使瀏覽器端的用戶可以查看數(shù)據(jù)頁。在轉(zhuǎn)換數(shù)據(jù)項時,要考慮訪問數(shù)據(jù)的時間、數(shù)據(jù)更新的難易和用戶的需求等。一般來說,RDF 文件過大會影響到用戶打開時的數(shù)據(jù)緩存速度。當要發(fā)布的文件較大或者描述的是多個數(shù)據(jù)時,應當將其拆分成幾個RDF 文件,以塊的形式發(fā)布。既可以將整個RDF 圖作為一個數(shù)據(jù)頁發(fā)布,也可以將每個實體描述項作為一個數(shù)據(jù)頁,還可以把若干實體的描述項作為一個數(shù)據(jù)頁。
(3)用URI 進行標識,為每個數(shù)據(jù)頁指定URI。數(shù)據(jù)頁映射后的RDF 是用XML 表達的三元組。RDF模型中數(shù)據(jù)是以URI 引用來命名的,上傳到web 后,可以為每個數(shù)據(jù)項指定URI。URI 是web 上訪問數(shù)據(jù)的標識,任何事物都可以有一個唯一的URI 引用。一方面,選取的URI 必須有著規(guī)范的名字,其他發(fā)布者就可以很信任的在自己的數(shù)據(jù)庫中鏈接相關資源,另一方面,必須把技術基礎設施做到位。選擇URI 時需要盡可能的使用HTTP URI 來標識對象,可以受限于技術環(huán)境。通常使用三個URI 即一個資源標識符、一個適合HTML 瀏覽器的信息資源標識符(用一個網(wǎng)頁表示)、一個適合RDF 瀏覽器的信息資源標識符(用RDF 或XML 來表示) 來標記非結(jié)構化信息資源。
3.1.2 為每個數(shù)據(jù)頁指定URI 后需要將數(shù)據(jù)頁在web 上表示出來,這個環(huán)節(jié)需使用HTTP 機制,其中,對于HTML 瀏覽器來說通常是將RDF 表示的形式作為RDF原代碼,或者是將其作為RDF 文件下載下來而不直接顯示出來。另外,上傳的數(shù)據(jù)頁除了要有RDF 表示形式外,還應有一個合適的HTML 表示形式,有助于理解URI 所指的是什么。
3.1.3 根據(jù)HTTPURI中的某個標識名稱發(fā)現(xiàn)可以鏈接的數(shù)據(jù)
RDF 數(shù)據(jù)模型的主體是RDF 三元組。通過訪問HTTP URI,可以發(fā)現(xiàn)三元組中主語、謂語和對象的標識名稱。無論要描述的對象是結(jié)構化數(shù)據(jù)還是非結(jié)構化數(shù)據(jù),都可以在RDF 描述的URI 中添加元數(shù)據(jù)。如為了讓用戶合法地使用數(shù)據(jù),每一個RDF 文件都應包含一個許可其內(nèi)容可以使用的證書,可以添加諸如dc: date、dc: publisher、dc: license、foaf: topic 等元數(shù)據(jù)描述數(shù)據(jù)項。這樣,就可以根據(jù)HTTP URI 中的某個標識名稱發(fā)現(xiàn)新的數(shù)據(jù)。
3.1.4 提供相關的URI鏈接,以便用戶發(fā)現(xiàn)更多的數(shù)據(jù)對象
提供相關的URI 鏈接是通過添加RDF 鏈接實現(xiàn)的。數(shù)據(jù)web 和傳統(tǒng)web 有一點不同就是傳統(tǒng)的web鏈接對象是html 文檔,數(shù)據(jù)web 所關聯(lián)的是數(shù)據(jù)。RDF 鏈接能使不同數(shù)據(jù)發(fā)生關聯(lián),隨RDF 鏈接瀏覽整個數(shù)據(jù)web。在關聯(lián)數(shù)據(jù)客戶端RDF 的瀏覽器界面中,用戶可以通過RDF 鏈接,使查詢的數(shù)據(jù)項鏈接到其他RDF 鏈接。例如,所要查找的是個人信息數(shù)據(jù),通過一個查詢界面可以鏈接到web 上所有有關個人信息的數(shù)據(jù),從而可以發(fā)現(xiàn)更多潛在的數(shù)據(jù)對象。
3.2.1 Facebook簡介
Facebook 是美國的一個大學生社交網(wǎng)站,由哈佛大學的Mark Zuckerberg 等學生創(chuàng)建,是當下互聯(lián)網(wǎng)上最大和增長速度最快的社交網(wǎng)絡平臺。目前,F(xiàn)acebook在所有以服務于大學生為主要業(yè)務的網(wǎng)站中,擁有最多的用戶,也是美國排名第一的照片分享站點,其產(chǎn)生的數(shù)據(jù)量非常巨大。Facebook 在2011 年10 月12 日提出了支持RDF 和關聯(lián)數(shù)據(jù)的URIs ,并且將關聯(lián)數(shù)據(jù)的API 引入自己的數(shù)據(jù)庫[7]
3.2.2 基于四原則的Facebook關聯(lián)數(shù)據(jù)發(fā)布
圖1 是Facebook 的關聯(lián)數(shù)據(jù)架構。在這個架構中可以發(fā)現(xiàn)關聯(lián)數(shù)據(jù)的核心作用,它處于內(nèi)部數(shù)據(jù)庫處理機制和外部應用平臺之間,當結(jié)構化數(shù)據(jù)經(jīng)Facebook數(shù)據(jù)庫抽取并轉(zhuǎn)化成RDF 文件之后,先存儲于Memcache 存儲器中,F(xiàn)acebook 訪問者訪問Facebook 應用平臺時,可以看到提供一個關聯(lián)數(shù)據(jù)界面的SPARQL端點,通過此端點查詢Facebook 的數(shù)據(jù),而在Facebook Web 中關聯(lián)數(shù)據(jù)是通過html 瀏覽器呈現(xiàn)出來的,這個架構明確了Facebook 發(fā)布關聯(lián)數(shù)據(jù)的過程,是基于關聯(lián)數(shù)據(jù)四原則的。
圖1 Facebook的關聯(lián)數(shù)據(jù)架構
在此針對Facebook的Friends用戶界面詳細介紹關聯(lián)數(shù)據(jù)的發(fā)布方法。
(1)從“Friends”這一應用內(nèi)容中的“FriendsList”頁面選取第一部分數(shù)據(jù)進行發(fā)布?!癋riendsList”中主要自定義了“姓名”、“網(wǎng)址”、“狀態(tài)”等字段,對這些字段用URI 進行標識,可以從FOAF中選擇術語先進行RDF 描述。圖2 是“Friends List”的RDF 表示圖。然后將其轉(zhuǎn)換為數(shù)據(jù)頁,轉(zhuǎn)換時要定義“Friends List”的內(nèi)容模型與FOAF 本體之間的RDF 映射,由于命名空間的前綴默認為“site”,由此,RDF 數(shù)據(jù)中術語的命名空間為site:http://siteurl/ns#,可以自動獲得一個http URI,一般地址默認為http://siteurl/node/nodeno/rdf。在用戶瀏覽器端就可以看到在“Friends List”里有name,networks,status 三個節(jié)點,表示出來就是:http://facebook.com/hadoop/name/rdf; http://facebook.com/hadoop/networks/rdf; http://facebook.com/hadoop/status/rdf。
圖2 “Friends List”的 RDF表示圖
(2)通過HTTP 協(xié)議連接“Friends”中字段的URI。用http 協(xié)議將“Friends List”的數(shù)據(jù)頁用HTML形式表現(xiàn)出來,HTML 形式的地址默認為:http://siteurl/Friends #。當一個節(jié)點創(chuàng)建后,系統(tǒng)會自動賦予一個http URI。一般默認為:http://siteurl/node/nodeno(siteurl) 為站點的URL 地址, 指向Facebook 中“Friends List”的html 文檔。由于Facebook 的核心數(shù)據(jù)集在Hadoop 里,由此“Friends List”站點的內(nèi)容中的四個節(jié)點則生成一系列的URL 地址:http://facebook.com/hadoop/name facebook.com;http://facebook.com/hadoop/networks facebook.com; http://facebook.com/hadoop/statusfacebook.com。
(3)根據(jù)HTTP URI 中的其他字段發(fā)現(xiàn)可以鏈接的數(shù)據(jù)。Facebook 系統(tǒng)自動生成了每個用戶的html 文檔及其URI 和RDF 數(shù)據(jù)及其http URI,所有用戶的RDF 數(shù)據(jù)都存儲在后臺的RDF 倉儲之中,例如可以通過Name: Llia Alshanetsky 在本人的應用中發(fā)現(xiàn)Notes、Events、Photos、video、Group 等鏈接的信息,可以添加dc: Topic 來描述這些數(shù)據(jù),從而發(fā)現(xiàn)更多關于Llia Alshanetsky 的數(shù)據(jù)
(4)提供與“Friends List”字段相關的URI 鏈接。在Facebook 中通過API 平臺提供“Friends List”字段相關的URI 鏈接。在API 平臺中有很多應用,將里面的信息抽取并轉(zhuǎn)化封裝成RDF 文件之后存儲于存儲器中,在Facebook 中通過API 平臺上的應用提供查詢“Friends List”字段的端點。同時,在查詢端點的前面要建立一個關聯(lián)數(shù)據(jù)界面,用戶通過此界面就可以進行多種途徑的檢索,獲得“Friends List”字段關聯(lián)數(shù)據(jù), 從而找到用戶所需要的數(shù)據(jù), 另外,F(xiàn)acebook 站點還建立了自己的SPAQL Endpoint 接口可向遠程站點(REMOTE DRUPAL SITE) 其他的網(wǎng)絡社區(qū)API 提供關聯(lián)數(shù)據(jù)服務,從而在整個數(shù)據(jù)web上可以查到“Friends List”字段中的關聯(lián)數(shù)據(jù),可以獲得潛在的“Friends List”信息。
(1)事先定義好站點內(nèi)容模型與RDF數(shù)據(jù)模型的映射,在Facebookweb上發(fā)布只要將F acebook中用戶的數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一命名,統(tǒng)一內(nèi)容描述機制的RDF三元組即可。
(2)Facebook中的數(shù)據(jù)轉(zhuǎn)化為RDF數(shù)據(jù)后可以保存在專用的RDF數(shù)據(jù)庫中,與原有系統(tǒng)的關系數(shù)據(jù)庫之間在物理上彼此獨立,在邏輯上相互映射。
(3)利用產(chǎn)生的RDF去鏈接Facebook中同一用戶數(shù)據(jù)內(nèi)各種數(shù)據(jù)項和鏈接相關聯(lián)不同用戶的數(shù)據(jù),建立用戶數(shù)據(jù)的關聯(lián)機制(關聯(lián)解析機制、檢索機制、調(diào)用機制),為用戶數(shù)據(jù)保存提供方便。且對Facebook的數(shù)據(jù)量大小和更新頻率的影響不大。
[1]kevenlw.數(shù)據(jù)的萬維網(wǎng)[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]白海燕.關聯(lián)數(shù)據(jù)及DBpedia實例分析[J].現(xiàn)代圖書情報技術,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]婁秀明.用關聯(lián)數(shù)據(jù)技術實現(xiàn)網(wǎng)絡知識組織系統(tǒng)的研究[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].中國數(shù)字電視,2007(11):72-75.