一種結(jié)合Rete算法的RDF數(shù)據(jù)分布式并行推理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及語(yǔ)義網(wǎng)技術(shù)領(lǐng)域,特別是一種結(jié)合Rete算法的RDF數(shù)據(jù)分布式并行推 理方法。
【背景技術(shù)】
[0002] 語(yǔ)義萬維網(wǎng)(SematicWeb)是萬維網(wǎng)的擴(kuò)展與延伸,當(dāng)前萬維網(wǎng)聯(lián)盟(W3C)指定的 本體標(biāo)準(zhǔn)主要包括RDF/RDFS和0WL。隨著語(yǔ)義萬維網(wǎng)(SematicWeb)的應(yīng)用,產(chǎn)生了海量 的語(yǔ)義信息。由于數(shù)據(jù)的復(fù)雜性和大規(guī)模性,如何通過語(yǔ)義信息并行推理高效地發(fā)現(xiàn)其中 隱藏的信息是一個(gè)亟待解決的問題。目前集中式環(huán)境中已經(jīng)無法滿足大規(guī)模數(shù)據(jù)的需求; 而分布式的環(huán)境能夠?qū)崿F(xiàn)大規(guī)模數(shù)據(jù)的推理。目前,在分布式環(huán)境下的推理已經(jīng)有不少工 作。如模糊PD*的推理、ALC邏輯的P2P網(wǎng)絡(luò)推理、0WL2的EL++分布式推理以及分布式推 理引擎WebPIE。這些推理的方法不夠高效。這些推理的方案大部分結(jié)合了MapReduce計(jì)算 框架,通過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)行推 理,而MapReduceJob的啟動(dòng)相對(duì)耗時(shí),因此隨著RDFS/0WL推理規(guī)則的增加,推理的效率受 到了限制。集中式中的Rete算法具有并行的高效性,目前還沒有結(jié)合Rete算法的分布式 并行推理方案。
[0004] 實(shí)用在集中式環(huán)境下無法滿足海量數(shù)據(jù)的需求,而分布式環(huán)境下的推理不夠高 效,推理的并行化。集中式環(huán)境下的Rete算法雖然能夠高效地實(shí)現(xiàn)數(shù)據(jù)的推理,但是由于 在alpha階段和beta階段執(zhí)行任務(wù)時(shí)候需要大量的內(nèi)存,導(dǎo)致它無法直接在集中式中處理 大規(guī)模的數(shù)據(jù)推理。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種結(jié)合Rete算法的RDF數(shù)據(jù)分布式并行推理方法,以滿 足大規(guī)模數(shù)據(jù)的分布式并行推理的需求,同時(shí)保證Rete算法實(shí)現(xiàn)分布后推理數(shù)據(jù)的正確 性。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種結(jié)合Rete算法的RDF數(shù)據(jù)分布式并 行推理方法,其特征在于,按照如下步驟實(shí)現(xiàn): 51 :在MapReduce算法框架下結(jié)合Rete算法,在所述分布式并行推理方法的Map階段 完成Rete算法中alpha網(wǎng)絡(luò)的建立,并根據(jù)輸入的RDF數(shù)據(jù)和對(duì)應(yīng)的RDFS/0WL規(guī)則,以鍵 值形式輸出滿足對(duì)應(yīng)RDFS/0WL規(guī)則前件的實(shí)例三元組; 52 :在所述分布式并行推理方法的Reduce階段完成Rete算法中beta網(wǎng)絡(luò)的功能,并 根據(jù)步驟S1中Map階段的輸出結(jié)果,完成RDF數(shù)據(jù)對(duì)應(yīng)的所有RDFS/0WL規(guī)則的并行推理。[0007] 進(jìn)一步的,所述步驟S1還包括如下步驟: sil:將輸入的RDF數(shù)據(jù)中與對(duì)應(yīng)的RDFS/OWL規(guī)則中所有前件的模式三元組作為所述Map階段的輸入,并將該模式三元組加載到內(nèi)存中; 512 :將所述Map階段輸出的鍵(key)設(shè)定為規(guī)則名稱,值(value)為滿足對(duì)應(yīng)RDFS/ OWL規(guī)則前件的實(shí)例三元組;如果一個(gè)實(shí)例三元組數(shù)據(jù)滿足的前件是多個(gè)規(guī)則的前件,則 采用不同的鍵(key)冗余的存儲(chǔ)該實(shí)例三元組數(shù)據(jù); 513 :將所述Map階段的輸出的實(shí)例三元組作為所述Reduce階段的輸入數(shù)據(jù)。
[0008] 進(jìn)一步的,所述步驟S2還包括如下步驟: 521 :在所述Reduce階段,SubReduce階段個(gè)數(shù)和鍵(key)個(gè)數(shù)匹配,以保證分布式的 并行性和推理的完整性,每一個(gè)鍵(key)對(duì)應(yīng)一個(gè)SubReduce階段,根據(jù)每個(gè)實(shí)例三元組對(duì) 應(yīng)的鍵(key),將實(shí)例三元組進(jìn)行組合,獲取相同鍵(key)的實(shí)例組合列表值,并將組合后 的實(shí)例組合列表值作為每個(gè)鍵(key)對(duì)應(yīng)的SubReduce階段的輸入; 522 :在每個(gè)SubReduce階段中,根據(jù)該SubReduce階段對(duì)應(yīng)的鍵(key)將內(nèi)存中的所 述模式三元組與所述實(shí)例組合列表完成連接推理,并獲取推理結(jié)果; 523 :將所述推理結(jié)果保存到一推理三元組列表中,當(dāng)該推理三元組列表中的數(shù)量達(dá)到 預(yù)設(shè)閾值N后啟動(dòng)I/O輸出,一次性將所述推理結(jié)果輸出,以避免頻繁的I/O輸出造成系統(tǒng) 性能的下降;輸出的推理結(jié)果以鍵(key)和值(value)為變量的形式進(jìn)行保存,其中N為大 于或等于1的正整數(shù)。
[0009] 進(jìn)一步的,所述步驟S22還包括:在加載模式三元組到內(nèi)存過程中,將謂語(yǔ)相同的 模式三元組存放到一個(gè)模式三元組列表中,并命名為P_list,P為該模式三元組的謂語(yǔ);在 每一個(gè)SubReduce階段階段,根據(jù)P_list中的每一個(gè)模式三元組,遍歷每個(gè)三元組列表,判 斷是否存在與該模式三元組相同的,且用于連接推理的連接變量;若不存在相同的連接變 量,則跳過該三元組;若存在相同的連接變量,則根據(jù)該鍵(key)對(duì)應(yīng)的RDFS/0WL規(guī)則完成 連接推理。
[0010] 進(jìn)一步的,所述三元組列表為模式三元組列表或?qū)嵗M合列表;所述三元組為模 式三元組或?qū)嵗M。
[0011] 進(jìn)一步的,在執(zhí)行連接推理過程中,優(yōu)先連接符合條件的模式三元組,再連接實(shí)例 三元組。
[0012] 進(jìn)一步的,所述連接變量為所述模式三元組中的主語(yǔ)、謂語(yǔ)或賓語(yǔ)。
[0013] 相較于現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:本發(fā)明所提出的一種結(jié)合Rete算法 的RDF數(shù)據(jù)分布式并行推理方法,能夠通過啟動(dòng)一次MapReduce推理任務(wù)就完成RDFS/0WL 所有規(guī)則的一次推理,即借助MapReduce計(jì)算框架高效地實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的并行推理;和 現(xiàn)有的推理方法相比,可以更加高效地進(jìn)行推理,尤其是在數(shù)據(jù)量大、規(guī)則數(shù)量較多的情況 下,效果更加明顯,同時(shí)該方案的推理效率隨著推理規(guī)則的增加變化較小。本發(fā)明彌補(bǔ)了現(xiàn) 有的Rete算法在執(zhí)行推理時(shí)占用內(nèi)存過多、無法對(duì)大規(guī)模數(shù)據(jù)進(jìn)行推理的局限性。由于數(shù) 據(jù)的復(fù)雜性和大規(guī)模性,如何通過語(yǔ)義信息并行推理高效地發(fā)現(xiàn)其中隱藏的信息是一個(gè)亟 待解決的問題,本發(fā)明在海量語(yǔ)義信息推理中意義深遠(yuǎn),能夠在復(fù)雜、大規(guī)模的數(shù)據(jù)中通過 語(yǔ)義信息并行推理高效地發(fā)現(xiàn)其中的隱藏信息。
【附圖說明】
[0014] 圖1為本發(fā)明一實(shí)施例中alpha網(wǎng)絡(luò)和beta網(wǎng)絡(luò)算法模型示意圖。
[0015] 圖2為本發(fā)明一實(shí)施例中結(jié)合Rete算法的分布式并行推理總體框架圖。
[0016]圖3為本發(fā)明一實(shí)施例中結(jié)合Rete算法的一次分布式并行推理框架圖。
【具體實(shí)施方式】
[0017] 下面結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行具體說明。
[0018] 本發(fā)明提供一種結(jié)合Rete算法的RDF數(shù)據(jù)分布式并行推理方法,其特征在于,按 照如下步驟實(shí)現(xiàn): 51 :在MapReduce算法框架下結(jié)合Rete算法,在所述分布式并行推理方法的Map階段 完成Rete算法中alpha網(wǎng)絡(luò)的建立,并根據(jù)輸入的RDF數(shù)據(jù)和對(duì)應(yīng)的RDFS/0WL規(guī)則,以鍵 值形式輸出滿足對(duì)應(yīng)RDFS/0WL規(guī)則前件的實(shí)例三元組,完成所述alpha網(wǎng)絡(luò)的功能; 52 :在所述分布式并行推理方法的Reduce階段完成Rete算法中beta網(wǎng)絡(luò)的建立,并 根據(jù)步驟S1中Map階段的輸出結(jié)果,完成RDF數(shù)據(jù)對(duì)應(yīng)的所有RDFS/0WL規(guī)則的并行推理, 完成所述beta網(wǎng)絡(luò)的功能。
[0019] 在本實(shí)施例中,Rete算法主要分為兩個(gè)部分:alpha網(wǎng)絡(luò)和beta網(wǎng)絡(luò),算法模型如 圖1所示; 其中,alpha網(wǎng)絡(luò):在工作存儲(chǔ)區(qū)元素WME(workingmemoryelements)中過濾數(shù)據(jù), 找出符合規(guī)則的每一個(gè)模式集合,生成滿足該模式的集合。beta網(wǎng)絡(luò):有兩種類型的節(jié)點(diǎn) BetaMemory和JoinNode。前者主要存儲(chǔ)Join完成后的集合。后者包含兩個(gè)輸入口,分 別輸入需要匹配的不同WME,由Join節(jié)點(diǎn)做合并工作傳輸給下一個(gè)節(jié)點(diǎn)。
[0020] 進(jìn)一步的,所述步驟S1還包括如下步驟: 511 :將輸入的RDF數(shù)據(jù)中與RDFS/0WL規(guī)則中所有前件的模式三元組作為所述Map階 段的輸入,并將該模式三元組加載到內(nèi)存中;在本實(shí)施例中,該三元組的類型為(s,p, 〇) 形式的三元組。數(shù)據(jù)集中的數(shù)據(jù)分為兩種類型的三元組,模式三元組和實(shí)例三元組,模式三 元組指的是三元組的主謂賓都能夠在本體文件中找到(即在