Rdf數(shù)據(jù)分布式語(yǔ)義并行推理方法
【專利摘要】本發(fā)明涉及一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,首先依據(jù)本體文件和RDFS/OWL規(guī)則,構(gòu)建傳遞閉包關(guān)系矩陣(Transitive closure relation matrix,簡(jiǎn)稱TRM)和連接變量信息,進(jìn)而生成規(guī)則標(biāo)記;然后根據(jù)連接變量的類型對(duì)RDFS/OWL規(guī)則進(jìn)行分類,分別設(shè)計(jì)不同的推理方案,結(jié)合MapReduce計(jì)算框架并行地完成RDFS/OWL規(guī)則的推理。通過(guò)連接變量信息和規(guī)則標(biāo)記對(duì)實(shí)例三元組進(jìn)行過(guò)濾,能夠減少大量無(wú)用的三元組數(shù)據(jù)在分布式系統(tǒng)中的傳輸損耗。通過(guò)構(gòu)造傳遞閉包矩陣能夠減少推理的迭代次數(shù),提高推理的效率。最后,根據(jù)推理結(jié)果,實(shí)時(shí)地刪除重復(fù)的三元組數(shù)據(jù),以進(jìn)一步提高后續(xù)迭代推理的效率。通過(guò)本發(fā)明在數(shù)據(jù)量增大的情況下能夠高效且正確的實(shí)現(xiàn)RDFS/OWL規(guī)則的推理。
【專利說(shuō)明】
RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及語(yǔ)義網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法。
【背景技術(shù)】
[0002] 語(yǔ)義萬(wàn)維網(wǎng)中的RDF和0WL標(biāo)準(zhǔn)已在各個(gè)領(lǐng)域有著廣泛的應(yīng)用,如一般知識(shí) (DBpedia)、醫(yī)療生命科學(xué)(L0DD)和生物信息學(xué)(UniProt),截至2014年9月,數(shù)據(jù)的總量已 達(dá)650億條三元組。隨著語(yǔ)義網(wǎng)中數(shù)據(jù)的急速增長(zhǎng),集中式環(huán)境由于內(nèi)存的限制,不適用于 對(duì)大規(guī)模數(shù)據(jù)的推理;研究RDFS/0WL分布式并行推理是目前較新的一個(gè)領(lǐng)域。如模糊pD*的 推理、RDFS并行推理、分布式規(guī)則匹配系統(tǒng)、分布式推理引擎WebPIE、分布式推理引擎YARM。 這些推理的方法不夠高效。這些推理的方案大部分結(jié)合了MapReduce計(jì)算框架,通過(guò)RDFS/ 0WL推理規(guī)則對(duì)數(shù)據(jù)進(jìn)行推理。
[0003] 隨著語(yǔ)義網(wǎng)中數(shù)據(jù)的急速增長(zhǎng),如何高效地進(jìn)行大數(shù)據(jù)的推理是近兩年的研究熱 點(diǎn),但還處于研究的初始階段。目前比較成熟的分布式推理引擎為WebPIE,雖然滿足大數(shù)據(jù) 的并行推理,但是由于WebPIE針對(duì)每一條規(guī)則啟用一個(gè)或者多個(gè)MapReduce任務(wù)進(jìn)行推理, 而MapReduce Job的啟動(dòng)相對(duì)耗時(shí),因此隨著RDFS/0WL推理規(guī)則的增加,推理的效率受到了 限制。分布式推理引擎YARM采用了合理的數(shù)據(jù)劃分模型,優(yōu)化了規(guī)則的執(zhí)行次序,實(shí)現(xiàn)了一 種新的基于MapReduce的并行化推理算法,使得推理在一次MapReduce任務(wù)內(nèi)即可完成RDFS 規(guī)則的推理。但該算法不適用于復(fù)雜的OWL Horst規(guī)則的推理。此外,當(dāng)某一規(guī)則產(chǎn)生的新 三元組重復(fù)時(shí),YARM會(huì)存在過(guò)多的冗余計(jì)算且產(chǎn)生無(wú)用數(shù)據(jù)。為了解決上述RDFS/0WL分布 式推理算法存在的問(wèn)題,本文提出了SPRM算法(Semantic information Parallel Reasoning on MapReduce),該算法在數(shù)據(jù)量增大的情況下能夠高效且正確的實(shí)現(xiàn)RDFS/ OWL規(guī)則的推理。
[0004] 集中式環(huán)境下無(wú)法滿足海量數(shù)據(jù)的需求,而分布式環(huán)境下的推理不夠高效,推理 的并行化。目前存在分布式推理引擎雖然能夠?qū)崿F(xiàn)數(shù)據(jù)的并行推理,但是MapReduce任務(wù)啟 動(dòng)個(gè)數(shù)多且耗時(shí),存在過(guò)多的冗余計(jì)算且產(chǎn)生無(wú)用數(shù)據(jù),導(dǎo)致它無(wú)法在數(shù)據(jù)量增大的情況 下能夠高效且正確的實(shí)現(xiàn)RDFS/0WL規(guī)則的推理。
[0005] 需要解決的技術(shù)問(wèn)題:1.解決分布式環(huán)境中如何保證RDFS/0WL分布式推理算法實(shí) 現(xiàn)分布后推理數(shù)據(jù)的正確性。2.結(jié)合提出的分布式方案提出了對(duì)應(yīng)的并行推理方案,從而 滿足大規(guī)模數(shù)據(jù)的分布式并行推理的需求。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本發(fā)明的目的是提供一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,在數(shù)據(jù)量 增大的情況下能夠高效且正確的實(shí)現(xiàn)RDFS/0WL規(guī)則的推理。
[0007] 本發(fā)明采用以下方案實(shí)現(xiàn):一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,具體包括以下 步驟:
[0008] 步驟S1:加載模式三元組,構(gòu)建TRM,同時(shí)根據(jù)RDFS/0WL規(guī)則,構(gòu)建每條規(guī)則中可能 連接的連接變量信息;
[0009] 步驟S2:根據(jù)TRM和連接變量信息,生成規(guī)則標(biāo)記模型;
[0010] 步驟S3:將連接變量分成單變量和多變量?jī)煞N形式,根據(jù)TRM和連接變量的類型, 將RDFS/0WL規(guī)則分成5種類型,分別設(shè)計(jì)不同的推理方案;
[0011] 步驟S4:對(duì)Flag_Rulem= 1的規(guī)則執(zhí)行RDFS/0WL規(guī)則的并行推理,并輸出中間結(jié) 果;
[0012] 步驟S5:刪除中間結(jié)果中的重復(fù)三元組;
[0013] 步驟S6:如果中間結(jié)果中包含新的SchemaTriple,貝lj更新TRM和規(guī)則標(biāo)記模型,返 回步驟S4;否則,結(jié)束。
[0014] 進(jìn)一步地,所述步驟S1中,對(duì)三元組的相關(guān)參數(shù)進(jìn)行定義如下:
[0015] 定義1 :模式三元組SchemaTriple指三元組的主語(yǔ)謂語(yǔ)和賓語(yǔ)都在本體文件 OntologyFile中有定義,即為:
[0016] ¥ (.9,., lJr 0k) (1 <: i, j, k < n)
[0017] 其中,n表示模式三元組的總數(shù);
[0018] 若vG {Si,Pj,Ok},▽ k e. OntologyFile 貝lj,
[0019] (Si,Pj,0k) GSchemaTriple (1)
[0020] 定義2 :實(shí)例三元組InstanceTriple指主語(yǔ)謂語(yǔ)和賓語(yǔ)至少有一個(gè)在本體文件 OntologyFile中未定義,是具體的實(shí)例,即為:
[0021] V {Sn Pj:, 0k) (1 < /, J, k < n)
[0022] 其中,n表示實(shí)例三元組的總數(shù);
[0023] 若vG {Si,Pj,0k},3 v. g. OntologyFile貝lj,
[0024] (Si,Pj,0k) G InstanceTriple
[0025] 定義3:三元組類型標(biāo)記Flag_TripleType,用于標(biāo)識(shí)模式三元組與實(shí)例三元組,所 述三元組類型標(biāo)記Flag_TripleType定義如下:
[0026] V F G ( {S.-, P;, 〇k ) 1 < I, J, k < ll)
[0027]其中,n表示三元組的總數(shù).則, ! 1 (v g SchemaTriple')
[0028] FlagTripIcTypc = <! / ; - ! 0 (v g InstanceTriple)
[0029] 三元組項(xiàng)類型標(biāo)記Triplelten^Flag,用于標(biāo)識(shí)三元組項(xiàng)中的主語(yǔ)或者賓語(yǔ),所述 三元組項(xiàng)類型標(biāo)記定義如下:
[0030] V (Sf, Pjy (1 < i, i, 1 < n)
[0031] 其中,n表示三元組的總數(shù)。若VG {Si,Pj,0k},則
[l (f e l^.j)
[0032] Xripleltem Flag = < - [0 (v e {^k})
[0033]定義4:模式三元組列表SchemaList,用于獲取相同謂語(yǔ)或者賓語(yǔ)的模式三元組集 合,所述模式三元組列表SchemaList定義如下:
[0034] ¥ (S.^P^O^) e SchemaTriple :(l < i,J:, k < n)
[0035]其中,n表示模式三元組的總數(shù),則,
[0036] SchemaList = Om_list U Pt_list
[0037]其中,0m_list表示滿足謂語(yǔ){rdf: type}的且具有相同賓語(yǔ)的三元組集合,以 該賓語(yǔ)命名;Pt_list表示滿足謂語(yǔ)巧0 丨的所有具有相同謂語(yǔ)的三元組集合, 以該謂語(yǔ)命名,具體定義如下:
[0038] 0m_list= {(Si ,Pj ,0k) | Pj G {rdf: type}&k=m}
[0039] Pt_list= {(S,, P;, Oh) \ P} 0 {rrlf : typSi k j = t} i>
[0040] 進(jìn)一步地,所述步驟SI中,構(gòu)建TRM時(shí)進(jìn)行定義如下:
[0041] 定義5:有向圖的傳遞閉包定義為:一個(gè)n頂點(diǎn)有向圖的傳遞閉包可以定義為一個(gè)n 階布爾矩陣T= {tik} (Ki,k<n),若頂點(diǎn)i到頂點(diǎn)k存在一條有效路徑,貝ljtik=l,否則tik = 0〇
[0042] 定義6:傳遞閉包關(guān)系矩陣Transitive closure relation matrix,簡(jiǎn)稱為T(mén)RM,結(jié) 合定義4、定義5和WarShall算法構(gòu)建TRM;TRM表示有向圖的傳遞閉包中,以類或?qū)傩詾轫?點(diǎn),以三元組的謂語(yǔ)為關(guān)系的布爾矩陣T= {tlk};
[0043] 謂語(yǔ)為Pj的SchemaTriple的關(guān)系矩陣表示為Pj_TRM,其中PjG {subClassOf, subPropertyOf,sameAs,equivalentClass,equivalentProperty},
[0044] 若3 (心戶"4) e SchemaTriple (1 < -/,丄々 < 貝!jPj_TRM.tik=1,表示謂語(yǔ) f 為Pj的SchemaTr ipl e的主語(yǔ)Si到賓語(yǔ)0k存在直接關(guān)系,否則Pj_TRM. tik = 0;
[0045]其中,TRM分為類關(guān)系矩陣CTRM和屬性關(guān)系矩陣PTRM;其中,CTRM根據(jù)謂語(yǔ) subClassOf、equivalentClass、sameAs 分別定義 subPropertyOf、equivalentProperty、sameAs分別定義SP_TRM、EP_TRM、SAP_TRM;由于謂語(yǔ) 為sameAs的SchemaTr ipl e含類關(guān)系和屬性關(guān)系,TRM的構(gòu)建中將關(guān)系分開(kāi),分別構(gòu)建SAC_ TRM和SAP_TRM。
[0046]所述構(gòu)建TRM具體包括以下步驟:
[0047] 步驟SI 1:結(jié)合定義4,分別獲取所有的SchemaTriple中謂語(yǔ)為subPropertyOf和 equivalentProperty的模式三元組數(shù)據(jù),根據(jù)獲取的SchemaTriple并結(jié)合定義6得到以 subPropertyOf 和以 equivalentProperty 為關(guān)系的布爾矩陣;
[0048] 步驟S12:根據(jù)WarShall算法獲取所有的以subPropertyOf和以 equivalentProperty為關(guān)系的布爾矩陣中傳遞關(guān)系值,從而生成傳遞閉包關(guān)系矩陣SP_ TRM、EP_TRM,完成了 SP_TRM 和 EP_TRM 的構(gòu)建。
[0049] 進(jìn)一步地,所述步驟S1中,構(gòu)建連接變量信息時(shí)進(jìn)行定義如下:
[0050] 定義7:連接變量LinkVar為在RDFS/0WL規(guī)則中用于連接兩個(gè)前件的模式三元組 項(xiàng),根據(jù)規(guī)則描述,連接變量的數(shù)量大于1;將每一條規(guī)則的連接變量信息以〈key, Value>的 形式存儲(chǔ)在表Rulem_Table中,其中key存儲(chǔ)該規(guī)則所有用于前件連接的模式三元組項(xiàng), value存儲(chǔ)該規(guī)則結(jié)論部分的模式三元組項(xiàng)。
[00511進(jìn)一步地,所述步驟S3中具體為:采用SPRM算法根據(jù)TRM和連接變量的類型,對(duì) RDFS/OWL規(guī)則進(jìn)行分類,引用RDFS規(guī)則時(shí)采用RDFS-規(guī)則編號(hào)的形式,引用OWL Horst規(guī)則 時(shí)采用OWL-規(guī)則編號(hào)的形式;給每條規(guī)則分配一個(gè)規(guī)則名稱標(biāo)記,規(guī)則名稱標(biāo)記即為該規(guī) 則所對(duì)應(yīng)的名稱;
[0052] RDFS/0WL規(guī)則的5種類型的如下:
[0053] 類型1 :SchemaTriple與SchemaTriple組合的規(guī)則,采用TRM直接進(jìn)行推理;
[0054] 類型2: SchemaTriple與InstanceTriple組合的規(guī)則,其根據(jù)TRM進(jìn)行推理,無(wú)需結(jié) 合連接變量信息;
[0055] 類型3: SchemaTriple與InstanceTriple組合的規(guī)則,其連接變量信息為單變量, 需要結(jié)合TRM進(jìn)行推理;
[0056] 類型4: SchemaTriple與InstanceTriple組合的規(guī)則,其連接變量信息為單變量, 無(wú)需結(jié)合TRM進(jìn)行推理;
[0057] 類型5: SchemaTriple與InstanceTriple組合的規(guī)則,其連接變量信息為多變量; [0058]對(duì)任意一條規(guī)則的定義為:假設(shè)第m條規(guī)則表示如下:
[0059] Rulem:Cml,Cm2, ,Cmk, ,Cmn^ReSUlt
[0060] 定義規(guī)則標(biāo)記Flag_Rulem,用于標(biāo)記該規(guī)則是否為不可能激活的規(guī)則;
[0061]當(dāng)為Flag_Rulem=0,則意味著不存在滿足該規(guī)則的條件,無(wú)需激活該規(guī)則;假設(shè)Pj 為 Rulem 中某個(gè)前件的謂語(yǔ),其中 Pj G {subClassOf, subPropertyOf,sameAs, equivalentClass,equivalentProperty},Pj所對(duì)應(yīng)的TRM設(shè)為Pj_TRM;
[0062]結(jié)合定義6和定義7,規(guī)則標(biāo)記Flag_Rulem根據(jù)RDFS/OWL規(guī)則的分類定義如下:
[0063] l)若RulemG{類型l,類型2},則 fi (3 p^jm. t,ik = i)
[0064] Flag_Rulem = i "
[0 ( Y /^_TRM, tik = 0 )
[0065] 2)若RulemG{類型3,類型4,類型5},則 fl (Rule Table ^ null )
[0066] Flag-Rtxl:em =. { 丨1--
[0 (Rulem-Table = null )
[0067] 進(jìn)一步地,所述步驟S4中,結(jié)合MapReduce計(jì)算框架并行完成RDFS/OWL規(guī)則的推 理,在構(gòu)建TRM階段就完成類型1中規(guī)則的推理,在RDFS/0WL規(guī)則的并行推理階段針對(duì)類型 2、類型3、類型4和類型5進(jìn)行分布式的并行推理,從而在一次MapReduce任務(wù)中實(shí)現(xiàn)全部規(guī) 則的一次推理;
[0068] 對(duì)于類型2、類型3以及類型4的規(guī)則,根據(jù)規(guī)則標(biāo)記模型和連接變量信息,經(jīng)過(guò)Map 階段的并行推理,即可獲取推理結(jié)果三元組數(shù)據(jù);對(duì)于類型5的規(guī)則,通過(guò)對(duì)滿足推理?xiàng)l件 的數(shù)據(jù)進(jìn)行冗余輸出以確保后續(xù)并行數(shù)據(jù)推理的正確性,即將滿足同一規(guī)則的實(shí)例三元組 輸出設(shè)置為相同的鍵key,以確保Reduce階段中,同一規(guī)則中的所有規(guī)則前件能夠根據(jù)連接 變量完成連接并輸出結(jié)果;
[0069] Map階段的RDFS/0WL規(guī)則的并行推理算法具體為:
[0070] 輸入:key為行號(hào);value為實(shí)例三元組
[0071]輸出:key為推理結(jié)果三元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶 標(biāo)記的三元組項(xiàng);
[0072] Reduce階段的RDFS/0WL規(guī)則并行推理算法具體為:
[0073]輸入:刪除重復(fù)的三元組數(shù)據(jù)階段的輸出結(jié)果 [0074] 輸出:key為輸出三元組;value為任意值。
[0075] 進(jìn)一步地,所述步驟S5中,通過(guò)連接變量信息和規(guī)則標(biāo)記對(duì)實(shí)例三元組進(jìn)行過(guò)濾, 減少大量無(wú)用的三元組數(shù)據(jù)在分布式系統(tǒng)中的傳輸損耗,通過(guò)構(gòu)造傳遞閉包矩陣減少推理 的迭代次數(shù),用以提高推理的效率;根據(jù)推理結(jié)果,實(shí)時(shí)地刪除重復(fù)的三元組數(shù)據(jù),用以進(jìn) 一步提尚后續(xù)迭代推理的效率;
[0076]在每個(gè)Map之后執(zhí)行combiner以及每次推理后刪除重復(fù)的三元組數(shù)據(jù),
[0077]其中,combiner為刪除map階段輸出的重復(fù)數(shù)據(jù),具體為:
[0078]輸入:Map階段的RDFS/0WL規(guī)則的并行推理算法的輸出結(jié)果
[0079]輸出:key為推理結(jié)果三元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶 標(biāo)記的三元組項(xiàng);
[0080]每次推理后刪除重復(fù)三元組數(shù)據(jù)的算法具體為:
[0081 ] 輸入:key為行號(hào);value為三元組 [0082]輸出:輸出去重后的三元組。
[0083]本發(fā)明提出的分布式并行推理首先依據(jù)本體文件和RDFS/0WL規(guī)則,構(gòu)建傳遞閉包 關(guān)系矩陣和連接變量信息,進(jìn)而生成規(guī)則標(biāo)記;然后根據(jù)連接變量的類型對(duì)RDFS/0WL規(guī)則 進(jìn)行分類,分別設(shè)計(jì)不同的推理方案,結(jié)合MapReduce計(jì)算框架并行地完成RDFS/0WL規(guī)則的 推理。通過(guò)連接變量信息和規(guī)則標(biāo)記對(duì)實(shí)例三元組進(jìn)行過(guò)濾,能夠減少大量無(wú)用的三元組 數(shù)據(jù)在分布式系統(tǒng)中的傳輸損耗。通過(guò)構(gòu)造傳遞閉包矩陣能夠減少推理的迭代次數(shù),提高 推理的效率。最后,根據(jù)推理結(jié)果,實(shí)時(shí)地刪除重復(fù)的三元組數(shù)據(jù),以進(jìn)一步提高后續(xù)迭代 推理的效率。通過(guò)本方案在數(shù)據(jù)量增大的情況下能夠高效且正確的實(shí)現(xiàn)RDFS/0WL規(guī)則的推 理。
[0084]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn):
[0085] 1、本發(fā)明構(gòu)建了 TRM,減少了推理的迭代次數(shù)。
[0086] 2、本發(fā)明采用高效的過(guò)濾機(jī)制,減少了無(wú)用計(jì)算和網(wǎng)絡(luò)傳輸?shù)拈_(kāi)銷。
[0087] 3、本發(fā)明提升了推理的效率。
【附圖說(shuō)明】
[0088]圖1是本發(fā)明的SPRM算法的總體框架圖。
[0089] 圖2為本發(fā)明的RDFS規(guī)則。
[0090] 圖3為本發(fā)明的OWL Horst規(guī)則。
[0091] 圖4為本發(fā)明的構(gòu)建TRM示例圖。
[0092] 圖5為本發(fā)明的構(gòu)建RDFS/0WL規(guī)則的連接變量信息圖。
[0093] 圖6為本發(fā)明的連接變量具體的模式數(shù)據(jù)圖。
[0094] 圖7為本發(fā)明的連接變量存儲(chǔ)表中的模式數(shù)據(jù)圖。
[0095]圖8為本發(fā)明的SPRM算法在第t次迭代中的推理框架圖。
【具體實(shí)施方式】
[0096]下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
[0097]本實(shí)施例提供一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,如圖1所示,具體包括以下 步驟:
[0098] 步驟S1:加載模式三元組,構(gòu)建TRM,同時(shí)根據(jù)RDFS/0WL規(guī)則,構(gòu)建每條規(guī)則中可能 連接的連接變量信息;
[0099]步驟S2:根據(jù)TRM和連接變量信息,生成規(guī)則標(biāo)記模型;
[0100] 步驟S3:將連接變量分成單變量和多變量?jī)煞N形式,根據(jù)TRM和連接變量的類型, 將RDFS/0WL規(guī)則分成5種類型,分別設(shè)計(jì)不同的推理方案;
[0101] 步驟S4:對(duì)Flag_Rulem= 1的規(guī)則執(zhí)行RDFS/0WL規(guī)則的并行推理,并輸出中間結(jié) 果;
[0102] 步驟S5:刪除中間結(jié)果中的重復(fù)三元組;
[0103] 步驟S6:如果中間結(jié)果中包含新的SchemaTriple,則更新TRM和規(guī)則標(biāo)記模型,返 回步驟S4;否則,結(jié)束。
[0104]在本實(shí)施例中,所述步驟S1中,對(duì)三元組的相關(guān)參數(shù)進(jìn)行定義如下:
[0105] 定義1 :模式三元組SchemaTriple指三元組的主語(yǔ)謂語(yǔ)和賓語(yǔ)都在本體文件 OntologyFile中有定義,即為:
[0106] V (5;, Pj, ();<) (1 < 1, J, k < n)
[0107] 其中,n表示模式三元組的總數(shù);
[0108] 若v e {Si,Pj,Ok},V k e QntologyFile ?則,
[0109] (Si,Pj,0k) ^SchemaTriple (1)
[0110] 定義2 :實(shí)例三元組InstanceTriple指主語(yǔ)謂語(yǔ)和賓語(yǔ)至少有一個(gè)在本體文件 OntologyFile中未定義,是具體的實(shí)例,即為:
[0111] V (1 < i,j,k < n)
[0112] 其中,n表示實(shí)例三元組的總數(shù);
[0113] 若vG {Si,Pj,0k},3 v g OntologyFile ,貝IJ,
[0114] (Si,Pj,0k) G InstanceTriple
[0115] 定義3:三元組類型標(biāo)記Flag_TripleType,用于標(biāo)識(shí)模式三元組與實(shí)例三元組,所 述三元組類型標(biāo)記Flag_TripleType定義如下:
[0116] V v g {(S P ;, 0,) | 1 < itj,k < n)
[0117] 其中,n表示三元組的總數(shù).則, (1 (ve SchemaTriple)
[0118] Flag-TripleType =. ; ! 0 (v g InstanceTriple)
[0119] 三元組項(xiàng)類型標(biāo)記Triple I tem_Flag,用于標(biāo)識(shí)三元組項(xiàng)中的主語(yǔ)或者賓語(yǔ),所述 三元組項(xiàng)類型標(biāo)記定義如下:
[0120] V (Sf, Pj, 0k) (1 < i, j, k < n)
[0121] 其中,n表示三元組的總數(shù)。若vg {Si,Pj,〇k},則 fl (V e {5\})
[0122] TripleltemF'lag = < - [0' (v e {<?k})
[0123] 定義4:模式三元組列表SchemaList,用于獲取相同謂語(yǔ)或者賓語(yǔ)的模式三元組集 合,所述模式三元組列表SchemaList定義如下:
[0124] V e SchemaTriple (1 < i,j,k < n)
[0125] 其中,n表示模式三元組的總數(shù),則,
[0126] SchemaList = Om_list U Pt_list
[0127] 其中,0m_list表示滿足謂語(yǔ){rdf: type}的且具有相同賓語(yǔ)的三元組集合,以 該賓語(yǔ)命名;Pt_list表示滿足謂語(yǔ)乃€ : 的所有具有相同謂語(yǔ)的三元組集合, 以該謂語(yǔ)命名,具體定義如下:
[0128] 0m_list= {(Si ,Pj ,0k) | Pj G {rdf: type}&k=m}
[0129] {(Si; Pp 〇J) | P} € \rdf: tvp^ k j = t]
[0130] 在本實(shí)施例中,所述步驟SI中,構(gòu)建TRM時(shí)進(jìn)行定義如下:
[0131] 定義5:有向圖的傳遞閉包定義為:一個(gè)n頂點(diǎn)有向圖的傳遞閉包可以定義為一個(gè)n 階布爾矩陣T= {tik} (Ki,k<n),若頂點(diǎn)i到頂點(diǎn)k存在一條有效路徑,貝ljtik=l,否則tik = 0〇
[0132] 定義6:傳遞閉包關(guān)系矩陣Transitive closure relation matrix,簡(jiǎn)稱為T(mén)RM,結(jié) 合定義4、定義5和WarShall算法構(gòu)建TRM;TRM表示有向圖的傳遞閉包中,以類或?qū)傩詾轫?點(diǎn),以三元組的謂語(yǔ)為關(guān)系的布爾矩陣T= {tlk};
[0133] 謂語(yǔ)為Pj的SchemaTriple的關(guān)系矩陣表示為Pj_TRM,其中PjG {subClassOf, subPropertyOf,sameAs,equivalentClass,equivalentProperty},
[0134] 若3 (K 4) e SchemaTriple (1 S < 刀)貝丨jPj_TRM.tik=1,表示謂語(yǔ) y _ 為Pj的SchemaTr ipl e的主語(yǔ)Si到賓語(yǔ)0k存在直接關(guān)系,否則Pj_TRM. tik = 0;
[0135] 其中,TRM分為類關(guān)系矩陣CTRM和屬性關(guān)系矩陣PTRM;其中,CTRM根據(jù)謂語(yǔ) subClassOf、equivalentClass、sameAs 分別定義 subPropertyOf、equivalentProperty、sameAs分別定義SP_TRM、EP_TRM、SAP_TRM;由于謂語(yǔ) 為sameAs的SchemaTr ipl e含類關(guān)系和屬性關(guān)系,TRM的構(gòu)建中將關(guān)系分開(kāi),分別構(gòu)建SAC_ TRM和SAP_TRM。
[0136] 所述構(gòu)建TRM具體包括以下步驟:
[0137] 步驟S11:結(jié)合定義4,分別獲取所有的SchemaTriple中謂語(yǔ)為subPropertyOf和 equivalentProperty的模式三元組數(shù)據(jù),根據(jù)獲取的SchemaTr ipl e并結(jié)合定義6得到以 subPropertyOf 和以 equivalentProperty 為關(guān)系的布爾矩陣;
[0138] 步驟S12:根據(jù)WarShall算法獲取所有的以subPropertyOf和以 equivalentProperty為關(guān)系的布爾矩陣中傳遞關(guān)系值,從而生成傳遞閉包關(guān)系矩陣SP_ TRM、EP_TRM,完成了 SP_TRM 和 EP_TRM 的構(gòu)建。
[0139] 在本實(shí)施例中,所述步驟S1中,構(gòu)建連接變量信息時(shí)進(jìn)行定義如下:
[0140] 定義7:連接變量LinkVar為在RDFS/0WL規(guī)則中用于連接兩個(gè)前件的模式三元組 項(xiàng),根據(jù)規(guī)則描述,連接變量的數(shù)量大于1;將每一條規(guī)則的連接變量信息以〈key,Value>的 形式存儲(chǔ)在表Rulem_Table中,其中key存儲(chǔ)該規(guī)則所有用于前件連接的模式三元組項(xiàng), value存儲(chǔ)該規(guī)則結(jié)論部分的模式三元組項(xiàng)。
[0141] 在本實(shí)施例中,所述步驟S3中具體為:SPRM算法根據(jù)TRM和連接變量的類型,對(duì) RDFS/0WL規(guī)則進(jìn)行分類;引用RDFS規(guī)則時(shí)采用RDFS-規(guī)則編號(hào)的形式,例如RDFS-1表示圖2 中的第1條規(guī)則;引用OWL Horst規(guī)則時(shí)采用0WL-規(guī)則編號(hào)的形式,例如0WL-4表示圖3中的 第4條規(guī)則。同時(shí),給每條規(guī)則分配一個(gè)規(guī)則名稱標(biāo)記,規(guī)則名稱標(biāo)記即為該規(guī)則所對(duì)應(yīng)的 名稱(例如,規(guī)則0WL-4的規(guī)則名稱標(biāo)記為0WL-4)。具體的規(guī)則分類如下:
[0142] RDFS/0WL規(guī)則的5種類型的如下:
[0143] 類型1: SchemaTriple與SchemaTriple組合的規(guī)貝IJ,采用TRM直接進(jìn)行推理(圖2中 規(guī)則RDFS-5、RDFS-11;圖 3 中規(guī)則OWL-6、0WL-7、0WL-9、0WL-10、OWL-12a、OWL-12b、0WL-12c、 OWL-13a、OWL-13b、OWL-13c)。
[0144] 類型2: SchemaTriple與InstanceTriple組合的規(guī)則,其根據(jù)TRM進(jìn)行推理,無(wú)需結(jié) 合連接變量信息(圖2中規(guī)則RDFS-7、RDFS-9;圖3中規(guī)則OWL-11)。
[0145] 類型3: SchemaTriple與InstanceTriple組合的規(guī)則,其連接變量信息為單變量, 需要結(jié)合TRM進(jìn)行推理(圖2中規(guī)則RDFS-2、RDFS-3)。
[0146] 類型4: SchemaTriple與InstanceTriple組合的規(guī)則,其連接變量信息為單變量, 無(wú)需結(jié)合TRM進(jìn)行推理(圖 3 中規(guī)則OWL-3、0WL-8a、0WL-8b、OWL-14a、OWL-14b)。
[0147] 類型5 : SchemaTriple與InstanceTriple組合的規(guī)則,其連接變量信息為多變量 (圖 3 中規(guī)則OWL-1、OWL-2、OWL-4、0WL-15、0WL-16)。
[0148] 對(duì)任意一條規(guī)則的定義為:假設(shè)第m條規(guī)則表示如下:
[0149] Rulem:Cml,Cm2, ,Cmk, ,Cmn^ReSUlt
[0150] 定義規(guī)則標(biāo)記Flag_Rulem,用于標(biāo)記該規(guī)則是否為不可能激活的規(guī)則;
[0151] 當(dāng)為Flag_Rulem=0,則意味著不存在滿足該規(guī)則的條件,無(wú)需激活該規(guī)則;假設(shè)匕 為 Rulem 中某個(gè)前件的謂語(yǔ),其中 Pj G {subClassOf, subPropertyOf,sameAs, equivalentClass,equivalentProperty},Pj所對(duì)應(yīng)的TRM設(shè)為Pj_TRM;
[0152]結(jié)合定義6和定義7,規(guī)則標(biāo)記Flag_Rulem根據(jù)RDFS/0WL規(guī)則的分類定義如下:
[0153] 1)若 RulemG{類型 1,類型 2},則 fi (3 p.jm. t, = i)
[0154] Flag_Rulem = \ ,' 、
[o (v pfjm. tik = o)
[0155] 2)若RulemG{類型3,類型4,類型5},則 (Rule Table ^ null )
[0156] Flag-Bui{ , m- ;
[0 (Rule^^Tahl? = null )
[0157] 由于圖2中RDFS規(guī)則l、4a、4b、6、8、10只有一個(gè)條件語(yǔ)句,對(duì)推理并行化算法改造 沒(méi)有影響[9];圖2中規(guī)則12和13在RDF數(shù)據(jù)中是極少出現(xiàn)的,在大多數(shù)推理工作中均不進(jìn)行 討論[5,7~12]。因而,本文所述的RDFS規(guī)則不考慮上述這些規(guī)則。由于圖3中0WL規(guī)則5a、5b 不影響推理的并行化,因而,本文所述的OWL規(guī)則推理不考慮OWL Horst中的這兩條規(guī)則。
[0158] 在本實(shí)施例中,所述步驟S4中,結(jié)合MapReduce計(jì)算框架并行完成RDFS/0WL規(guī)則的 推理,在構(gòu)建TRM階段就完成類型1中規(guī)則的推理,在RDFS/OWL規(guī)則的并行推理階段針對(duì)類 型2、類型3、類型4和類型5進(jìn)行分布式的并行推理,從而在一次MapReduce任務(wù)中實(shí)現(xiàn)全部 規(guī)則的一次推理;
[0159] 對(duì)于類型2、類型3以及類型4的規(guī)則,根據(jù)規(guī)則標(biāo)記模型和連接變量信息,經(jīng)過(guò)Map 階段的并行推理,即可獲取推理結(jié)果三元組數(shù)據(jù);對(duì)于類型5的規(guī)則,通過(guò)對(duì)滿足推理?xiàng)l件 的數(shù)據(jù)進(jìn)行冗余輸出以確保后續(xù)并行數(shù)據(jù)推理的正確性,即將滿足同一規(guī)則的實(shí)例三元組 輸出設(shè)置為相同的鍵key,以確保Reduce階段中,同一規(guī)則中的所有規(guī)則前件能夠根據(jù)連接 變量完成連接并輸出結(jié)果;
[0160] Map階段的RDFS/0WL規(guī)則的并行推理算法具體為:
[0161 ] 輸入:key為行號(hào);value為實(shí)例三元組
[0162]輸出:key為推理結(jié)果三元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶 標(biāo)記的三元組項(xiàng);
[0163] Reduce階段的RDFS/0WL規(guī)則并行推理算法具體為:
[0164] 輸入:刪除重復(fù)的三元組數(shù)據(jù)階段的輸出結(jié)果 [0165] 輸出:key為輸出三元組;value為任意值。
[0166] 在本實(shí)施例中,所述步驟S5中,通過(guò)連接變量信息和規(guī)則標(biāo)記對(duì)實(shí)例三元組進(jìn)行 過(guò)濾,減少大量無(wú)用的三元組數(shù)據(jù)在分布式系統(tǒng)中的傳輸損耗,通過(guò)構(gòu)造傳遞閉包矩陣減 少推理的迭代次數(shù),用以提高推理的效率;根據(jù)推理結(jié)果,實(shí)時(shí)地刪除重復(fù)的三元組數(shù)據(jù), 用以進(jìn)一步提尚后續(xù)迭代推理的效率;
[0167] 在每個(gè)Map之后執(zhí)行combiner以及每次推理后刪除重復(fù)的三元組數(shù)據(jù),
[0168]其中,combiner為刪除map階段輸出的重復(fù)數(shù)據(jù),具體為:
[0169]輸入:Map階段的RDFS/0WL規(guī)則的并行推理算法的輸出結(jié)果
[0170]輸出:key為推理結(jié)果三元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶 標(biāo)記的三元組項(xiàng);
[0171]每次推理后刪除重復(fù)三元組數(shù)據(jù)的算法具體為:
[0172] 輸入:key為行號(hào);value為三元組
[0173] 輸出:輸出去重后的三元組。
[0174] 在本實(shí)施例中,結(jié)合附圖與實(shí)例對(duì)以上方法具體如下說(shuō)明:
[0175] 在構(gòu)建TRM階段:SPRM算法通過(guò)構(gòu)建TRM實(shí)現(xiàn)具有傳遞性規(guī)則(類型1)推理,從而減 少推理迭代次數(shù),加快整體推理的效率。根據(jù)定義1和定義4,獲取SchemaTriple加載到內(nèi)存 中。然后結(jié)合定義6,構(gòu)建各個(gè)傳遞性規(guī)則的TRM,其中:CTRM構(gòu)建時(shí)的矩陣維度為數(shù)據(jù)集的 總類數(shù),PTRM構(gòu)建時(shí)的矩陣維度為數(shù)據(jù)集的總屬性數(shù)。
[0176] 以謂語(yǔ)為subPropertyOf、equivalentProperty 的 SchemaTriple為例,描述 PTRM中 SP_TRM和EP_TRM的構(gòu)建過(guò)程,并結(jié)合圖2中規(guī)則RDFS-5和圖3中規(guī)則OWL-13a、OWL-13b、0WL-13c實(shí)現(xiàn)SchemaTriple間的推理,具體步驟為:
[0177] 步驟S11:結(jié)合定義4,分別獲取所有的SchemaTriple中謂語(yǔ)為subPropertyOf和 equivalentProperty的模式三元組數(shù)據(jù),根據(jù)獲取的SchemaTriple并結(jié)合定義6可以得到 以subPropertyOf和以equivalentProperty為關(guān)系的布爾矩陣。
[0178] 步驟S12:根據(jù)WarShall算法可以獲取所有的以subPropertyOf和以 equivalentProperty為關(guān)系的布爾矩陣中傳遞關(guān)系值,從而生成傳遞閉包關(guān)系矩陣SP_ TRM、EP_TRM。通過(guò)這兩個(gè)步驟就完成了 SP_TRM和EP_TRM的構(gòu)建,構(gòu)建的過(guò)程如圖4所示。
[0179] 此外,圖4中展現(xiàn)了 SP_TRM的構(gòu)建實(shí)現(xiàn)圖1中規(guī)則RDFS-5的傳遞性模式三元組規(guī)則 的推理;同時(shí),根據(jù)生成的SP_TRM,若SP_TRM. tik = SP_TRM. tki,則結(jié)合圖3中規(guī)則OWL-13c可 以生成新的謂語(yǔ)為6911;[¥3161^?1'(^61^7的模式三元組,用于構(gòu)建£?_11^。對(duì)于£?_11^,若 3 EP-TRM_ tik = 1 ,則結(jié)合圖3中規(guī)則0WL-13a、0WL-13b可以生成新的謂語(yǔ)為subPropertyOf 的模式三元組。由于SchemaTriple的數(shù)量極少,通過(guò)在內(nèi)存中構(gòu)建TRM,能夠快速的完成類 型1中規(guī)則的推理,而且能夠減少在RDFS/0WL規(guī)則推理階段MapReduce任務(wù)的迭代次數(shù)。
[0180] 在構(gòu)建可能連接的連接變量信息階段:RDFS/0WL規(guī)則的各個(gè)前件之間需要通過(guò)變 量的連接,才能推理產(chǎn)生新的三元組數(shù)據(jù)。由于傳遞性規(guī)則通過(guò)各個(gè)TRM就可以實(shí)現(xiàn)傳遞推 理,因此SPRM算法針對(duì)非傳遞性規(guī)則,根據(jù)SchemaTriple數(shù)據(jù)和RDFS/0WL規(guī)則建立連接變 量表,用于存儲(chǔ)符合該規(guī)則前件變量的模式信息。如果某一規(guī)則的連接變量表的記錄為空, 意味著此數(shù)據(jù)集中的所有模式三元組均不符合該規(guī)則前件,由此可將該規(guī)則判斷不可能激 活的規(guī)則??赡苓B接的連接變量指能夠觸發(fā)規(guī)則的連接變量,為RDFS/0WL規(guī)則的每一條規(guī) 則建立對(duì)應(yīng)一張表(Ru 1 em_Tab 1 e),存儲(chǔ)在Hbase中。其中,每張表中的行鍵(key)存儲(chǔ)該規(guī) 則可能連接的變量,列值(value)為該規(guī)則產(chǎn)生的推理三元組中可能用到的變量。構(gòu)建 RDFS/0WL規(guī)則的連接變量如圖5所示。
[0181 ]為了更加明確RDFS/0WL規(guī)則中構(gòu)建連接變量的過(guò)程,以LUBM數(shù)據(jù)集中略去前綴的 20個(gè)三元組數(shù)據(jù)為例,其中,編號(hào)1~11為模式三元組數(shù)據(jù),編號(hào)12~20為實(shí)例三元組數(shù)據(jù), 如圖6所示。
[0182] 結(jié)合定義7,根據(jù)表2的1~11條SchemaTriple數(shù)據(jù),得到連接變量存儲(chǔ)表中具體的 模式數(shù)據(jù)如圖7所示。由此,根據(jù)定義8可以很容易得到各規(guī)則的規(guī)則標(biāo)記,如在此例中,規(guī) 則RDFS_3(range規(guī)則)的Flag_RuleRDFs-3 = 0 〇
[0183] 在RDFS/0WL規(guī)則的并行推理階段:由于在構(gòu)建TRM階段就完成了類型1中規(guī)則的推 理,因此在RDFS/0WL規(guī)則的并行推理階段主要針對(duì)類型2、類型3、類型4和類型5進(jìn)行分布式 的并行推理,從而在一次MapReduce任務(wù)中實(shí)現(xiàn)全部規(guī)則的一次推理。對(duì)于類型2~類型4的 規(guī)則,根據(jù)規(guī)則標(biāo)記模型和連接變量信息,經(jīng)過(guò)Map階段的并行推理,即可獲取推理結(jié)果三 元組數(shù)據(jù)。對(duì)于類型5(多變量)的規(guī)則,需要通過(guò)對(duì)滿足推理?xiàng)l件的數(shù)據(jù)進(jìn)行冗余輸出以確 保后續(xù)并行數(shù)據(jù)推理的正確性;即將滿足同一規(guī)則的實(shí)例三元組輸出設(shè)置為相同的鍵 (key),以確保Reduce階段中,同一規(guī)則中的所有規(guī)則前件能夠根據(jù)連接變量完成連接并輸 出結(jié)果。
[0184] RDFS/0WL規(guī)則的并行推理算法具體步驟如下:
[0185] 算法1 .Map階段的RDFS/0WL規(guī)則并行推理算法:
[0186] 輸入:key為行號(hào);value為實(shí)例三元組
[0187]輸出:key為推理結(jié)果三元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶 標(biāo)記的三元組項(xiàng)。
[0188]具體算法如表一所示:
[0191] 算法2. Reduce階段的RDFS/0WL規(guī)則并行推理算法:
[0192] 輸入:算法3的輸出結(jié)果
[0193] 輸出:key為輸出三元組;value為任意值
[0194] 具體算法如下所示:
[0196] SPRM算法針對(duì)RDFS/0WL規(guī)則的第t次迭代的推理框架如圖8所示。
[0197] 由于類型1直接在TRM矩陣中進(jìn)行推理,為了更加明確RDFS/0WL規(guī)則的其他類型的 推理,結(jié)合圖6中LUBM數(shù)據(jù)片段,以示例形式展現(xiàn)推理的過(guò)程,示例中的任意值輸出取 "irrelevant"。
[0198] 以圖2中規(guī)則RDFS-7(subPr〇perty實(shí)例規(guī)貝丨】)為例,展現(xiàn)類型2規(guī)則的推理過(guò)程:根 據(jù)定義8可知Flag_RuleR DFS-7=1。根據(jù)SP_TRM可以獲取headOf的所有的父屬性為屬性 worksFor、memberOf;圖6中只有(FullProfessor7,head0f,DepartmentO)可以獲取激活 1^卩3-7規(guī)則,因而可以推理產(chǎn)生三元組(?1111?1'〇€6 8 80『7,¥〇48?01',〇6口31^111611切)和 (FullProfessor7,member0f,DepartmentO) DSirrelevant可取任意值,則在Map階段的鍵 值對(duì)輸出形如:
[0199] 〈''ResultFlag〃+(FullProfessor7,worksFor,DepartmentO),irrelevant〉
[0200] 〈"ResultFlag"+(FullProfessor7,memberOf,DepartmentO),irrelevant〉
[0201]以圖2中規(guī)貝ljRDFS-2(domain規(guī)貝lj)為例,展現(xiàn)類型3規(guī)則的推理過(guò)程:根據(jù)定義8可 知Flag_RuleRDFs-2 = l;根據(jù)根據(jù)圖6中輸入的實(shí)例三兀組數(shù)據(jù),以三兀組的謂語(yǔ)為行鍵 (rowkey)查詢Domain_Table 中的列值(value),實(shí)例三元組(LecturerO,teacherOf, GraduateCourSe5)進(jìn)入該規(guī)則推理。然后,根據(jù)SC_TRM可以獲取Faculty的所有父類為 Employee,由此,可以推理產(chǎn)生三元組(LecturerO,type,F(xiàn)aculty)和(LecturerO,type, Emp 1 oy e e)。則在Map階段的鍵值對(duì)輸出為:
[0202] <〃ResultFlag〃+(LecturerO,type,F(xiàn)aculty),irrelevant〉
[0203] <//ResultFlag//+(LecturerO, type,Employee) ? irrelevant)
[0204] 以圖3中規(guī)則0WL_8a(inverse0f)為例,展現(xiàn)類型4規(guī)貝的推理過(guò)程:根據(jù)定義8可 知Flag_Rule(m-8a=lD根據(jù)圖6中輸入的實(shí)例三元組數(shù)據(jù),以三元組的謂語(yǔ)為行鍵(rowkey) 查詢111¥6『86_83_131316中的列值(¥31116),只有實(shí)例三元組(?1111?1'〇€688〇1'0,(168代6?1'〇111, University 1)可以獲得其謂語(yǔ)在Inverse_8a_Table中的列值(value)為hasAlumnus,由此 推理產(chǎn)生三元組(Universityl,hasAlumnus,F(xiàn)ullProfessor0) D則在Map階段的鍵值對(duì)輸出 形如:
[0205] <〃ResultFlag〃+(Universityl,hasAlumnus,F(xiàn)ullProfessor0),irrelevant〉
[0206] 以圖3中規(guī)則0WL_4(transitiveProperty)為例,展現(xiàn)類型5規(guī)則的推理過(guò)程:根據(jù) 表1可知SP_Flag_Ru le(m-4=l。根據(jù)圖6中輸入的實(shí)例三元組數(shù)據(jù),以三元組的謂語(yǔ)為行鍵 (rowkey)查詢TransitiveProperty_Table 中的列值(value),實(shí)例三元組 (ResearchGroupO,subOrganizationOf,DepartmentO)和(DepartmentO, subOrganizationOf,Uni ver si tyO)可以獲得其謂語(yǔ)在 Transit iveProperty_Table 中的列 值(value)為sub0rganization0fDMap階段的鍵值對(duì)輸出為:
[0207] <OWL-4+subOrganizationOf+DepartmentO ?0+ResearchGroup0>
[0208] <OWL-4+subOrganizationOf+DepartmentO ?1+University0>
[0209] 在Reduce階段,獲取鍵(key)為0WL-4的數(shù)據(jù),在同一個(gè)鍵(key)中的值(values)根 據(jù)標(biāo)記0或1來(lái)獲取推理所產(chǎn)生的三元組項(xiàng)是主語(yǔ)或賓語(yǔ),產(chǎn)生最終的推理的三元組數(shù)據(jù) 為:(ResearchGroupO,subOrganizationOf,UniversityO) 規(guī)則標(biāo)記及其對(duì)應(yīng)值表如表 1所 7Jn 〇
[0210] 表1規(guī)則標(biāo)記及其對(duì)應(yīng)值表
[0212]在刪除重復(fù)三元組階段:在執(zhí)行分布式推理的過(guò)程中會(huì)產(chǎn)生大量重復(fù)的三元組數(shù) 據(jù),如果沒(méi)有把本節(jié)點(diǎn)以及本次推理產(chǎn)生的重復(fù)數(shù)據(jù)刪除,這些相同的三元組將產(chǎn)生更多 的重復(fù)三元組數(shù)據(jù),造成系統(tǒng)資源無(wú)謂的浪費(fèi)。本算法通過(guò)在每個(gè)map之后執(zhí)行combiner以 及每次推理后刪除重復(fù)的三元組數(shù)據(jù),從而減少網(wǎng)絡(luò)的開(kāi)銷,提升整體的推理效率。
[0213 ]算法3. Comb iner,刪除本節(jié)點(diǎn)map階段輸出的重復(fù)數(shù)據(jù) [0214]輸入:算法1中map函數(shù)的輸出結(jié)果
[0215]輸出:key為推理結(jié)果三元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶 標(biāo)記的三元組項(xiàng)。
[0216]具體算法如下所示:
[0218] 本方法借助一次Map/Reduce完成刪除重復(fù)三元組算法,具體步驟如下:
[0219] 算法4.刪除重復(fù)三元組算法
[0220] map(key,value)
[0221 ] 輸入:key為行號(hào);value為三元組
[0222]輸出:輸出去重后的三元組 [0223]具體算法如下所示:
[0225] reduce(key,valueList)
[0226] 輸入:key 為 map輸出的 key; value 為對(duì)應(yīng)的 valueList
[0227] 輸出:輸出去重后的三元組
[0230] 在本實(shí)施例中,本算法復(fù)雜度分析如下:SPRM算法的復(fù)雜性與集中式算法復(fù)雜性 的分析不太相同,將SPRM算法的最壞情況下的時(shí)間復(fù)雜性分為Map階段的時(shí)間復(fù)雜性和 Reduce階段的時(shí)間復(fù)雜性。假設(shè)數(shù)據(jù)集的規(guī)模大小為N,其中模式三元組為n個(gè),在 MapReduce中Map階段的并行數(shù)為k,Reduce階段傳入的實(shí)例三元組個(gè)數(shù)為m,Reduce階段的 并行數(shù)為t。
[0231] 由于SPRM算法對(duì)RDFS/0WL規(guī)則進(jìn)行了分類,在TRM構(gòu)建完成之后,SPRM算法再并行 執(zhí)行類型2~類型5規(guī)則推理,因此SPRM算法的復(fù)雜性按照RDFS/0WL規(guī)則的類型進(jìn)行分析, 其中一次推理迭代的復(fù)雜度分別為:
[0232] 1)類型1規(guī)則推理的復(fù)雜性主要為構(gòu)建TRM的WarShall算法復(fù)雜度,為0(n3)
[0233] 2)類型2規(guī)則推理的復(fù)雜性:
[0234] Map階段的時(shí)間復(fù)雜性為:0(n2*N/k)
[0235] Reduce階段的時(shí)間復(fù)雜性為:0(m/t)
[0236] 3)類型3規(guī)則推理的復(fù)雜性:
[0237] Map階段的時(shí)間復(fù)雜性為:0(n*N/k)
[0238] Reduce階段的時(shí)間復(fù)雜性為:0(m/t)
[0239] 4)類型4規(guī)則推理的復(fù)雜性:
[0240] Map階段的時(shí)間復(fù)雜性為:0(N/k)
[0241 ] Reduce階段的時(shí)間復(fù)雜性為:0(m/t)
[0242] 5)類型5規(guī)則推理復(fù)雜性:
[0243] Map階段的時(shí)間復(fù)雜性為:0 (n*N/k)
[0244] Reduce階段的時(shí)間復(fù)雜性為:0(m2/t)
[0245] 綜上可知,SPRM算法一次推理迭代的時(shí)間復(fù)雜度為0(n)=0(n3)+0(n 2*N/k)+0(n* N/k)+0(m/t)+0(m2/t)。相比于數(shù)據(jù)集,模式三元組n的數(shù)目非常少,因此可以認(rèn)為其量級(jí)為 常數(shù),且SPRM采用了高效的過(guò)濾機(jī)制,盡可能地降低m,從而降低整體時(shí)間復(fù)雜性。
[0246]以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專利范圍所做的均等變化與 修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
【主權(quán)項(xiàng)】
1. 一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,其特征在于:具體包括W下步驟: 步驟Sl:加載模式S元組,構(gòu)建TRM,同時(shí)根據(jù)RDFS/OWL規(guī)則,構(gòu)建每條規(guī)則中可能連接 的連接變量信息; 步驟S2:根據(jù)TM和連接變量信息,生成規(guī)則標(biāo)記模型; 步驟S3:將連接變量分成單變量和多變量?jī)煞N形式,根據(jù)TRM和連接變量的類型,將 RDFS/OWL規(guī)則分成5種類型,分別設(shè)計(jì)不同的推理方案; 步驟S4:對(duì)Flag_Rulem= 1的規(guī)則執(zhí)行RDFS/OWL規(guī)則的并行推理,并輸出中間結(jié)果; 步驟S5:刪除中間結(jié)果中的重復(fù)=元組; 步驟S6:如果中間結(jié)果中包含新的SchemalYiple,則更新TRM和規(guī)則標(biāo)記模型,返回步 驟S4;否則,結(jié)束。2. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,其特征在于: 所述步驟Sl中,對(duì)=元組的相關(guān)參數(shù)進(jìn)行定義如下: 定義1 :模式S元組SchemaTrip 16指^元組的主語(yǔ)謂語(yǔ)和賓語(yǔ)都在本體文件 OntologyFile中有定義,即為:其中,n表示模式=元組的總數(shù); 若V G {Si, Pj, Ok},V. F e 0曲q1.雌》'的 Ie ,則, (Si,Pj ,0k) G SchemaTriple (1) 定義2:實(shí)例S元組InstanceTriple指主語(yǔ)謂語(yǔ)和賓語(yǔ)至少有一個(gè)在本體文件 化tologyFile中未定義,是具體的實(shí)例,即為:其中,n表示實(shí)例S元組的總數(shù); 若VG {Si,Pj,〇k},3 V g Ontoiog炸ile,則, (Si,Pj ,0k) E InstanceTriple 定義3:S元組類型標(biāo)記Flag_hipleType,用于標(biāo)識(shí)模式S元組與實(shí)例S元組,所述S 元組類型標(biāo)記Flag_T;ripleType定義如下: 其中,n表示=元組項(xiàng)類型標(biāo)記TripleItem_Flag,用于標(biāo)識(shí)=元組項(xiàng)中的主語(yǔ)或者賓語(yǔ),所述=元 組項(xiàng)類型標(biāo)記定義如下: 其中,n表示S元組的,定義4:模式S元組列表SchemaList,用于獲取相同謂語(yǔ)或者賓語(yǔ)的模式S元組集合, 所述模式立元組列表SchemaList定義如下:其中,n表示模式=元組的總數(shù),則, SchemaList = Om-Iist U Pt-Iist 其中,0m_list表示滿足謂語(yǔ)門(mén)G Ir壯:type}的且具有相同賓語(yǔ)的S元組集合,W該賓 語(yǔ)命名;Pt_list表示滿足謂語(yǔ)氣g : O'pe}的所有具有相同謂語(yǔ)的S元組集合,W該 謂語(yǔ)命名,具體定義如下:3. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,其特征在于: 所述步驟Sl中,構(gòu)建TM時(shí)進(jìn)行定義如下: 定義5:有向圖的傳遞閉包定義為:一個(gè)n頂點(diǎn)有向圖的傳遞閉包可W定義為一個(gè)n階布 爾矩陣了=扣1^(1《1,4《11),若頂點(diǎn)巧順點(diǎn)1^存在一條有效路徑,則*11^=1,否則*化=0。 定義6:傳遞閉包關(guān)系矩陣Transitive closure relation matrix,簡(jiǎn)稱為T(mén)RM,結(jié)合定 義4、定義5和WarShal I算法構(gòu)建TRM; TRM表示有向圖的傳遞閉包中,W類或?qū)傩詾轫旤c(diǎn),W S元組的謂語(yǔ)為關(guān)系的布爾矩陣T= {tik}; 謂語(yǔ)為Pj的SchemaTriple的關(guān)系矩陣表示為Pj_TRM,其中PjG {subClassOf, subPropertyOf,sameAs,equiv曰IentCl曰SS,equiv曰IentProperty}, 若3 化,戶,',A) G SchemaTriple (1 < 么乂1 < 苗,則Pj_TRM.tik=l,表示謂語(yǔ)為Pj 的SchemaTriple的主語(yǔ)Si到賓語(yǔ)Ok存在直接關(guān)系,否則Pj_TRM.tik = 0; 其中,TRM分為類關(guān)系矩陣CTRM和屬性關(guān)系矩陣PTRM;其中,CTRM根據(jù)謂語(yǔ)subClassOf、 69111¥日16111(:1日3 3、3日111643分別定義5(:_11?1、6(:_11?1、54(:_11?1;?11?1根據(jù)謂語(yǔ) 3油口1'〇961'17〇;1^6911;[¥日16]11?1'〇961'17、3日111643分別定義5?_1觀、6?_1觀、54?_11^;由于謂語(yǔ) 為sameAs的SchemaTr iple含類關(guān)系和屬性關(guān)系,TRM的構(gòu)建中將關(guān)系分開(kāi),分別構(gòu)建SAC_ TRM和SAP_TRM。 所述構(gòu)建TM具體包括W下步驟: 步驟Sll :結(jié)合定義4,分別獲取所有的SchemaTripIe中謂語(yǔ)為subPropertyOf和 6911;[¥日1日]11?1'〇9日;^7的模式^元組數(shù)據(jù),根據(jù)獲取的5地日1]1日時(shí)191日并結(jié)合定義6得到^ subPropertyOf 和 WequivalentProperty 為關(guān)系的布爾矩陣; 步驟Sl 2:根據(jù)WarShall算法獲取所有的 W subP;rope;rtyOf 和 WequivalentProperty為 關(guān)系的布爾矩陣中傳遞關(guān)系值,從而生成傳遞閉包關(guān)系矩陣SP_TRM、EP_TRM,完成了 SP_TRM 和EP_TRM的構(gòu)建。4. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,其特征在于: 所述步驟Sl中,構(gòu)建連接變量信息時(shí)進(jìn)行定義如下: 定義7 :連接變量LinkVar為在RDFS/0WL規(guī)則中用于連接兩個(gè)前件的模式S元組項(xiàng),根 據(jù)規(guī)則描述,連接變量的數(shù)量大于1;將每一條規(guī)則的連接變量信息W <key, value〉的形式 存儲(chǔ)在表Rulem_Table中,其中k巧存儲(chǔ)該規(guī)則所有用于前件連接的模式S元組項(xiàng),value存 儲(chǔ)該規(guī)則結(jié)論部分的模式=元組項(xiàng)。5. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,其特征在于: 所述步驟S3中具體為:采用SPRM算法根據(jù)TRM和連接變量的類型,對(duì)RDFS/OWL規(guī)則進(jìn)行 分類,引用RDFS規(guī)則時(shí)采用RDFS-規(guī)則編號(hào)的形式,引用OWL化rst規(guī)則時(shí)采用OWk規(guī)則編 號(hào)的形式;給每條規(guī)則分配一個(gè)規(guī)則名稱標(biāo)記,規(guī)則名稱標(biāo)記即為該規(guī)則所對(duì)應(yīng)的名稱; 畑FS/0WL規(guī)則的5種類型的如下: 類型1: SchemaTriple與SchemaTriple組合的規(guī)則,采用TRM直接進(jìn)行推理; 類型2 = SchemalYiple與InstancelYiple組合的規(guī)則,其根據(jù)TRM進(jìn)行推理,無(wú)需結(jié)合連 接變量信息; 類型3 = SchemalYiple與InstancelYiple組合的規(guī)則,其連接變量信息為單變量,需要 結(jié)合TRM進(jìn)行推理; 類型4: SchemaIYiple與InstancelYiple組合的規(guī)則,其連接變量信息為單變量,無(wú)需 結(jié)合TRM進(jìn)行推理; 類型5: SchemaTriple與InstanceTriple組合的規(guī)則,其連接變量信息為多變量; 對(duì)任意一條規(guī)則的定義為:假設(shè)第m條規(guī)則表示如下: Ru 16皿:Cinl , Cm2 , ?.. , Cmk , ?.. , Cmn-^民6 SU11 定義規(guī)則標(biāo)記Flag_Rulem,用于標(biāo)記該規(guī)則是否為不可能激活的規(guī)則; 當(dāng)為Flag_Rulem = 0,則意味著不存在滿足該規(guī)則的條件,無(wú)需激活該規(guī)則;假設(shè)Pj為 Rulem 中某個(gè)前件的謂語(yǔ),其中 Pj G {subClassOf, subPropertyOf, sameAs , equivalentClass ,equivalentProperty},Pj所對(duì)應(yīng)的TRM設(shè)為Pj_TRM; 結(jié)合定義6和定義7,規(guī)則標(biāo)記Flag_Rulem根據(jù)RDFS/OWL規(guī)則的分類定義如下: 1) 若RulemG {類型1,類型2},貝IJ2) 若RulemG {類型3,類型4,類型引,貝IJ6. 根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,其特征在于: 所述步驟S4中,結(jié)合MapReduce計(jì)算框架并行完成RDFS/OWL規(guī)則的推理,在構(gòu)建TRM階 段就完成類型1中規(guī)則的推理,在RDFS/OWL規(guī)則的并行推理階段針對(duì)類型2、類型3、類型4和 類型5進(jìn)行分布式的并行推理,從而在一次MapReduce任務(wù)中實(shí)現(xiàn)全部規(guī)則的一次推理; 對(duì)于類型2、類型3W及類型4的規(guī)則,根據(jù)規(guī)則標(biāo)記模型和連接變量信息,經(jīng)過(guò)Map階 段的并行推理,即可獲取推理結(jié)果=元組數(shù)據(jù);對(duì)于類型5的規(guī)則,通過(guò)對(duì)滿足推理?xiàng)l件的 數(shù)據(jù)進(jìn)行冗余輸出W確保后續(xù)并行數(shù)據(jù)推理的正確性,即將滿足同一規(guī)則的實(shí)例=元組輸 出設(shè)置為相同的鍵key, W確保Reduce階段中,同一規(guī)則中的所有規(guī)則前件能夠根據(jù)連接變 量完成連接并輸出結(jié)果; Map階段的RDFS/OWL規(guī)則的并行推理算法具體為: 輸入:k巧為行號(hào);value為實(shí)例=元組 輸出:key為推理結(jié)果=元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶標(biāo)記 的S元組項(xiàng); Reduce階段的畑FS/OWL規(guī)則并行推理算法具體為: 輸入:刪除重復(fù)的=元組數(shù)據(jù)階段的輸出結(jié)果 輸出:k巧為輸出=元組;value為任意值。7.根據(jù)權(quán)利要求1所述的一種RDF數(shù)據(jù)分布式語(yǔ)義并行推理方法,其特征在于: 所述步驟S5中,通過(guò)連接變量信息和規(guī)則標(biāo)記對(duì)實(shí)例=元組進(jìn)行過(guò)濾,減少大量無(wú)用 的=元組數(shù)據(jù)在分布式系統(tǒng)中的傳輸損耗,通過(guò)構(gòu)造傳遞閉包矩陣減少推理的迭代次數(shù), 用W提高推理的效率;根據(jù)推理結(jié)果,實(shí)時(shí)地刪除重復(fù)的=元組數(shù)據(jù),用W進(jìn)一步提高后續(xù) 迭代推理的效率; 在每個(gè)Map之后執(zhí)行combiner^及每次推理后刪除重復(fù)的S元組數(shù)據(jù), 其中,combiner為刪除map階段輸出的重復(fù)數(shù)據(jù),具體為: 輸入:Map階段的RDFS/0WL規(guī)則的并行推理算法的輸出結(jié)果 輸出:key為推理結(jié)果=元組或規(guī)則標(biāo)記與連接變量的組合;value為任意值或帶標(biāo)記 的S元組項(xiàng); 每次推理后刪除重復(fù)=元組數(shù)據(jù)的算法具體為: 輸入:k巧為行號(hào);value為=元組 輸出:輸出去重后的S兀組。
【文檔編號(hào)】G06F17/27GK105912721SQ201610293055
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2016年5月5日
【發(fā)明人】汪璟玢, 葉怡新, 鄭翠春
【申請(qǐng)人】福州大學(xué)