動態(tài)維護(hù)數(shù)據(jù) 博客【關(guān)聯(lián)數(shù)據(jù)的動態(tài)鏈接維護(hù)研究】
發(fā)布時間:2020-03-10 來源: 幽默笑話 點(diǎn)擊:
[摘要] 分析關(guān)聯(lián)數(shù)據(jù)集之間鏈接的動態(tài)性,在此基礎(chǔ)上探討三種動態(tài)鏈接維護(hù)方法。基于WOD-LMP協(xié)議的方法要求鏈接雙方都遵守WOD―LMP協(xié)議;诟峦ㄖ姆椒ㄟm用于目標(biāo)數(shù)據(jù)集具有數(shù)據(jù)更新通知機(jī)制的情況,需要針對目標(biāo)數(shù)據(jù)集的數(shù)據(jù)更新通知機(jī)制采取相應(yīng)的更新數(shù)據(jù)獲取方法;谥鲃颖O(jiān)測機(jī)制的方法對目標(biāo)數(shù)據(jù)集的要求較低,只需要提供SPARQL查詢接口或支持RDF堆下載即可。
[關(guān)鍵詞] 關(guān)聯(lián)數(shù)據(jù) 動態(tài)鏈接 鏈接維護(hù) WOD-LMP協(xié)議 更新通知
1 引言
關(guān)聯(lián)數(shù)據(jù)(1inked data)是指根據(jù)一定的原則進(jìn)行組織并發(fā)布到Web上的數(shù)據(jù),它遵循RDF和SPARQL標(biāo)準(zhǔn)并包含與外部數(shù)據(jù)之間的鏈接(1ink),可以直接通過HTTP/URI機(jī)制進(jìn)行獲取。一些政府?dāng)?shù)據(jù)和學(xué)術(shù)資源已被轉(zhuǎn)換為關(guān)聯(lián)數(shù)據(jù),部分圖書館也在進(jìn)行這方面的嘗試。通過鏈接將不同的數(shù)據(jù)集關(guān)聯(lián)起來,是關(guān)聯(lián)數(shù)據(jù)技術(shù)應(yīng)用最大的價值所在。大量已公開的關(guān)聯(lián)數(shù)據(jù)集彼此之間已經(jīng)建立了各種類型的鏈接(下文中的數(shù)據(jù)集指的是關(guān)聯(lián)數(shù)據(jù)集,數(shù)據(jù)集之間的鏈接指的是數(shù)據(jù)集資源之間的鏈接),一些綜合性的數(shù)據(jù)集更是成為其他眾多應(yīng)用系統(tǒng)和數(shù)據(jù)集的鏈接對象,例如,從LOD云圖中可以發(fā)現(xiàn),鏈接到DBpedia的數(shù)據(jù)集多達(dá)63個。隨著數(shù)據(jù)集的不斷增多,不同數(shù)據(jù)集之間的鏈接關(guān)系將會越來越復(fù)雜。任何一個數(shù)據(jù)集的狀態(tài)發(fā)生變化,哪怕是單個三元組層面上的變化,都可能導(dǎo)致與之相鏈接的其他數(shù)據(jù)集發(fā)生訪問故障,因此,數(shù)據(jù)集之間的鏈接關(guān)系建立之后,對這些動態(tài)變化的鏈接(即動態(tài)鏈接)進(jìn)行及時、有效的自動維護(hù),是發(fā)揮關(guān)聯(lián)數(shù)據(jù)的作用、體現(xiàn)關(guān)聯(lián)數(shù)據(jù)價值的重要保證。
2 鏈接的動態(tài)性分析
鏈接的動態(tài)性是指數(shù)據(jù)集之間的鏈接狀態(tài)是動態(tài)變化的。數(shù)據(jù)集的動態(tài)性直接決定了鏈接的動態(tài)性,數(shù)據(jù)集之間鏈接類型的多樣性則在一定程度上增強(qiáng)了鏈接的動態(tài)性。
2.1 數(shù)據(jù)集的動態(tài)性
根據(jù)資源的更新頻率和幅度來劃分,數(shù)據(jù)集大致有靜態(tài)、準(zhǔn)靜態(tài)、半動態(tài)、天然動態(tài)等幾種類型,其動態(tài)性依次增強(qiáng)。靜態(tài)型數(shù)據(jù)集基本不再變化但可能偶爾有所更新,動態(tài)性最弱。天然動態(tài)型數(shù)據(jù)集的更新頻率和幅度都較大,更新的類型也較多,動態(tài)性最強(qiáng),例如,2008年10月至2009年5月,Dbpedia中person類資源增加、移動、刪除的數(shù)量分別多達(dá)49 325、2 841、20 561,此外還有很多資源被修改。
2.2 鏈接類型的多樣性
鏈接類型一般與資源類型有關(guān),通過對DBpedia、DBLP、Geo Names等數(shù)據(jù)集的分析發(fā)現(xiàn),常見的資源類型主要有person、place、work、species、organization等,相應(yīng)地,也存在多種不同的鏈接類型,如表1所示:
表1僅列出最常用的幾種鏈接類型。實(shí)際上,數(shù)據(jù)集之間的鏈接類型還有很多,可來自已知的詞匯表和元素集,如dc:isPartOf、dc:isReferencedBy、SCOVO:di―mension等,也可以來自自定義的詞匯表和元素集。
2.3 鏈接的動態(tài)性
鏈接的動態(tài)性與數(shù)據(jù)集的動態(tài)性之間有直接的關(guān)系,可從宏觀與微觀兩個層面來分析。
2.3.1 宏觀層面設(shè)源數(shù)據(jù)集為s、目標(biāo)數(shù)據(jù)集為D,鏈接的動態(tài)變化情況如表2所示:
其中“s―D鏈接”表示s至D的整體鏈接情況,由s中所有資源到D中所有資源的全部鏈接構(gòu)成。
2.3.2 微觀層面設(shè)s中存在一個資源si,D中存在一個資源Dj,鏈接的動態(tài)變化情況如表3所示:
其中“不變”是指sj至Dj的有向鏈接(用si―Dj鏈接表示)保持不變,“消失”是指因si發(fā)生變化所引起的si―Dj鏈接不復(fù)存在,“斷鏈”是指因Dj發(fā)生變化所引起的si―Dj鏈接不復(fù)存在,“Dj移動”是指出于某種考慮重新為Dj分配URI,“Dj修改”是指在不改變URI的情況下對Dj的屬性及其值進(jìn)行增、刪、改等操作。
鏈接的動態(tài)性與鏈接類型的多樣性之間也有一定的關(guān)系。s至D的鏈接類型越多,則鏈接個數(shù)也可能越多,從而導(dǎo)致:①當(dāng)D中有資源被刪除或被移動時,出現(xiàn)斷鏈的機(jī)會也越多;②當(dāng)s中的資源被刪除或修改時,出現(xiàn)鏈接消失的可能性也越大。
3 動態(tài)鏈接維護(hù)方法
關(guān)聯(lián)數(shù)據(jù)鏈接的狀態(tài)主要有5種:初態(tài)、不變、消失、斷鏈、新鏈接。S―D鏈接建立后,需要采取一定的方法對其進(jìn)行維護(hù),包括及時修補(bǔ)斷鏈、刪除已消失的鏈接、建立新鏈接等。
3.1 基于WOD-LMP協(xié)議的動態(tài)鏈接維護(hù)
WOD-LMP協(xié)議(web of data link maintenance pro。toc01)是專用的關(guān)聯(lián)數(shù)據(jù)鏈接維護(hù)協(xié)議,該協(xié)議的消息傳遞機(jī)制允許用5種方法在s和D之間傳遞5類消息,其中l(wèi)inkNotification()方法用來將s生成的S―D鏈接信息傳遞給D,linkDeletionNotification()方法用來將s刪除的S→D鏈接信息傳遞給D,ehangeNotifica.tion()方法用于D將s所訂閱資源的變化情況通知S,getChanges()方法用于s從D中獲取所有更新數(shù)據(jù)。
利用WOD-LMP協(xié)議可以實(shí)現(xiàn)關(guān)聯(lián)數(shù)據(jù)的動態(tài)鏈接維護(hù),其基本原理是:①外部數(shù)據(jù)監(jiān)測模塊監(jiān)視位于D中的已訂閱資源的變化情況。在初次建立S--~D鏈接時,該模塊通過linkNotification()方法將s與D之間的鏈接情況通知D,其中包括訂閱D中哪些資源(用子集Ds表示)的變化信息。每當(dāng)接收到D發(fā)送來的changeNotification()通知,該模塊則針對DS中被刪除的資源,刪除相應(yīng)的斷鏈;針對DS中被修改的資源,重新計算s與該資源的鏈接。②外部數(shù)據(jù)監(jiān)測模塊監(jiān)視位于D中的非訂閱資源的變化情況。該模塊可以主動地利用getChanges()方法從D中獲取在指定時間段內(nèi)發(fā)生變化的資源集合C,并由鏈接維護(hù)模塊重新計算s至C-DS中資源之間的鏈接。③本地數(shù)據(jù)監(jiān)測模塊動態(tài)監(jiān)視s中的資源變化情況。當(dāng)發(fā)現(xiàn)某個資源被刪除時,通過linkDeletionNotification()方法將鏈接消失情況通知D。當(dāng)發(fā)現(xiàn)某個資源被修改時,則由鏈接維護(hù)模塊重新計算該資源與D中所有資源的鏈接,并通過linkDeletionNotification()方法和linkNotifieation()方法將鏈接變化情況通知D。如圖1所示:
例如,s可向支持WOD―LMP協(xié)議的數(shù)據(jù)集http://www.省略發(fā)送如下鏈接通知:linkNotifica-tion(“http://www.省略/sparql”,LinkList.toLinks(“http://localhost:8080/resource/John Smith”, “http://www.example.or/resource/John―H―Smith”,“owl:sameAs”,true),表示與其資源http://www.省略∥resource/John―H―Smith建立了owl:sameAs類型的鏈接,其中參數(shù)值true表示訂閱了該資源。當(dāng)http://www.省略刪除該資源時,向S發(fā)送通知:ehangeNotification(93,ChangeList.toChanges(“http://www.省略/resource/John H Smith”,“de1ete”)。S接收通知并刪除斷鏈后,再向http://www.省略發(fā)送如下鏈接刪除通知:linkDeletionNotification(LinkList.toLinks(“http://localhost:8080/resource/John―Smith”,“http://www.省略/resource/John H Smith”,“owl:sameAs”)。
基于WOD-LMP協(xié)議的動態(tài)鏈接維護(hù)方法是較為理想的方法,但需要鏈接的雙方都遵守相同的協(xié)議。此外,支持WOD-LMP協(xié)議的目標(biāo)數(shù)據(jù)集需要保存、維護(hù)來自不同源數(shù)據(jù)集的訂閱信息,并及時將訂閱資源的變化情況反饋給源數(shù)據(jù)集,在一定程度上增加了目標(biāo)數(shù)據(jù)集的負(fù)擔(dān)。
3.2 基于更新通知的動態(tài)鏈接維護(hù)
3.2.1 Triplifv更新日志方法
該方法按年、月、日、時、分、秒等時間粒度來產(chǎn)生更新日志,形成嵌套的更新集,并為每個更新集提供一個URI,以便關(guān)聯(lián)數(shù)據(jù)消費(fèi)者使用。
3.2.2 sparqlPuSH方法 該方法通過sparqlPuSH接口對客戶端提交的SPARQL請求進(jìn)行登記,并將該請求提交給PuSH服務(wù)器。每當(dāng)數(shù)據(jù)集發(fā)生變化時,sparqlPuSH接口自動重新運(yùn)行所有已登記的SPARQL請求,并將結(jié)果集發(fā)生變化的SPARQL請求及其變化情況通知PuSH服務(wù)器,由PuSH服務(wù)器通過PubSub.Hubbub協(xié)議向所有相關(guān)的客戶端發(fā)出廣播通知。
3.2.3 DBPedia Live方法 DBPedia Live是DBpedia的擴(kuò)展,用于解決Wikipedia每日數(shù)以萬計的資源更新問題,為關(guān)聯(lián)數(shù)據(jù)消費(fèi)者實(shí)時提供Wikipedia最新的更新信息。
3.2.4 PingTheSemanticWeb方法 該方法采用了基于集中登記策略的更新通知機(jī)制。RDF數(shù)據(jù)擁有者可以在PingTheSemanticWeb.con平臺上發(fā)布自己的RDF文檔或RDF更新文檔。用戶可以導(dǎo)入這些以XML或N3/Turtle格式存在的RDF文檔。
上述各種方法只是針對數(shù)據(jù)集的變化情況發(fā)出更新通知,其本身并不能解決數(shù)據(jù)集之間的動態(tài)鏈接維護(hù)問題。源數(shù)據(jù)集s可以利用這些方法來獲取目標(biāo)數(shù)據(jù)集D的更新數(shù)據(jù),并在此基礎(chǔ)上進(jìn)行動態(tài)鏈接維護(hù),基本原理如下(以Triplify更新日志方法為例,如圖2所示):
獲取更新數(shù)據(jù)。選擇合適的時間粒度,由外部數(shù)據(jù)監(jiān)測模塊通過HTrP協(xié)議從D的更新日志中獲取所需的更新數(shù)據(jù)。
根據(jù)更新數(shù)據(jù)進(jìn)行鏈接維護(hù)。更新數(shù)據(jù)中一般只包含新增資源和修改的資源。對于新增資源,鏈接維護(hù)模塊需要考察s中所有資源與它們之間的關(guān)系,嘗試建立新鏈接。對于修改的資源,雖然其在D中的URI不變,不會導(dǎo)致斷鏈,但由于存在增加了新屬性、刪除或修改了原有屬性等情況,需要重新計算s中所有資源與它們之間的鏈接。
對于更新數(shù)據(jù)中沒有出現(xiàn)但已被刪除或移動的資源,由外部數(shù)據(jù)監(jiān)測模塊定期測試s中客體指向D的所有三元組的連通情況,一旦發(fā)現(xiàn)斷鏈即將該三元組予以刪除。
本地數(shù)據(jù)監(jiān)測模塊動態(tài)監(jiān)視s中的資源變化情況。發(fā)現(xiàn)某個資源被修改時,重新計算該資源與D中相應(yīng)資源(即原有鏈接所指向的資源)或所有資源的鏈接。發(fā)現(xiàn)某個資源被移動時,保持原有的鏈接狀態(tài)不變。對于被刪除的資源,其與D的所有鏈接自動消失。
例如,當(dāng)從支持Triplify方法的數(shù)據(jù)集http://wn/vw.省略中獲取更新數(shù)據(jù)時,URI為http://www.省略/Triplify/update/201 1/Jan/03/2I/06/22的更新集將返回2011―01―03 21:06:22時更新的三個資源:
update:updatedResource http://WWW.省略/resource/Tim Berners_Lee;
update:updatedResource http://WWW.example.or#resource/Christian Bizer;
update:updatedResource http://WWW.example.or#resource/Jennifer Bowen。
在進(jìn)行鏈接維護(hù)時,可重新計算本地數(shù)據(jù)集中所有資源與上述三個資源之間的鏈接。
基于更新通知的動態(tài)鏈接維護(hù)方法不要求目標(biāo)數(shù)據(jù)集遵循規(guī)定的鏈接維護(hù)協(xié)議,只要能以某種方法發(fā)布資源更新通知即可,在一定程度上降低了對目標(biāo)數(shù)據(jù)集的要求。但該方法存在以下不足之處:①增加了源數(shù)據(jù)集一端的負(fù)擔(dān)。外部數(shù)據(jù)監(jiān)測模塊需要針對不同目標(biāo)數(shù)據(jù)集的更新通知方法,分別采取不同的對策來獲取更新數(shù)據(jù)。目標(biāo)數(shù)據(jù)集和更新通知方法越多,鏈接維護(hù)系統(tǒng)則越復(fù)雜。②鏈接維護(hù)系統(tǒng)的適應(yīng)性較差。對于新的目標(biāo)數(shù)據(jù)集,當(dāng)其更新通知方法與系統(tǒng)已處理過的現(xiàn)有方法不同時,不能直接利用現(xiàn)有的系統(tǒng)來獲取更新數(shù)據(jù),需要對其進(jìn)行相應(yīng)的功能擴(kuò)充。
3.3 基于主動監(jiān)測機(jī)制的動態(tài)鏈接維護(hù)
如果目標(biāo)數(shù)據(jù)集D既不遵循已知的鏈接維護(hù)協(xié)議(如WOD―LMP),也沒有更新通知機(jī)制,則源數(shù)據(jù)集S只能通過主動監(jiān)測D中資源變化的方法來進(jìn)行鏈接維護(hù)。Haslhofer等已進(jìn)行了相關(guān)的研究,所提出的DSNotify方法可以檢測和修復(fù)關(guān)聯(lián)數(shù)據(jù)集之間的部分?jǐn)噫湣T摲椒ㄖ饕紤]由于D中資源的刪除、移動所導(dǎo)致的斷鏈情況,忽略了由于資源的修改所引起的鏈接變化情況。
基于主動監(jiān)測機(jī)制的鏈接維護(hù)方法以DSNotifv方法為基礎(chǔ),同時考慮s和D中資源的增加、刪除、修改、移動等情況,基本原理如圖3所示:
3.3.1 D的本地化處理根據(jù)D所提供的批量訪問接口,采用SPARQL查詢方法或RDF堆下載方法來提取所有的資源。從每個資源中抽取描述性特征,生成特征向量,并將所有資源的URI及特征向量保存在本地特征向量文檔中。
3.3.2 主動監(jiān)測D的變化情況 定期從D中重新獲取所有資源,通過與本地特征向量文檔的比較來發(fā)現(xiàn)D中資源的變化情況。比較時,綜合考慮新獲取資源 的URI,以及新獲取資源與特征向量文檔中資源之間的余弦相似度值,從而判斷D中資源的增加、刪除、修改、移動等情況。
3.3.3 根據(jù)D的變化情況進(jìn)行鏈接維護(hù) 對于新增資源和被修改的資源,重新計算S中所有資源與這些資源之間的鏈接。對于被刪除的資源,在s中刪除所有與之相關(guān)的斷鏈。對于被移動的資源,通過修改s中相關(guān)三元組的客體值(即將客體值改為移動后的資源URI)來修復(fù)斷鏈。
3.3.4 本地數(shù)據(jù)監(jiān)測模塊動態(tài)監(jiān)視S中的資源變化情況基本過程和方法參見基于更新通知的動態(tài)鏈接維護(hù)方法的相應(yīng)部分。
例如,2009年12月20日,筆者通過關(guān)聯(lián)數(shù)據(jù)集http://moseley.省略的SPARQL端口http://api.省略/stores/moselev/services/sparql獲取了其全部資源,共l 284個三元組,合計155個資源。2011年3月5日再次獲取其全部資源,共1 268個三元組,合計153個資源。通過特征向量比較發(fā)現(xiàn),資源http://moseley.省略/artist/david―wafing和http://moseley.dataincubator,org/artist/maureen已被刪除。s端在監(jiān)測到這一變化情況后,可刪除與這些資源相關(guān)的斷鏈。
基于主動監(jiān)測機(jī)制的動態(tài)鏈接維護(hù)方法對目標(biāo)數(shù)據(jù)集的要求較低,而且對不同的目標(biāo)數(shù)據(jù)集可以采取基本相同的處理方法,具有較強(qiáng)的適應(yīng)性。但如果目標(biāo)數(shù)據(jù)集的資源數(shù)量太大,則源數(shù)據(jù)集端的存儲負(fù)擔(dān)和處理負(fù)擔(dān)會較重。此外還需要解決如下問題:如果主動監(jiān)測頻率遠(yuǎn)遠(yuǎn)小于目標(biāo)數(shù)據(jù)集的更新頻率,則源數(shù)據(jù)集端不能及時獲悉目標(biāo)數(shù)據(jù)集的變化情況,從而導(dǎo)致在一定的時間間隔內(nèi)可能有大量的斷鏈存在,因此,需要采用適當(dāng)?shù)姆椒▉碓u估目標(biāo)數(shù)據(jù)集的更新頻率,據(jù)此來調(diào)整主動監(jiān)測頻率。
4 結(jié)語
對動態(tài)鏈接進(jìn)行及時、有效的維護(hù),是維系數(shù)據(jù)集之間鏈接關(guān)系的重要手段。本文在分析鏈接動態(tài)性的基礎(chǔ)上,對三種類型的動態(tài)鏈接維護(hù)方法的基本原理進(jìn)行了描述。第一種方法較為理想,但需要鏈接雙方都遵守WOD-LMP協(xié)議;第三種方法的適應(yīng)性較強(qiáng),只要目標(biāo)數(shù)據(jù)集提供SPARQL查詢接口或支持RDF堆下載即可;第二種方法的適應(yīng)性較差,需要針對不同的更新通知機(jī)制采取相應(yīng)的更新數(shù)據(jù)獲取方法。目前的研究處于理論探討和少量樣本數(shù)據(jù)試驗階段,下一步的工作將圍繞以下兩個方面來進(jìn)行:①實(shí)驗研究。選定一個適合用來做實(shí)驗的目標(biāo)數(shù)據(jù)集,在建立了本地數(shù)據(jù)集與該目標(biāo)數(shù)據(jù)集之間的鏈接后,分別利用上述三種方法對所建立的鏈接進(jìn)行維護(hù)實(shí)驗。②評價。系統(tǒng)運(yùn)行一段時間后,對三種動態(tài)鏈接維護(hù)方法的效果進(jìn)行比較、評價,并針對可能存在的問題進(jìn)行新一輪的修改、實(shí)驗、評價。
相關(guān)熱詞搜索:關(guān)聯(lián) 維護(hù) 鏈接 關(guān)聯(lián)數(shù)據(jù)的動態(tài)鏈接維護(hù)研究 關(guān)聯(lián)數(shù)據(jù)鏈接維護(hù)技術(shù)介紹 關(guān)聯(lián)數(shù)據(jù)中的實(shí)體鏈接研究
熱點(diǎn)文章閱讀