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