龔 振 范冰冰
(華南師范大學計算機學院 廣東 廣州 510631)
在大數據時代,數據成為了最具有價值的資產,數據的開放和跨界融合是大數據產業得以壯大的關鍵。而傳統開放數據組織管理方式,數據集間相互孤立、缺乏關聯、雜亂無章,無法發掘其真正價值。同傳統的數據管理技術相比,關聯技術更容易實現多源數據的組合,它的自描述特性利于大范圍的數據共享。關聯數據也成為開放數據的最佳實踐之一[1]。
關聯數據是W3C推薦的一種規范,用來發布和連接各類數據、信息和知識。通過對Web中各種數據資源及其相互之間關系映射進行機器可讀的描述,可以在更大范圍內,準確、高效、可靠地查找、分享、利用這些相互關聯的信息和知識。目前,RDF是最適合程序自動處理的文檔之一,且能富含語義,已成為關聯數據的“標配”,也是關聯數據的基礎數據模型。RDF是領域無關的,適用于Web的簡單而抽象的數據模型。其采用三元組的形式表達兩個資源間的二元關系或一個資源的屬性。RDF三元組是在網絡上發布關聯數據最簡單便捷的形式[2]。
自關聯數據提出以來,它的研究和應用一直是個熱點,涵蓋生命科學、地理信息、科學出版物、電影、音樂等眾多領域。在歐美國家,關聯數據已經開始應用于政府數據的開放,如美國的data.gov、英國的data.gov.uk已經采用RDF格式發布數據集并提供SPARQL方式查詢。國內第一個關聯開放數據項目——zhishi.me,把維基百科中國、百度百科、互動百科整合鏈接成一個知識庫,嘗試構建中文通用知識圖譜[3]。文獻[4]借鑒國外圖書館MARC21轉換成RDF的成功做法,構建CNMARC到RDF的映射實現進行了關聯數據在圖書館學的實踐嘗試[4]。文獻[5-8]對實現關聯數據需要解決的關鍵問題包括描述、數據管理、語義互操作等進行了探討。
從國內外研究來看,現階段,數據集之間的關聯主要表現為各個數據集與 DBpedia、GeoNames 等少數核心資源集(HUB 資源)的鏈接,其他非 HUB 資源集之間的關聯相對比較少,數據集內部實體間的關聯更加缺乏。其主要原因就是缺乏統一的關聯數據集描述規范和有效的數據集自動關聯方法。針對此,本文參考國內外研究,從數據集外部基本信息、內部屬性特征、關聯關系映射三方面設計關聯數據集描述模型,并采用語義相似度計算方法,綜合數據項特征,發現數據集語義關聯,構建具有映射關系的RDF數據,實現的數據集的統一描述和內外部鏈接。最后以“廣州市政府數據統一開放平臺”為例進行實驗,實現數據集的描述并建立鏈接關系。也為關聯數據技術在開放數據方面的實踐應用提供借鑒價值。
構建關聯數據的關鍵步驟就是對數據集進行描述。本文將數據集的描述分為外部描述(粗粒度描述)和內部描述(細粒度描述)。描述模型除了包含數據集的數據特征信息之外,還需有描述數據集間的鏈接信息。數據集描述模型是應用于關聯數據的開放與共享,采用RDF的標準數據格式及RDF/XML 描述語言,提供統一的數據描述,并根據的描述特征自動發現和映射有關系的其他數據集。
為了便于關聯數據在Web中共享和傳播,數據集描述模型的設計還要遵循一下三個原則:
(1) 盡可能地復用已有的詞匯表和術語(如DCAT、DC、FOAF、Geo等),減少詞匯異構。
(2) 模型各部分描述能夠很好表述數據集信息特征。
(3) 必須符合SPARQL的查詢方式。
外部描述是用戶識別了解數據集內容最為直接的方式。本文將外部描述分為數據集標識信息、數據集限制信息、數據集維護信息三類。數據集標識信息包括數據集標題、分類、摘要等基本信息;數據集限制信息包括許可說明、權限等訪問與使用有關的限制信息;數據集維護信息包括更新日期、更新頻率、維護方等信息?;趶陀靡延械脑~匯表原則,本文將借鑒都柏林核心詞匯并結合其他相關詞匯,選用部分適用于關聯數據集的外部描述詞匯,如表1所示。

表1 關聯數據集外部描述選用的基本詞匯
內部描述是描述數據集內部數據屬性信息,目的在于用戶可以通過數據集描述信息直接了解到數據內部結構,而且通過對數據集內部描述,可以標記內部實體屬性特征,便于辨別某些屬性間是否可能存在關聯。由于數據集內部數據的描述尚未有可借鑒詞匯,本文來自定義新的詞匯DI(data item),用以描述數據集內部屬性特征。例如:di:isLink作為數據集間關聯映射時對此字段是否要進行關聯匹配。比如:對于數量這類無概念數值就不用計算和其他本體的關聯;對于學校、公司等名詞這類有實際意義的屬性需要進行關聯映射;對于身份證號、車牌號這類具有唯一標識的屬性,以di:isUnique為標記,來做更精準的關系判斷,以及一些來描述屬性信息的詞匯。表2為本文設計的數據集內部描述詞匯。

表2 自定義數據集內部描述詞匯

續表2
除了描述數據集信息的外部描述和內部描述外,關聯數據集還需要關聯描述,目的在于描述數據集之間的關聯信息。鑒于關聯數據通常采用RDF數據形式,本文將數據集的關聯關系通過RDF三元組的來表示:主體為某一數據集資源或者內部某一實體屬性值,謂詞用SKOS、OWL、VoID等表示關系的詞匯,賓語為另一數據集或者同數據集實體屬性值,以此來表述關聯關系。有些鏈接關系沒有明確指向,如owl:sameAs表示等同關系,主語和賓語可以互換,有些鏈接關系是不對稱的,如void: subjectsTarget用來說明主語鏈接指向。
完整的關聯數據集描述模型的設計要包括以上三個方面的描述,分別用來表示不同的數據集信息以及數據間的關系。
關聯發現是實現構建關聯數據的關鍵步驟,本文借鑒文獻[9]中關聯層次分類,把數據集關聯分為外部關聯和內部關聯。兩個數據集外部描述如標題、摘要、關鍵字等存在關聯關系即成為數據集外部關聯。數據集內部數據存在實體關聯稱為數據集內部關聯。數據集外部關聯和內部關聯由于鏈接對象層次不同,不存在必然的聯系,卻更加豐富了數據集的聯系。大量的外部關聯和內部關聯可以將眾多數據信息相互鏈接, 構成關聯開放數據云LoD cloud(Linked open Data cloud)[10],進而形成數據網 (Web of Data)[11]。
分析關聯數據相關技術,語義相似度計算是目前計算資源間關聯度的比較常用的方法。所以本文基于設計的語義描述模型,綜合數據集的描述特征,采用語義相似度的計算方法,根據其語義相似度結果來判定數據集或內部屬性間是否存在關聯。語義相似度的大小應該是在區間 [0,1],相似度值越大,說明關聯程度越高,相似度為1可視為等同關系。
數據集標題、摘要、關鍵字、主題分類是表述一個數據集所述內容的基本信息項。標題、摘要屬于長文本類型,對此類型數據項,首先進行分詞,轉為詞集。使用向量空間模型方法計算相似度。其語義相似度計算公式如下:
詞集1表示為D1,詞集2表示為D2,其中:
D1={w11,w12,…,w1n}
D2={w21,w22,…,w2n}
D1和D2的相似度:
(1)
這里把標題和摘要的相似度值分別記為Simt和Simd。
主題、關鍵字數據項屬于概念性詞匯,概念間的語義計算一般基于第三方語料庫或者領域本體計算相似關系。本文采用基于百度百科的詞語相似度計算方法進行此方面計算。此方法通過對百科名片、詞條正文、開放分類和相關詞條部分的相似度計算方法,對其再加權就得到整體的相似度結果,這里給出總體相似度計算公式[12]:
(2)
把主題和關鍵字的相似度值分別記為Simc和Simk。
外部描述的總體相似度值即為這四項加權:
Simout=θtSimt+θdSimd+θcSimc+θkSimk
(3)
由于標題和摘要是描述數據集內容主要數據項,其中θt和θd權重相對大一些,θc和θc權重相對小一些。θt+θd+θc+θk總和為1,具體權重賦值根據實驗結果調整優化。
對于結構化和半結構化數據集,還需進行內部數據描述,數據集的內部關聯也是建立在內部描述的基礎上的。對于同一數據集或者不同數據集間內部記錄的某些屬性實體值可能是表述同一對象,這里就要建立數據集的內部關聯。
在內部數據描述中,di:isLink表示此屬性是否需要實現關聯,當為true時,要計算此屬性實體和其他屬性實體關聯度;為false時,可以不用計算此屬性的關聯。當di:isUnique為true時,表示此屬性為身份證、車牌號等唯一標識屬性,可以直接采用文本值比較的方法,判斷兩個實體是否一致,其相似度取值為只能為0或1。
當di:isUnique為false時,標識此屬性非唯一標識,需綜合此屬性的描述特征以及具體屬性值,判斷實體間是否相關。在內部描述中有對此屬性信息的描述:name、type、description,這三項描述了此屬性的名稱(如產品名稱)、類型(如string)、說明(如本數據集的產品名稱是農作物品種的學名)。
計算di:type的相似度,由于di:type為固定范圍取值,這里采用文本值比較計算方法,記為Sim1。屬性說明di:description部分,采用式(1)計算,記作Sim2。屬性名稱di:name采用式(1)計算,記作Sim3。對于屬性值,先進行詞性分析,對于詞性為長文本的屬性值采用式(1)計算相似度,對于概念性屬性值采用式(2)計算相似度,此部分記為Sim4。內部關聯綜合相似度為:
Siminner=θ1Sim1+θ2Sim2+θ3Sim3+θ4Sim4
(4)
式中:θ1+θ2+θ3+θ4總和為1,屬性值作為整個屬性的關鍵特征,θ4應該具有更高的權重,其他權重賦值根據實驗結果進行優化調整。
本實驗數據來源于廣州市政府數據統一開放平臺,爬取了其中574個數據集,此數據量已經占此平臺總數據集量的95%以上,實驗數據相對比較可靠。為了實現數據集的關聯,并驗證本研究方法的有效性和科學性,本文設計了以下實驗流程:
(1) 搭建基于Java的Jena[13]框架,便于把讀取到的數據集轉換成RDF數據。
(2) 根據關聯數據集描述模型引入所需詞匯并創建自定義的DI詞匯。
(3) 讀取數據集及元數據,參照描述模型,生成RDF數據。
(4) 根據內外描述,利用上文關聯計算方法計算對應項相似度,對于相似度值大于設定閾值的數據集或實體屬性建立關聯映射。
(5) 輸出關聯數據集的RDF/XML格式文件。
數據集的關聯發現流程如圖1所示。

圖1 數據集描述和關聯發現流程
考慮計算時數據項描述特征,數據集標題和內部屬性值對語義相似度影響較大,所以權重應該較大。又經過多組權重實驗結果對比分析,式(3)中權重系數設為了θt∶θd∶θc∶θk=0.6∶0.2∶0.1∶0.1,式(4)權重系數設為θ1∶θ2∶θ3∶θ4=0.1∶0.1∶0.1∶0.7,其結果相對較好。當然,具體的賦值也可以根據實際實驗調整,進行優化。表3是“廣州市高新技術企業名單”這一數據集與其他數據集外部關聯相似度計算結果。

表3 “廣州市高新技術企業名單”數據集
廣州市政府數據統一開放平臺未涉及到數據集內部關聯,并且未實現對內部數據的檢索查詢。本實驗以數據集“廣州市農藥使用品種推薦名錄”中“產品名稱”屬性和“廣州市地理標志產品一覽表”中的“作物”屬性計算兩數據集內部具有關聯的實體的語義相似度,其結果如表4所示。

表4 數據集內部數據的實體相似度計算結果
從實驗結果可以看出,對角線上的數值均在0.8以上,其產品也為對應的作物的某一品種,兩個實體本身存在關聯關系。如“錢崗糯米糍”是“荔枝”的一個種類,根據本文方法計算的相似度為0.810 307,它們之間關聯程度比其他非對應的作物產品相似度相對較高,可以驗證本方法實體間相似度計算的相對較為可靠。
以關聯數據形式發布數據是開放數據的未來發展趨勢。本文結合數據集外部描述、內部描述和鏈接信息設計關聯數據集描述模型,并根據描述模型,提出基于語義相似度的數據集關聯發現方法,實現關聯數據的程序化創建轉換。相比其他研究,本文設計的描述模型為關聯數據集的開放共享提供了可借鑒的描述模型。其關聯方法不僅實現了數據集之間的基本描述層面的關聯,還實現了數據集內部數據屬性之間的關聯,大大提高了數據信息的關聯程度。本文的研究雖然完成了一定的工作,但還有一些問題需要改進:其一數據集關聯由于要綜合多個數據項,隨著數據集的增多,計算量會暴漲,需要一個有效的計算框架。此外,各數據項相似度值的權重系數和綜合相似度閾值還需進行優化,以提高關聯質量。