Rdf數(shù)據(jù)分布式并行語(yǔ)義編碼方法
【專利摘要】本發(fā)明涉及一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,具體包括以下步驟:步驟S1:讀入RDF本體文件,構(gòu)建類關(guān)系模型和屬性關(guān)系模型;步驟S2:讀入RDF數(shù)據(jù)文件,將三元組分割成三元組項(xiàng),將三元組項(xiàng)按類劃分,并刪除重復(fù)的三元組項(xiàng),同時(shí)生成前綴編碼;對(duì)三元組項(xiàng)進(jìn)行過(guò)濾,用以確保RDF三元組編碼的一致性,使得同一個(gè)三元組項(xiàng)不會(huì)分配到不同的編碼;步驟S3:將三元組項(xiàng)進(jìn)行編碼,生成字典表;步驟S4:將三元組進(jìn)行編碼,生成編碼后的三元組文件;步驟S5:將步驟S4的結(jié)果文件作為此步驟的輸入,根據(jù)步驟S3中的字典表,反轉(zhuǎn)生成原始RDF數(shù)據(jù)文件。本發(fā)明在分布式環(huán)境下結(jié)合本體能夠高效地實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的壓縮編碼與反轉(zhuǎn)。
【專利說(shuō)明】
RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及語(yǔ)義網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法。
【背景技術(shù)】
[0002] 由于RDF數(shù)據(jù)的大規(guī)模性使得其管理存在局限性,為了加速RDF數(shù)據(jù)的查詢或推 理,減少數(shù)據(jù)的存儲(chǔ)空間,通常的做法就是對(duì)三元組進(jìn)行壓縮編碼。壓縮編碼已經(jīng)被證明是 一種有效的編碼,通過(guò)將一個(gè)數(shù)值(ID)替換原有的三元組項(xiàng)(主語(yǔ)或謂語(yǔ)或賓語(yǔ)),最終將 所有三元組數(shù)據(jù)轉(zhuǎn)換為數(shù)值式的數(shù)據(jù)。集中式環(huán)境由于內(nèi)存的限制,不適用于對(duì)大規(guī)模數(shù) 據(jù)的編碼。研究RDF數(shù)據(jù)分布式并行壓縮編碼算法是目前較新的一個(gè)領(lǐng)域。Goodman等人在 Gray XMT機(jī)器上提出適應(yīng)線性探測(cè)的方法,通過(guò)并行的Hash在單個(gè)字典表上實(shí)現(xiàn)了并行的 編碼。此算法的編碼時(shí)間與所采用的計(jì)算機(jī)核數(shù)成線性關(guān)系,這種方法要求所有的數(shù)據(jù)保 存在內(nèi)存中且嚴(yán)重依賴于在共享內(nèi)存架構(gòu)的Gray XMT,不適用于普通的分布式存儲(chǔ)系統(tǒng)。 LongCheng等人采用X10語(yǔ)言對(duì)RDF數(shù)據(jù)進(jìn)行壓縮。首先對(duì)三元組進(jìn)行過(guò)濾,再根據(jù)三元組項(xiàng) 的Hash值將三元組數(shù)據(jù)等數(shù)量的分配到不同的節(jié)點(diǎn)進(jìn)行本地編碼,并生成多個(gè)字典表。 Urbani等人提出分布式MapReduce數(shù)據(jù)壓縮算法,主要分為數(shù)據(jù)壓縮階段和數(shù)據(jù)反轉(zhuǎn)階段, 其中在數(shù)據(jù)壓縮階段對(duì)三元組進(jìn)行壓縮,并構(gòu)建字典表;在反轉(zhuǎn)階段,將壓縮后的三元組和 字典表進(jìn)行連接,從而生成原始三元組數(shù)據(jù)。此算法在數(shù)據(jù)反轉(zhuǎn)階段效率不夠高。
[0003] 以上為目前RDF數(shù)據(jù)分布式并行壓縮的最新研究成果,也是目前存在的三種有效 的RDF數(shù)據(jù)并行壓縮算法,能夠?qū)崿F(xiàn)海量RDF數(shù)據(jù)并行壓縮編碼,但這些壓縮算法均未考慮 結(jié)合本體文件,因此編碼后的三元組沒(méi)有表示任何語(yǔ)義信息,不利于后期進(jìn)行分布式查詢 或語(yǔ)義推理。目前還沒(méi)有結(jié)合本體文件實(shí)現(xiàn)RDF數(shù)據(jù)的并行語(yǔ)義編碼。
[0004] 集中式環(huán)境下無(wú)法滿足海量數(shù)據(jù)的需求,而分布式環(huán)境下的壓縮編碼沒(méi)有表示任 何語(yǔ)義信息,不利于分布式查詢或推理。有些分布式壓縮算法在數(shù)據(jù)反轉(zhuǎn)階段的效率不夠 尚。
[0005] 需要解決的技術(shù)問(wèn)題:1.解決分布式環(huán)境中如何保證三元組項(xiàng)編碼的唯一性,即 相同的三元組項(xiàng)不會(huì)分配到不同的編碼。2.解決分布式環(huán)境中如何保證編碼的無(wú)損壓縮性 質(zhì),即編碼后的三元組能夠反轉(zhuǎn)為原始的三元組。3.結(jié)合提出的分布式方案提出了對(duì)應(yīng)的 并行編碼方案,從而滿足大規(guī)模數(shù)據(jù)的分布式并行語(yǔ)義編碼的需求。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本發(fā)明的目的是提供一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,主要結(jié)合 本體對(duì)RDF數(shù)據(jù)進(jìn)行編碼,使得RDF三元組的編碼帶有語(yǔ)義信息且編碼具有規(guī)律性,利于分 布式查詢與語(yǔ)義推理的完成,在分布式環(huán)境下結(jié)合本體能夠高效地實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的壓縮 編碼與反轉(zhuǎn)。
[0007] 本發(fā)明采用以下方案實(shí)現(xiàn):一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,具體包括以下 步驟:
[0008] 步驟SI:讀入RDF本體文件,構(gòu)建類關(guān)系模型和屬性關(guān)系模型,生成類及其編碼的 映射文件與屬性及其編碼的映射文件;
[0009] 步驟S2:讀入RDF數(shù)據(jù)文件,將三元組分割成三元組項(xiàng),將三元組項(xiàng)按類劃分,并刪 除重復(fù)的三元組項(xiàng),同時(shí)生成前綴編碼;對(duì)三元組項(xiàng)進(jìn)行過(guò)濾,用以確保RDF三元組編碼的 一致性,使得同一個(gè)三元組項(xiàng)不會(huì)分配到不同的編碼;
[0010] 步驟S3:將三元組項(xiàng)進(jìn)行編碼,生成字典表;
[0011] 步驟S4:將三元組進(jìn)行編碼,生成編碼后的三元組文件;
[0012] 步驟S5:將步驟S4的結(jié)果文件作為此步驟的輸入,根據(jù)步驟S3中的字典表,反轉(zhuǎn)生 成原始RDF數(shù)據(jù)文件。
[0013]進(jìn)一步地,所述步驟S1中,首先將RDF數(shù)據(jù)格式的本體文件進(jìn)行Jena解析,根據(jù)類 關(guān)系生成關(guān)系樹(shù),構(gòu)建類關(guān)系的模型;
[0014] 其中,定義類屬性類型標(biāo)記Flag用以標(biāo)識(shí)所述類和所述屬性,假設(shè)當(dāng)前數(shù)據(jù)為V, 則 f〇 V e 類
[0015] flag 二(
[l v e:屬性
[0016] 定義樹(shù)節(jié)點(diǎn)編碼位數(shù)TreenodeDigit,簡(jiǎn)稱TD,若總節(jié)點(diǎn)數(shù)為M,貝lj m/M、 fl (0 < M < 10)
[0017] TD(M) = ] 7 、
[ID (floor :( M/10 ) ) + 1 (M > 10)
[0018] 定義類編碼TreeClasscode,簡(jiǎn)稱TC,TC由Flag、直系父類個(gè)數(shù)標(biāo)記、父類節(jié)點(diǎn)順序 編碼和節(jié)點(diǎn)順序編碼構(gòu)成;其中,總節(jié)點(diǎn)數(shù)為M,父類節(jié)點(diǎn)順序編碼的位數(shù)與節(jié)點(diǎn)順序編碼 的位數(shù)都為10(1〇;!'以11,1)表示第11層的第1個(gè)節(jié)點(diǎn)4的類節(jié)點(diǎn)編碼汀(11,1)表示第11層的第1 個(gè)節(jié)點(diǎn)A的節(jié)點(diǎn)順序編碼,REPT(0,n)表示為產(chǎn)生n個(gè)0;設(shè)anc(h)表示第h層的類節(jié)點(diǎn)順序編 碼,f(h-l,m)表示節(jié)點(diǎn)A的父類節(jié)點(diǎn)B的節(jié)點(diǎn)順序編碼,則 "x fm:ax{anc(h - 1)} + i (h > 1)
[0019] f (h, i> = < 〇 (h = 0, i = 1)
[0020] TC(h,i)=Flag&IPF&REPT(0,TD(M)-TD(f(h-l,m)))&
[0021] f(h-l,m)&REPT(0,TD(M)-TD(f(h,i)))&f(h,i)
[0022] 當(dāng)IPF>1時(shí),父類節(jié)點(diǎn)順序編碼為所有直系父類的節(jié)點(diǎn)順序編碼的組合;
[0023] 定義屬性編碼TreePropertycode,簡(jiǎn)稱TP,TP由Flag、類編碼、父屬性節(jié)點(diǎn)順序編 碼和節(jié)點(diǎn)順序編碼構(gòu)成;其中,總節(jié)點(diǎn)數(shù)為M,父屬性節(jié)點(diǎn)順序編碼的位數(shù)與節(jié)點(diǎn)順序編碼 的位數(shù)都為TD(M);TP(h,i)表示第h層的第i個(gè)節(jié)點(diǎn)C的屬性節(jié)點(diǎn)編碼,C所屬的類設(shè)為R,其 類節(jié)點(diǎn)編碼表示為扣化^);以114)表示第11層的第1個(gè)節(jié)點(diǎn)(:的節(jié)點(diǎn)順序編碼,1^1'(0,11)表 示為產(chǎn)生n個(gè)0;設(shè)anc(h)表示第h層的屬性節(jié)點(diǎn)順序編碼,f(h-l,m)表示節(jié)點(diǎn)C的父屬性節(jié) 點(diǎn)D的節(jié)點(diǎn)順序編碼,則 /T .、 f:max{ancth ~ 1)} + i (h > 1)
[0024] f (h, 1; = {
[0 (h = 0, i = 1)
[0025] TP(h,i)=Flag&TC(p,r)&REPT(0,TD(M)-TD(f(h-l,m)))
[0026] &f(h-l,m)&REPT(0,TD(M)-TD(f(h,i)))&f(h,i);
[0027] 所述關(guān)系樹(shù)為一棵多叉樹(shù),通過(guò)廣度優(yōu)先算法結(jié)合類編碼的定義,得到屬性關(guān)系 的關(guān)系樹(shù),生成類編碼。
[0028] 進(jìn)一步地,所述步驟S2中,將三元組按類劃分,所述三元組的謂語(yǔ)為RDF本體文件 中的屬性,在構(gòu)建屬性關(guān)系模型中已生成了屬性編碼,則只需要將三元組的主語(yǔ)和賓語(yǔ)按 類劃分;若RDF數(shù)據(jù)中三元組項(xiàng)Triple Item不唯一,貝lj在三元組項(xiàng)Triple Item按類劃分的同 時(shí)對(duì)三元組項(xiàng)Tripleltem進(jìn)行過(guò)濾;
[0029]所述三元組項(xiàng)Tripleltem分類與過(guò)濾算法的具體為:輸入RDF三元組格式文件;輸 出三元組項(xiàng)Tripleltem按類劃分的類文件并且前綴編碼關(guān)系文件;
[0030]若不同的三元組項(xiàng)Tripleltem共享相同的URI,為了確保編碼具有語(yǔ)義相似性,使 得相似URI編碼成相似的數(shù)字,則根據(jù)RDF數(shù)據(jù)文件抽取出相同的前綴;
[0031 ] 該步驟需要重寫MapReduce的MultipleOutputFormat使得輸出的文件能夠按類文 件輸出。
[0032]較佳的,所述三元組項(xiàng)Tripleltem是三元組的主語(yǔ)、謂語(yǔ)或者賓語(yǔ),定義為:
[0033] V {Sj, Pj, 0k ) (1 < /, j, k < n)
[0034] 其中,n表示三元組的總數(shù);
[0035] 若V V e 貝iJvG Tripleltem。 ,.
[0036] 進(jìn)一步地,所述步驟S3中,獲取三元組項(xiàng)Tripleltem分類與過(guò)濾算法的結(jié)果文件, 作為三元組項(xiàng)編碼的輸入文件;在Map階段對(duì)三元組項(xiàng)Tripleltem的類文件進(jìn)行處理,在 Reduce階段對(duì)三元組項(xiàng)Tripleltem進(jìn)行編碼,同時(shí)生成三元組項(xiàng)Triple Item與其編碼的字 典映射表文件,將字典映射表文件存儲(chǔ)到集群的HDFS上;每個(gè)三元組項(xiàng)Tripleltem編碼格 式為:所屬類編碼+前綴編碼+尾數(shù)編碼;
[0037] 所述三元組項(xiàng)Triple Item編碼算法的具體為:輸入三元組項(xiàng)Tripleltem按類劃分 的類文件并且前綴編碼關(guān)系文件;輸出字典映射表文件。
[0038] 進(jìn)一步地,所述步驟S4中,根據(jù)所述三元組項(xiàng)Tripleltem編碼算法中生成的字典 映射表,對(duì)輸入的RDF三元組格式文件中的每一個(gè)三元組進(jìn)行編碼;將三元組項(xiàng)Tripleltem 與字典映射表進(jìn)行連接,從而生成三元組的編碼;
[0039]所述三元組編碼算法的具體為:輸入RDF三元組格式文件與字典映射表文件 [0040]輸出編碼生成的RDF文件。
[0041 ] 進(jìn)一步地,所述步驟S5中,根據(jù)SC0M算法建立了三元組項(xiàng)Tripleltem及其編碼的 字典表,結(jié)合字典表,采用SC0M反轉(zhuǎn)算法將編碼生成的RDF文件反轉(zhuǎn)成原始的RDF文件。 [0042]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明提出的RDF數(shù)據(jù)分布式并行語(yǔ)義編 碼方案,能夠在大規(guī)模數(shù)據(jù)下高效地完成RDF數(shù)據(jù)的分布式并行編碼,并能夠?qū)崿F(xiàn)RDF數(shù)據(jù) 的反轉(zhuǎn);該編碼方案相比現(xiàn)有的編碼方案,在壓縮編碼階段和反轉(zhuǎn)階段都具有顯著優(yōu)勢(shì),并 且該編碼方案能夠提升RDFS規(guī)則推理。
【附圖說(shuō)明】
[0043]圖1是本發(fā)明的方法框架示意圖。
[0044] 圖2為本發(fā)明中LUBM中部分類關(guān)系模型示意圖。
[0045] 圖3為本發(fā)明中LUBM中部分屬性關(guān)系模型
【具體實(shí)施方式】
[0046] 下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
[0047] 本實(shí)施例提供一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法(Semantic Coding with Ontology on MapReduce,簡(jiǎn)稱SC0M)。根據(jù)MapReduce的特點(diǎn)結(jié)合本體構(gòu)建類關(guān)系和屬性關(guān) 系模型,根據(jù)模型對(duì)RDF數(shù)據(jù)進(jìn)行分類編碼,從而能夠?qū)崿F(xiàn)RDF數(shù)據(jù)的分布式并行壓縮編碼, 其中SC0M方案分為壓縮編碼階段和反轉(zhuǎn)階段,如圖1所示,具體包括以下步驟:
[0048]步驟S1:讀入RDF本體文件,構(gòu)建類關(guān)系模型和屬性關(guān)系模型,生成類及其編碼的 映射文件與屬性及其編碼的映射文件;
[0049]步驟S2:讀入RDF數(shù)據(jù)文件,將三元組分割成三元組項(xiàng),將三元組項(xiàng)按類劃分,并刪 除重復(fù)的三元組項(xiàng),同時(shí)生成前綴編碼;對(duì)三元組項(xiàng)進(jìn)行過(guò)濾,用以確保RDF三元組編碼的 一致性,使得同一個(gè)三元組項(xiàng)不會(huì)分配到不同的編碼;
[0050]步驟S3:將三元組項(xiàng)進(jìn)行編碼,生成字典表;
[0051] 步驟S4:將三元組進(jìn)行編碼,生成編碼后的三元組文件;
[0052]步驟S5:將步驟S4的結(jié)果文件作為此步驟的輸入,根據(jù)步驟S3中的字典表,反轉(zhuǎn)生 成原始RDF數(shù)據(jù)文件。
[0053]在本實(shí)施例中,所述步驟S1中,為了能夠使得RDF數(shù)據(jù)的編碼具有語(yǔ)義信息,需要 生成類編碼。由于RDF數(shù)據(jù)中的謂語(yǔ)在本體文件中都有定義,且數(shù)量遠(yuǎn)遠(yuǎn)少于RDF數(shù)據(jù)中的 主語(yǔ)或賓語(yǔ),因而該步驟在對(duì)類進(jìn)行編碼后需要完成屬性的編碼。
[0054]在本實(shí)施例中,給出如下幾個(gè)定義:
[0055] 定義類屬性類型標(biāo)記Flag用以標(biāo)識(shí)所述類和所述屬性,假設(shè)當(dāng)前數(shù)據(jù)為V,則
[0056] Flag = |° V e J li V €屬性
[0057] 定義樹(shù)節(jié)點(diǎn)編碼位數(shù)TreenodeDigit,簡(jiǎn)稱TD,若總節(jié)點(diǎn)數(shù)為M,貝lj f:l (:0.<: M <: .10:)
[0058] TD:(M) = \
[TD (floor ( M/10 ) ) + 1 :(M > 10)
[0059] 定義類編碼TreeClasscode,簡(jiǎn)稱TC,TC由Flag、直系父類個(gè)數(shù)標(biāo)記、父類節(jié)點(diǎn)順序 編碼和節(jié)點(diǎn)順序編碼構(gòu)成;其中,總節(jié)點(diǎn)數(shù)為M,父類節(jié)點(diǎn)順序編碼的位數(shù)與節(jié)點(diǎn)順序編碼 的位數(shù)都為10(1〇;!'以11,1)表示第11層的第1個(gè)節(jié)點(diǎn)4的類節(jié)點(diǎn)編碼汀(11,1)表示第11層的第1 個(gè)節(jié)點(diǎn)A的節(jié)點(diǎn)順序編碼,REPT(0,n)表示為產(chǎn)生n個(gè)0;設(shè)anc(h)表示第h層的類節(jié)點(diǎn)順序編 碼,f(h-l,m)表示節(jié)點(diǎn)A的父類節(jié)點(diǎn)B的節(jié)點(diǎn)順序編碼,則 m [max{anc(h - 1)} + i (h > l)
[0060] I (h, i)= < 1 〇 (h = 0, i = 1)
[0061] TC(h,i)=Flag&IPF&REPT(0,TD(M)-TD(f(h_l,m)))&
[0062] f(h-l,m)&REPT(0,TD(M)-TD(f(h,i)))&f(h,i)
[0063]當(dāng)IPF>1時(shí),父類節(jié)點(diǎn)順序編碼為所有直系父類的節(jié)點(diǎn)順序編碼的組合;
[0064] 定義屬性編碼1'代6?1'(^61^5^0(16,簡(jiǎn)稱1?,1?由?138、類編碼、父屬性節(jié)點(diǎn)順序編 碼和節(jié)點(diǎn)順序編碼構(gòu)成;其中,總節(jié)點(diǎn)數(shù)為M,父屬性節(jié)點(diǎn)順序編碼的位數(shù)與節(jié)點(diǎn)順序編碼 的位數(shù)都為TD(M);TP(h,i)表示第h層的第i個(gè)節(jié)點(diǎn)C的屬性節(jié)點(diǎn)編碼,C所屬的類設(shè)為R,其 類節(jié)點(diǎn)編碼表示為扣化^);以114)表示第11層的第1個(gè)節(jié)點(diǎn)(:的節(jié)點(diǎn)順序編碼,1^1'(0,11)表 示為產(chǎn)生n個(gè)0;設(shè)anc(h)表示第h層的屬性節(jié)點(diǎn)順序編碼,f(h-l,m)表示節(jié)點(diǎn)C的父屬性節(jié) 點(diǎn)D的節(jié)點(diǎn)順序編碼,則 以.、 fmax{anc(h - 1)} + i (h > 1)
[0065] f (h,1) = ^
[0 (h = 0, i = l)
[0066] TP(h,i)=Flag&TC(p,r)&REPT(0,TD(M)-TD(f(h-l,m)))
[0067] &f(h-l,m)&REPT(0,TD(M)-TD(f(h,i)))&f(h,i);
[0068]在本實(shí)施例中,所述步驟S2,首先將RDF數(shù)據(jù)格式的本體文件進(jìn)行Jena解析,根據(jù) 類關(guān)系生成關(guān)系樹(shù)(子類與父類),構(gòu)建類關(guān)系的模型;所述關(guān)系樹(shù)為一棵多叉樹(shù),通過(guò)廣度 優(yōu)先算法結(jié)合類編碼的定義,得到屬性關(guān)系的關(guān)系樹(shù),生成類編碼。
[0069] 以LUBM數(shù)據(jù)集中的類片段為例,假設(shè)根據(jù)樹(shù)節(jié)點(diǎn)編碼位數(shù)的定義所確定的編碼位 數(shù)為2,則構(gòu)建的類關(guān)系模型如圖2所示,其中編碼的第一位表示類標(biāo)記,第二位表示直系父 類個(gè)數(shù)標(biāo)記,第三位和第四位的組合構(gòu)成了當(dāng)前類的直系父類節(jié)點(diǎn)順序編碼,最后兩位構(gòu) 成了當(dāng)前類的節(jié)點(diǎn)順序編碼。其中,Things類為所有類的父類,它的直系父類個(gè)數(shù)標(biāo)記為0 (即 IPF = 0)。
[0070] 考慮到一個(gè)類的父類可能不止一個(gè),假設(shè)Part-timeGraduateStudent類(在職研 究生)的直系父類為圖2類關(guān)系模型中的GraduateStudent類(研究生)和 TeachingAssistant類(助理)。則,Part-timeGraduateStudent類的父類節(jié)點(diǎn)順序編碼為 GraduateStudent類和TeachingAssistant類的順序編碼的組合(即0911)。此時(shí),Part-timeGraduateStudent 類的編碼為02091113,其中,IPF = 2 表不 Part-timeGraduateStudent 類有兩個(gè)直系父類。
[0071] 與構(gòu)建類關(guān)系樹(shù)類似,構(gòu)建出屬性的關(guān)系樹(shù),對(duì)屬性進(jìn)行編碼,與類編碼不同在于 屬性編碼需要添加類編碼信息,使得屬性編碼含有語(yǔ)義信息。
[0072]以LUBM數(shù)據(jù)集中的屬性片段為例,假設(shè)根據(jù)樹(shù)節(jié)點(diǎn)編碼位數(shù)的定義所確定的編碼 位數(shù)為2,結(jié)合圖2中的類編碼,則屬性關(guān)系模型如圖3所示,其中編碼的第一位表示屬性標(biāo) 記,第二位至第七位的組合為當(dāng)前屬性的類編碼(屬性的定義域類),第八位和第九位的組 合為當(dāng)前屬性的直系父屬性節(jié)點(diǎn)順序編碼,最后兩位為當(dāng)前屬性的節(jié)點(diǎn)順序編碼。此外,該 步驟生成了屬性定義域與值域文件。
[0073]采用這種編碼方式,能夠?yàn)橄挛闹蠷DF數(shù)據(jù)的編碼新增語(yǔ)義信息,當(dāng)Tripleltem為 主語(yǔ)或者賓語(yǔ)時(shí),能夠根據(jù)其編碼判斷所屬類信息,當(dāng)Tripleltem為謂語(yǔ)時(shí),能夠獲取當(dāng)前 謂語(yǔ)的父屬性或所屬類的信息。
[0074]在本實(shí)施例中,所述步驟S2中,將三元組按類劃分,所述三元組的謂語(yǔ)為RDF本體 文件中的屬性,在構(gòu)建屬性關(guān)系模型中已生成了屬性編碼,則只需要將三元組的主語(yǔ)和賓 語(yǔ)按類劃分;由于RDF數(shù)據(jù)中三元組項(xiàng)Tripleltem可能不唯一,從而刪除重復(fù)的三元組項(xiàng) Triple Item,確保三元組項(xiàng)Triple Item的唯一性,保證相同的Triple Item不會(huì)分配到不同 的編碼。此外,由于不同三元組項(xiàng)Tripleltem可能共享相同的URI,為了確保編碼具有語(yǔ)義 相似性,使得相似URI編碼成相似的數(shù)字,根據(jù)RDF數(shù)據(jù)文件抽取出相同的前綴(命名空間)。 此外,該步驟需要重寫MapReduce的MultipleOutputFormat使得輸出的文件能夠按類文件 輸出。
[0075]較佳的,所述三元組項(xiàng)Tripleltem是三元組的主語(yǔ)、謂語(yǔ)或者賓語(yǔ),定義為:
[0076] V (毛,為)(1 S -/,J.,jr S 及)
[0077]其中,n表示三元組的總數(shù);
[0078] 若V v e 以,,戶,,.貝iJvGTripleltem。
[0079] 所述三元組項(xiàng)Tripleltem的分類與過(guò)濾算法的具體步驟如下:
[0080] 輸入:RDF三元組格式文件
[0081] 輸出:Tripleltem按類劃分的類文件;前綴編碼關(guān)系文件 [0082]具體偽代碼如下表一所示。
[0083] 表一三元組項(xiàng)Tripleltem的分類與過(guò)濾算法
[0085]
[0086]在本實(shí)施例中,所述步驟S3中,獲取三元組項(xiàng)Tripleltem分類與過(guò)濾算法的結(jié)果 文件,作為三元組項(xiàng)編碼的輸入文件;在Map階段對(duì)三元組項(xiàng)Triple Item的類文件進(jìn)行處 理,在Reduce階段對(duì)三元組項(xiàng)Triple Item進(jìn)行編碼,同時(shí)生成三元組項(xiàng)Triple Item與其編 碼的字典映射表文件,將字典映射表文件存儲(chǔ)到集群的HDFS上;每個(gè)三元組項(xiàng)Tripleltem 編碼格式為:所屬類編碼+前綴編碼+尾數(shù)編碼;
[0087] 所述三元組項(xiàng)Tripleltem編碼算法的具體為:
[0088]輸入:三元組項(xiàng)Tripleltem按類劃分的類文件;前綴編碼關(guān)系文件;
[0089]輸出:字典映射表文件。
[0090]具體偽代碼如下表二所示。
[0091 ] 表二三元組項(xiàng)Tripleltem編碼算法
[0093]
[0094]以LUBM數(shù)據(jù)集中的三元組片段(如表三)為例,描述Tripleltem編碼算法的過(guò)程。 [0095]表三輸入的RDF三元組數(shù)據(jù)片段
[0097]為了下文描述的簡(jiǎn)潔性,根據(jù)表三生成Tripleltem編號(hào)和原始數(shù)據(jù)的映射關(guān)系 表,如表四所列。其中,表三中第3個(gè)三元組的主語(yǔ)與第5個(gè)三元組的賓語(yǔ)相同,則只對(duì)應(yīng)一 個(gè)Tripleltem。
[0098]表四Tripleltem編號(hào)和原始數(shù)據(jù)的映射關(guān)系
[0100]
[0101 ]將表三所列的三元組片段作為三元組項(xiàng)Tripleltem的分類與過(guò)濾算法的輸入得 到Tripleltem的類文件與前綴編碼關(guān)系文件,假設(shè)獲取的前綴編碼關(guān)系文件如表五所列。
[0102]表五所列三元組片段前綴編碼信息
[0104] 將三元組項(xiàng)Triple Item的分類與過(guò)濾算法的結(jié)果文件作為Triple Item編碼算法 的輸入,并且的類(屬性)關(guān)系模型可獲取Tripleltem的編碼。假設(shè)閾值a表示Tripleltem編 碼中尾數(shù)位數(shù),若a = 3,根據(jù)表三的三元組片段,結(jié)合表四和表五所得到的Tripleltem編碼 信息如表六所列。
[0105] 表六Tripleltem編碼信息
[0107]在本實(shí)施例中,所述步驟S4中,根據(jù)所述三元組項(xiàng)Tripleltem編碼算法中生成的 字典映射表,對(duì)輸入的RDF三元組格式文件中的每一個(gè)三元組進(jìn)行編碼;將三元組項(xiàng) Tripleltem與字典映射表進(jìn)行連接,從而生成三元組的編碼;
[0108]所述三元組編碼算法的具體為:
[0109] 輸入:RDF三元組格式文件與字典映射表文件;
[0110] 輸出:編碼生成的RDF文件。
[0111] 具體偽代碼如下表七所示。
[0112] 表七三元組編碼算法
[0113]
[0114] 在本實(shí)施例中,所述步驟S5中,SC0M算法是一個(gè)無(wú)損壓縮算法,SC0M中的反轉(zhuǎn)算法 能夠快速的完全恢復(fù)編碼后的RDF數(shù)據(jù)文件為原始數(shù)據(jù)。由于SC0M算法建立了 Tripleltem 及其編碼的字典表,結(jié)合字典表,可以很容易地將編碼生成的RDF文件反轉(zhuǎn)成原始的RDF文 件。為了更加明確SC0M反轉(zhuǎn)算法,以偽代碼形式描述如下表八所示:
[0115] 表八SC0M反轉(zhuǎn)算法
[0117] 本實(shí)施例提出的RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方案,能夠在大規(guī)模數(shù)據(jù)下高效地 完成RDF數(shù)據(jù)的分布式并行編碼,并能夠?qū)崿F(xiàn)RDF數(shù)據(jù)的反轉(zhuǎn)。實(shí)驗(yàn)表明,該編碼方案相比現(xiàn) 有的編碼方案,在壓縮編碼階段和反轉(zhuǎn)階段都具有顯著優(yōu)勢(shì),并且該編碼方案能夠提升 RDFS規(guī)則推理。
[0118] 以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專利范圍所做的均等變化與 修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
【主權(quán)項(xiàng)】
1. 一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,其特征在于:具體包括以下步驟: 步驟S1:讀入RDF本體文件,構(gòu)建類關(guān)系模型和屬性關(guān)系模型,生成類及其編碼的映射 文件與屬性及其編碼的映射文件; 步驟S2:讀入RDF數(shù)據(jù)文件,將三元組分割成三元組項(xiàng),將三元組項(xiàng)按類劃分,并刪除重 復(fù)的三元組項(xiàng),同時(shí)生成前綴編碼;對(duì)三元組項(xiàng)進(jìn)行過(guò)濾,用以確保RDF三元組編碼的一致 性,使得同一個(gè)三元組項(xiàng)不會(huì)分配到不同的編碼; 步驟S3:將三元組項(xiàng)進(jìn)行編碼,生成字典表; 步驟S4:將三元組進(jìn)行編碼,生成編碼后的三元組文件; 步驟S5:將步驟S4的結(jié)果文件作為此步驟的輸入,根據(jù)步驟S3中的字典表,反轉(zhuǎn)生成原 始RDF數(shù)據(jù)文件。2. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,其特征在于:所述步 驟S1中,首先將RDF數(shù)據(jù)格式的本體文件進(jìn)行Jena解析,根據(jù)類關(guān)系生成關(guān)系樹(shù),構(gòu)建類關(guān) 系的t吳型; 其中,定義類屬性類型標(biāo)記Flag用以標(biāo)識(shí)所述類和所述屬性,假設(shè)當(dāng)前數(shù)據(jù)為v,則定義樹(shù)節(jié)點(diǎn)編碼位數(shù)TreenodeDigit,簡(jiǎn)稱TD,若總節(jié)點(diǎn)數(shù)為M,則定義類編碼TreeClasscode,簡(jiǎn)稱TC,TC由Flag、直系父類個(gè)數(shù)標(biāo)記、父類節(jié)點(diǎn)順序編碼 和節(jié)點(diǎn)順序編碼構(gòu)成;其中,總節(jié)點(diǎn)數(shù)為M,父類節(jié)點(diǎn)順序編碼的位數(shù)與節(jié)點(diǎn)順序編碼的位 數(shù)都為TD(M);TC(h,i)表示第h層的第i個(gè)節(jié)點(diǎn)A的類節(jié)點(diǎn)編碼;f(h,i)表示第h層的第i個(gè) 節(jié)點(diǎn)A的節(jié)點(diǎn)順序編碼,REPT(0,n)表示為產(chǎn)生η個(gè)0;設(shè)anc(h)表示第h層的類節(jié)點(diǎn)順序編 碼,f(h-l,m)表示節(jié)點(diǎn)A的父類節(jié)點(diǎn)B的節(jié)點(diǎn)順序編碼,則當(dāng)IPF>1時(shí),父類節(jié)點(diǎn)順序編碼為所有直系父類的節(jié)點(diǎn)順序編碼的組合; 定義屬性編碼TreePropertycode,簡(jiǎn)稱TP,TP由Flag、類編碼、父屬性節(jié)點(diǎn)順序編碼和 節(jié)點(diǎn)順序編碼構(gòu)成;其中,總節(jié)點(diǎn)數(shù)為M,父屬性節(jié)點(diǎn)順序編碼的位數(shù)與節(jié)點(diǎn)順序編碼的位 數(shù)都為TD(M);TP(h,i)表示第h層的第i個(gè)節(jié)點(diǎn)C的屬性節(jié)點(diǎn)編碼,C所屬的類設(shè)為R,其類節(jié) 點(diǎn)編碼表示為TC(p,r);f(h,i)表示第h層的第i個(gè)節(jié)點(diǎn)C的節(jié)點(diǎn)順序編碼,REPT(0,n)表示 為產(chǎn)生η個(gè)0;設(shè)anc(h)表示第h層的屬性節(jié)點(diǎn)順序編碼,f(h-l,m)表示節(jié)點(diǎn)C的父屬性節(jié)點(diǎn) D的節(jié)點(diǎn)順序編碼,則所述關(guān)系樹(shù)為一棵多叉樹(shù),通過(guò)廣度優(yōu)先算法結(jié)合類編碼的定義,得到屬性關(guān)系的關(guān) 系樹(shù),生成類編碼。3. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,其特征在于:所述步 驟S2中,將三元組按類劃分,所述三元組的謂語(yǔ)為RDF本體文件中的屬性,在構(gòu)建屬性關(guān)系 模型中已生成了屬性編碼,則只需要將三元組的主語(yǔ)和賓語(yǔ)按類劃分;若RDF數(shù)據(jù)中三元組 項(xiàng)Tripleltem不唯一,則在三元組項(xiàng)Tripleltem按類劃分的同時(shí)對(duì)三元組項(xiàng)Tripleltem進(jìn) 行過(guò)濾; 所述三元組項(xiàng)Tripleltem的分類與過(guò)濾算法具體為:輸入RDF三元組格式文件;輸出三 元組項(xiàng)Tripleltem按類劃分的類文件并且前綴編碼關(guān)系文件; 若不同的三元組項(xiàng)Tripleltem共享相同的URI,為了確保編碼具有語(yǔ)義相似性,使得相 似URI編碼成相似的數(shù)字,則根據(jù)RDF數(shù)據(jù)文件抽取出相同的前綴; 該步驟需要重寫MapReduce的Mul tipleOutputFormat使得輸出的文件能夠按類文件輸 出。4. 根據(jù)權(quán)利要求3所述的一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,其特征在于:所述三 元組項(xiàng)Tr i p 1 e 11 em是三元組的主語(yǔ)、謂語(yǔ)或者賓語(yǔ),定義為:其中,η表示三元組的總數(shù);5. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,其特征在于:所述步 驟S3中,獲取三元組項(xiàng)Tripleltem分類與過(guò)濾算法的結(jié)果文件,作為三元組項(xiàng)編碼的輸入 文件;在Map階段對(duì)三元組項(xiàng)Triple Item的類文件進(jìn)行處理,在Reduce階段對(duì)三元組項(xiàng) Triple Item進(jìn)行編碼,同時(shí)生成三元組項(xiàng)Triple Item與其編碼的字典映射表文件,將字典 映射表文件存儲(chǔ)到集群的HDFS上;每個(gè)三元組項(xiàng)Tripleltem編碼格式為:所屬類編碼+前綴 編碼+尾數(shù)編碼; 所述三元組項(xiàng)Tripleltem編碼算法的具體為:輸入三元組項(xiàng)Tripleltem按類劃分的類 文件并且前綴編碼關(guān)系文件;輸出字典映射表文件。6. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,其特征在于:所述步 驟S4中,根據(jù)所述三元組項(xiàng)Tripleltem編碼算法中生成的字典映射表,對(duì)輸入的RDF三元組 格式文件中的每一個(gè)三元組進(jìn)行編碼;將三元組項(xiàng)Tripleltem與字典映射表進(jìn)行連接,從 而生成三元組的編碼; 所述三元組編碼算法的具體為:輸入RDF三元組格式文件與字典映射表文件 輸出編碼生成的RDF文件。7. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式并行語(yǔ)義編碼方法,其特征在于:所述步 驟S5中,根據(jù)SCOM算法建立了三元組項(xiàng)Tripleltem及其編碼的字典表,結(jié)合字典表,采用 SC0M反轉(zhuǎn)算法將編碼生成的RDF文件反轉(zhuǎn)成原始的RDF文件。
【文檔編號(hào)】G06F17/30GK105930419SQ201610242787
【公開(kāi)日】2016年9月7日
【申請(qǐng)日】2016年4月19日
【發(fā)明人】汪璟玢, 鄭翠春
【申請(qǐng)人】福州大學(xué)