一種基于推理的層級知識庫構建系統(tǒng)和方法
【專利摘要】本發(fā)明提出一種基于推理的層級知識庫構建系統(tǒng)和方法,其中系統(tǒng)包括:數(shù)據(jù)抓取模塊,用于從數(shù)據(jù)源中獲取數(shù)據(jù);本體(Ontology)模塊,用于構建并更新領域Ontology、分類Ontology及全局Ontology;知識抽取模塊,用于抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,得到所需要的領域知識;知識構建模塊,包括知識融合子模塊和推理引擎子模塊;其中,知識融合子模塊,用于將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合并存儲,得到基礎知識庫;推理引擎子模塊,用于調用Ontology模塊進行分類Ontology的定義,并定制相關推理規(guī)則,將推理規(guī)則應用到基礎知識庫上,得到潛在的知識并存儲到各個分類對應的分類知識庫中。本發(fā)明能夠便于知識庫的維護和更新。
【專利說明】一種基于推理的層級知識庫構建系統(tǒng)和方法
【技術領域】
[0001]本發(fā)明涉及信息表示和存儲【技術領域】,尤其涉及一種基于推理的層級知識庫構建系統(tǒng)和方法。
【背景技術】
[0002]現(xiàn)有的網(wǎng)絡技術是將互聯(lián)網(wǎng)上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。那么如何能夠更好的將龐大的數(shù)據(jù)信息組織成一個高效的,能夠更好的滿足用戶需求的知識整體,這就涉及到了知識庫的構建問題。知識庫是知識工程中結構化、易操作、易利用、全面有組織的知識集群,是針對某一(或某些)領域問題求解的需要,采用某種(或若干)知識表示方式在計算機存儲器中存儲、組織、管理和使用的互相聯(lián)系的知識片集合。
[0003]從不同的構建角度出發(fā),知識庫的構建方法也不盡相同?,F(xiàn)有的常用方法是從知識本身的結構出發(fā),基于知識層次理論建立一個知識組織層次模型,然后按照這個模型來組織知識構建層級知識庫;還有一種層級劃分是按照動作層、知識層和行為層來劃分的,這種三層模型是基于推理規(guī)則而來,通過行為層和知識層的,來得到動作層要執(zhí)行的動作。
[0004]現(xiàn)有的層級知識庫技術普遍存在的問題是分層比較固定,不是知識組織層次模型的四層,就是劃分為動作層、知識層和行為層的三層模型。而且所有的知識都存儲在同一個知識庫中,維護和更新都比較麻煩。
【發(fā)明內容】
[0005]本發(fā)明提供了一種基于推理的層級知識庫構建系統(tǒng),能夠便于知識庫的維護和更新。
[0006]本發(fā)明還提供了一種基于推理的層級知識庫構建方法,能夠便于知識庫的維護和更新。
[0007]本發(fā)明的技術方案是這樣實現(xiàn)的:
[0008]一種基于推理的層級知識庫構建系統(tǒng),包括:
[0009]數(shù)據(jù)抓取模塊,用于從數(shù)據(jù)源中獲取數(shù)據(jù);
[0010]本體(Ontology)模塊,用于構建并更新領域Ontology、分類Ontology及全局Ontology ;
[0011]知識抽取模塊,用于根據(jù)數(shù)據(jù)源的Ontology、所述領域Ontology、以及二者之間的屬性映射關系,抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,從而得到所需要的領域知識;
[0012]知識構建模塊,包括知識融合子模塊和推理引擎子模塊;其中,所述知識融合子模塊,用于將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合并存儲,得到基礎知識庫;所述推理引擎子模塊,用于調用所述Ontology模塊進行分類Ontology的定義,并定制相關推理規(guī)則,將推理規(guī)則應用到所述基礎知識庫上,得到潛在的知識,并將所述潛在的知識存儲到各個分類對應的分類知識庫中,將所述分類知識庫和基礎知識庫構成層級知識庫。
[0013]上述系統(tǒng)中,Ontology模塊包括構建Ontology子模塊和完善Ontology子模塊;其中,
[0014]所述構建Ontology子模塊用于構建領域Ontology,還用于定義分類Ontology和全局Ontology ;其中,所述領域Ontology的構建是通過該領域對應的多個數(shù)據(jù)源的Ontology融合得到;
[0015]所述完善Ontology子模塊用于當數(shù)據(jù)源發(fā)生變化時更新領域Ontology,當分類發(fā)生變化時更新分類Ontology,當領域Ontology和分類Ontology任意一個發(fā)生變化時更新全局Ontology。
[0016]知識抽取模塊包括數(shù)據(jù)預處理子模塊和抽取子模塊;其中,
[0017]所述預處理模塊用于對所述數(shù)據(jù)抓取模塊所獲取的數(shù)據(jù)進行預處理,包括刪除冗余數(shù)據(jù)和剔除噪聲數(shù)據(jù);
[0018]所述抽取子模塊用于,針對所述預處理之后的數(shù)據(jù),根據(jù)數(shù)據(jù)源的Ontology、所述領域Ontology、以及二者之間的屬性映射關系,抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,從而得到所需要的領域知識。
[0019]知識融合子模塊將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合的方式為:獲取每個數(shù)據(jù)源映射到領域Ontology同一個屬性的屬性集合,并為所述屬性定義融合的方法,從而得到來自不同數(shù)據(jù)源的同一個屬性的融合后的值;其中,所述融合的方法為拼接或取均值,但并不局限于這兩種方式。
[0020]上述系統(tǒng)中,推理弓I擎子模塊是基于位圖的方式進行推理的。
[0021]上述系統(tǒng)還包括知識庫接口模塊,用于為上層應用或用戶提供統(tǒng)一的訪問所述層級知識庫的接口。
[0022]上述知識庫接口模塊利用三元組存儲(Triple Store)自身的SPARQL端點(Endpoint)為接口,上層應用或用戶參考Ontology的定義來構造SPARQL訪問所述層級知識庫。
[0023]一種基于推理的層級知識庫構建方法,包括:
[0024]從數(shù)據(jù)源中獲取數(shù)據(jù),構建并維護領域Ontology、分類Ontology及全局Ontology ;
[0025]根據(jù)數(shù)據(jù)源的Ontology、所述領域Ontology、以及二者之間的屬性映射關系,抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,從而得到所需要的領域知識;
[0026]將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合并存儲,得到基礎知識庫;定制分類Ontology的相關推理規(guī)則,將推理規(guī)則應用到所述基礎知識庫上,得到潛在的知識,并將所述潛在的知識存儲到各個分類對應的分類知識庫中,將所述分類知識庫和基礎知識庫構成層級知識庫。
[0027]上述方法中,領域Ontology的構建是通過該領域對應的多個數(shù)據(jù)源的Ontology融合得到;
[0028]維護領域Ontology、分類Ontology及全局Ontology的方式為:當數(shù)據(jù)源發(fā)生變化時更新領域Ontology,當分類發(fā)生變化時更新分類Ontology,當領域Ontology和分類Ontology任意一個發(fā)生變化時更新全局Ontology。[0029]上述方法中,將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合的方式為:獲取每個數(shù)據(jù)源映射到領域Ontology同一個屬性的屬性集合,并為所述屬性定義融合的方法,從而得到來自不同數(shù)據(jù)源的同一個屬性的融合后的值;其中,所述融合的方法為拼接或取均值,但并不局限于這兩種方式。
[0030]可見,本發(fā)明提出的基于推理的層級知識庫構建系統(tǒng)和方法中,分層結構是根據(jù)自定義規(guī)則來生成的,層級比較靈活。同時,將這些通過規(guī)則推理得到的知識存儲在小的知識庫中,由這些小的知識庫和基礎知識庫構成一個層級的知識庫,維護和更新十分方便和靈活,提高了知識的更新效率
【專利附圖】
【附圖說明】
[0031]圖1為本發(fā)明實施例一的結構示意圖;
[0032]圖2a為基于MO和LOi構建GO的方法中的協(xié)議過程示意圖;
[0033]圖2b為基于MO和LOi構建GO的方法中的調解過程示意圖;
[0034]圖3為實施例二中基于推理引擎構建層級知識庫的一個以餐飲(dining)領域為例的實例結構圖;
[0035]圖4為實施例二中定義的分類Ontology結構示意圖;
[0036]圖5為實施例二中規(guī)則和條件的關系示意圖;
[0037]圖6為實施例二中基于規(guī)則推理的實現(xiàn)方案示意圖。
【具體實施方式】
[0038]本發(fā)明提出一種基于推理的層級知識庫構建系統(tǒng),包括:
[0039]數(shù)據(jù)抓取模塊,用于從數(shù)據(jù)源中獲取數(shù)據(jù);
[0040]Ontology模塊,用于構建并更新領域Ontology、分類Ontology及全局Ontology ;
[0041]知識抽取模塊,用于根據(jù)數(shù)據(jù)源的Ontology、所述領域Ontology、以及二者之間的屬性映射關系,抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,從而得到所需要的領域知識;
[0042]知識構建模塊,包括知識融合子模塊和推理引擎子模塊;其中,所述知識融合子模塊,用于將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合并存儲,得到基礎知識庫;所述推理引擎子模塊,用于調用所述Ontology模塊進行分類Ontology的定義,并定制相關推理規(guī)則,將推理規(guī)則應用到所述基礎知識庫上,得到潛在的知識,并將所述潛在的知識存儲到各個分類對應的分類知識庫中,將所述分類知識庫和基礎知識庫構成層級知識庫。
[0043]以下結合附圖舉具體的實施例詳細介紹。
[0044]實施例一:
[0045]本發(fā)明針對不同的領域,構建領域內的Ontology,將從網(wǎng)絡上獲取的數(shù)據(jù)參照Ontology進行表示和存儲,從而構建一個領域內的知識庫。用戶可以參考Ontology,構建查詢來訪問知識庫。同時,可以根據(jù)知識庫中的內容和屬性,參考所需要的細分類自定義規(guī)貝U,并將規(guī)則應用到知識庫上,得到潛在的知識和關系存儲到小的知識庫中,從而構建一個由基礎知識庫和小知識庫構成的層級知識庫。通過推理得到的層級知識庫使得知識得到了細化,更能滿足上層用戶或者是應用的需求。同時,這樣的層級結構更新和維護都更加方便和聞效。
[0046]本實施例介紹本發(fā)明提出的層級知識庫構建系統(tǒng)的框架。如圖1為本發(fā)明實施例一的結構示意圖,包括如下模塊:
[0047]I)數(shù)據(jù)抓取模塊
[0048]該模塊的主要功能是分布式地從不同數(shù)據(jù)源獲取數(shù)據(jù),所抓取的數(shù)據(jù)對應于該數(shù)據(jù)源的Ontology。有兩種方案,一種是先定義好該數(shù)據(jù)源的Ontology,然后再相應的抓取數(shù)據(jù);一種是先抓取數(shù)據(jù),再根據(jù)數(shù)據(jù)定義數(shù)據(jù)源的Ontology,兩種方法均可。
[0049]2) Ontology (Ontology)模塊
[0050]Ontology模塊包含兩個子模塊,一個是構建Ontology子模塊、一個是完善Ontology子模塊。
[0051]其中,構建Ontology子模塊負責構建所需要的領域Ontology,分類Ontology和全局Ontology ;全局Ontology是前兩者的融合。分類Ontology是根據(jù)分類所需要而定義的一系列子類,每個分類對應一個Ontology。
[0052]完善Ontology子模塊負責當數(shù)據(jù)源發(fā)生變動時及時的更新領域Ontology ;分類發(fā)生變化時更新分類Ontology,全局Ontology則隨著領域Ontology,分類Ontology的變化而變化。
[0053]其中,構建領域Ontology的方式可以為:根據(jù)某個領域對應的數(shù)據(jù)源自身的Ontology (LOi)來自動生成系統(tǒng)所需要的領域Ontology (GO)。一種可行的方案是利用參考的領域Ontology (MO)來迭代地構建基于這些LOi的G0。該方案的構建包含兩個過程:一個是協(xié)議(Agreement)過程;一個是調解(Conciliation)過程。圖2a給出了基于MO和LOi構建GO的方法中的協(xié)議過程,圖2b給出了基于MO和LOi構建GO的方法中的調解過程。
[0054]3)知識抽取模塊
[0055]該模塊包含兩個子模塊,一個是數(shù)據(jù)預處理子模塊、另一個是抽取子模塊。
[0056]其中,數(shù)據(jù)預處理子模塊負責對原始數(shù)據(jù)進行預處理,包括刪除冗余數(shù)據(jù),剔除噪聲數(shù)據(jù)等。
[0057]抽取子模塊針對預處理后的數(shù)據(jù),根據(jù)各個數(shù)據(jù)源的Ontology (LOi)、領域Ontology (GO)、以及兩者之間的映射關系,提取能和GO有映射關系的LOi中的屬性,從而得到所需要的領域知識。
[0058]4)知識構建模塊;
[0059]該模塊包含兩個子模塊,一個是知識融合子模塊,另一個是推理引擎子模塊。
[0060]其中,知識融合子模塊負責將抽取得到各個數(shù)據(jù)源的數(shù)據(jù),根據(jù)模式映射文件,將不同數(shù)據(jù)源映射到相同域的數(shù)據(jù)進行融合,并存儲到RDB數(shù)據(jù)庫中和三元組存儲中,從而得到基礎知識庫。一個可行的方案是基于Ontology的整合,每個數(shù)據(jù)源的Ontology(LOi)和領域Ontology (GO)之間存在一個映射關系的文件,根據(jù)這個文件,可以知道對應到GO中同一個屬性的LOi中的屬性集合,為該屬性定義一個融合方法,然后將不同數(shù)據(jù)源的該屬性的數(shù)據(jù)進行融合,比如rating取平均值等等。
[0061]推理引擎子模塊負責根據(jù)分類Ontology和基礎知識庫中的屬性情況,定制相關推理規(guī)則,并將推理規(guī)則應用到基礎知識庫上,得到潛在的知識和關系,并存儲到各個分類對應的小的知識庫中,從而由這些小知識庫和基礎知識庫構成一個層級的知識庫。當然這個過程可以是迭代的,從而生成不同的層次。一個可行的方案是基于規(guī)則的推理。
[0062]5)知識庫接口模塊,該模塊的主要功能是為上層應用或者用戶提供統(tǒng)一的知識庫訪問接口。一種可行的方案就是將所有的知識都存儲在三元組存儲中,然后提供SPARQLEndpoint作為訪問的接口。
[0063]實施例二:
[0064]如圖3為本發(fā)明實施例二中基于推理引擎構建層級知識庫的一個以餐飲(dining)領域為例的實例結構圖。
[0065]由圖3可以看出,要構建得到一個層級知識庫,本實施例需要三個步驟:
[0066]第一步,定義好需要的分類,并調用Ontology模塊構建得到分類Ontology,每個分類對應一個Ontology,每個Ontology內部包含各個子類。針對dining領域,比如針對菜單(menu)的一個醫(yī)學分類,我們可以定義一個名為’ dining_disease.rdf’的醫(yī)學分類Ontology文件,該Ontology文件內部的結構如圖4所示,圖4中的箭頭表示子類關系。
[0067]第二步,根據(jù)基礎知識庫的內容和屬性,以及當前的各個分類Ontology內部的子類,定義相關的推理規(guī)則。規(guī)則是由條件所構成的,圖5給出了規(guī)則和條件之間的關系。
[0068]針對圖4中的分類Ontology舉一個簡單的例子,高血脂禁用菜單(HyperliBanMenu)的規(guī)則為如下表所示。
[0069]
【權利要求】
1.一種基于推理的層級知識庫構建系統(tǒng),其特征在于,所述系統(tǒng)包括: 數(shù)據(jù)抓取模塊,用于從數(shù)據(jù)源中獲取數(shù)據(jù); 本體Ontology模塊,用于構建并更新領域Ontology、分類Ontology及全局Ontology ; 知識抽取模塊,用于根據(jù)數(shù)據(jù)源的Ontology、所述領域Ontology、以及二者之間的屬性映射關系,抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,從而得到所需要的領域知識; 知識構建模塊,包括知識融合子模塊和推理引擎子模塊;其中,所述知識融合子模塊,用于將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合并存儲,得到基礎知識庫;所述推理引擎子模塊,用于調用所述Ontology模塊進行分類Ontology的定義,并定制相關推理規(guī)則,將推理規(guī)則應用到所述基礎知識庫上,得到潛在的知識,并將所述潛在的知識存儲到各個分類對應的分類知識庫中,將所述分類知識庫和基礎知識庫構成層級知識庫。
2.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述Ontology模塊包括構建Ontology子模塊和完善Ontology子模塊;其中, 所述構建Ontology子模塊用于構建領域Ontology,還用于定義分類Ontology和全局Ontology ;其中,所述領域Ontology的構建是通過該領域對應的多個數(shù)據(jù)源的Ontology融合得到; 所述完善Ontology子模塊用于當數(shù)據(jù)源發(fā)生變化時更新領域Ontology,當分類發(fā)生變化時更新分類Ontology,當領域Ontology和分類Ontology任意一個發(fā)生變化時更新全局 Ontology。
3.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述知識抽取模塊包括數(shù)據(jù)預處理子模塊和抽取子模塊;其中, 所述預處理模塊用于對所述數(shù)據(jù)抓取模塊所獲取的數(shù)據(jù)進行預處理,包括刪除冗余數(shù)據(jù)和剔除噪聲數(shù)據(jù); 所述抽取子模塊用于,針對所述預處理之后的數(shù)據(jù),根據(jù)數(shù)據(jù)源的Ontology、所述領域Ontology、以及二者之間的屬性映射關系,抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,從而得到所需要的領域知識。
4.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述知識融合子模塊將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合的方式為:獲取每個數(shù)據(jù)源映射到領域Ontology同一個屬性的屬性集合,并為所述屬性定義融合的方法,從而得到來自不同數(shù)據(jù)源的同一個屬性的融合后的值;其中,所述融合的方法為拼接或取均值。
5.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述推理引擎子模塊是基于位圖的方式進行推理的。
6.根據(jù)權利要求1至5任意一項所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括知識庫接口模塊,用于為上層應用或用戶提供統(tǒng)一的訪問所述層級知識庫的接口。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述知識庫接口模塊利用三元組存儲Triple Store自身的SPARQL端點Endpoint為接口,上層應用或用戶參考Ontology的定義來構造SPARQL訪問所述層級知識庫。
8.一種基于推理的層級知識庫構建方法,應用于權利要求1所述的系統(tǒng),其特征在于,所述方法包括:從數(shù)據(jù)源中獲取數(shù)據(jù),構建并維護領域Ontology、分類Ontology及全局Ontology ; 根據(jù)數(shù)據(jù)源的Ontology、所述領域Ontology、以及二者之間的屬性映射關系,抽取每個數(shù)據(jù)源中能夠映射到領域Ontology中的屬性內容,從而得到所需要的領域知識; 將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合并存儲,得到基礎知識庫;定制分類Ontology的相關推理規(guī)則,將推理規(guī)則應用到所述基礎知識庫上,得到潛在的知識,并將所述潛在的知識存儲到各個分類對應的分類知識庫中,將所述分類知識庫和基礎知識庫構成層級知識庫。
9.根據(jù)權利要求8所述的方法,其特征在于,所述領域Ontology的構建是通過該領域對應的多個數(shù)據(jù)源的Ontology融合得到; 所述維護領域Ontology、分類Ontology及全局Ontology的方式為:當數(shù)據(jù)源發(fā)生變化時更新領域Ontology,當分類發(fā)生變化時更新分類Ontology,當領域Ontology和分類Ontology任意一個發(fā)生變化時更新全局Ontology。
10.根據(jù)權利要求8所述的方法,其特征在于,所述將同一個領域下來自各個數(shù)據(jù)源的領域知識進行融合的方式為:獲取每個數(shù)據(jù)源映射到領域Ontology同一個屬性的屬性集合,并為所述屬性定義融合的方法,從而得到來自不同數(shù)據(jù)源的同一個屬性的融合后的值;其中,所述融合的方法為拼接或 取均值。
【文檔編號】G06F17/30GK103646025SQ201310507147
【公開日】2014年3月19日 申請日期:2013年10月24日 優(yōu)先權日:2013年10月24日
【發(fā)明者】周麗霞, 何亮, 劉洋洋 申請人:三星電子(中國)研發(fā)中心, 三星電子株式會社