薛曉莉,段躍興
(太原理工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,山西 太原030024)
目前,RDF數(shù)據(jù)推理技術(shù)[1,2]主要分為3 類:本體與描述邏輯相結(jié)合、本體與規(guī)則相結(jié)合以及本體與推理機相結(jié)合[3]。這些推理往往都是在單一領(lǐng)域內(nèi)進行研究,使用最多的方法是將本體與規(guī)則或者本體與推理機結(jié)合起來進行單領(lǐng)域的前向推理。例如鐘秀琴等[4]通過將本體和Prolog規(guī)則結(jié)合實現(xiàn)了在平面幾何領(lǐng)域的知識推理,Raimond等[5]通過將音樂領(lǐng)域內(nèi)的多個數(shù)據(jù)集進行關(guān)聯(lián)實現(xiàn)了音樂領(lǐng)域的知識推理;Saleem 等[6]通過將本體和推理機結(jié)合實現(xiàn)了在生物制藥領(lǐng)域的知識推理。然而現(xiàn)有的RDF數(shù)據(jù)推理方法,往往集中在單一領(lǐng)域內(nèi)進行前向推理,由于涉及的領(lǐng)域范圍太窄導(dǎo)致發(fā)現(xiàn)的信息量較少,且由于推理處于單一方向?qū)е峦评淼男瘦^低。為了發(fā)現(xiàn)不同領(lǐng)域信息間隱含的知識,提高推理的速度,本文提出了一種將多個領(lǐng)域的RDF數(shù)據(jù)關(guān)聯(lián)起來進行混合推理的方法,該方法通過建立關(guān)聯(lián)規(guī)則來將旅游、交通、金融3 個領(lǐng)域的RDF數(shù)據(jù)集關(guān)聯(lián)起來,并且在前向規(guī)則的基礎(chǔ)上增加了混合規(guī)則,將現(xiàn)有的基于單一領(lǐng)域進行前向推理的方法改進為基于多個領(lǐng)域進行混合推理的方法。本方法克服了傳統(tǒng)方法中涉及領(lǐng)域范圍狹窄導(dǎo)致隱含信息發(fā)現(xiàn)率低的問題,提高了推理的速度,最后在實際數(shù)據(jù)上進行實驗,驗證了方法的有效性。
RDF (resource description framework)[7],是W3C 推薦的資源描述標準,用于描述語義Web資源的通用框架,由主體 (subject)、謂詞 (predicate)、客體 (object)三元組構(gòu)成。RDF這樣的三元組結(jié)構(gòu),可以方便地描述對象或者資源以及它們之間的關(guān)系。本體 (Ontology)[8]是共享概念模型的形式化規(guī)范說明,能夠很好地解決語義層次上Web信息的共享與交換。所以我們通過構(gòu)建本體以及添加實例的方式來建立RDF數(shù)據(jù)集。
描述邏輯[9],是基于概念的知識表達形式,具有正式的基于邏輯的語義和很強的表達能力。所以文中通過采用基于描述邏輯的本體表達方式來構(gòu)建本體。下面詳細描述基于描述邏輯的本體知識表示以及具體領(lǐng)域本體的構(gòu)建過程,建立單領(lǐng)域RDF數(shù)據(jù)集。
在描述邏輯里,知識庫 (knowledge base,KB)被分成兩個部分KB (T,A)=<TBox,ABox>。TBox (terminology box)是描述概念、概念間的關(guān)系,以及關(guān)系與關(guān)系之間的公理集合。ABox (assertion box)是斷言集合,分為兩類:概念斷言和關(guān)系斷言。
用描述邏輯的一個五元組來表示Tourism _System(旅游本體)=<OInfoS,OInfoCS,OInfoRS,OInfoXS,OInfoIS>,其中OInfoS表示本體的構(gòu)造算子集;OInfoCS表示本體中的類,如游客類 “Visitor”;OInfoRS表示本體中的對象屬性以及數(shù)據(jù)屬性,如游覽屬性 “visit”,年齡屬性 “age_is”;OInfoXS表示本體描述邏輯知識庫TBox中概念和關(guān)系的公理集,如概念描述學(xué)生游客 “StudentVisitor≡Visitor∩(-hasCard.StudentCard)”,古典園林景觀“ClassicalGardensTourismLandscape≡ScenicAreas∩(-has-Scenic.ClassicalGardens)”;OInfoIS表示本體描述邏輯知識庫ABox中概念和關(guān)系的斷言集,如描述實例游客Lizi且參觀景點PalaceMuseum,為 “StudentVisitor (Lizi)”、“ClassicalGardensTourismLandscape (PalaceMuseum )”、“visit(Lizi,PalaceMuseum)”。
構(gòu)建本體的意義,在于將物理地址上分散的各種信息,按照人類的邏輯思維將它們關(guān)聯(lián)起來,形成一個用形式化定義的知識庫,實現(xiàn)領(lǐng)域知識的共享和重用。下面用描述邏輯的形式語言來描述Tourism_System (旅游本體)中的幾個重要的概念。
Visitor≡Person∩ (-visit.ScenicAreas)“至少參觀一個景點”,AdultVisitor≡Visitor∩greaterThan (age,18)“大于18 歲的游客”,StudentVisitor≡Visitor∩ (-has-Card.StudentCard)“擁有學(xué)生證的游客”,CollegeVisitor≡StudentVisitor∩CollegeCard (StudentCard) “學(xué)生證件是大學(xué)的學(xué)生游客”,TeacherVisitor≡AdultVisitor∩ (≥1 jobIs.Teaching) “至少有一個工作是教書的成年游客”。ScenicAreas≡HumanLandscape∪NaturalLandscape “景點包括人文景點和自然景點”,HumanLandscape≡ScenicAreas∩ (≥1hasScenic.HumanScenic) “至少有一個景點是屬于人文的景點”。
表1為Tourism_System (旅游本體)中的部分屬性。
表1 部分屬性結(jié)構(gòu)及其設(shè)置
圖1 為旅游本體的部分結(jié)構(gòu)。其中,上半部分為Tbox,虛箭頭表示類的屬性,實箭頭表示子類和父類的關(guān)系;下半部分為Abox,實箭頭表示實例已定義的屬性,虛箭頭表示系統(tǒng)推理出的屬性。主要有游客、景點、地點等類和實例的部分信息。
采用上述的方法一并構(gòu)建了交通、金融領(lǐng)域的本體。下面用OWL語句描述交通本體中部分類、屬性、實例等信息。
圖1 旅游本體部分結(jié)構(gòu)
將多領(lǐng)域RDF數(shù)據(jù)集進行關(guān)聯(lián),本質(zhì)上就是將多個領(lǐng)域的本體進行對準。本體對準,是指建立兩個本體之間的連接和關(guān)聯(lián)的過程。本文通過將旅游領(lǐng)域、交通領(lǐng)域以及金融領(lǐng)域的本體進行對準,來建立3個領(lǐng)域的RDF數(shù)據(jù)集之間的聯(lián)系,從而為之后的推理做基礎(chǔ)。
關(guān)于本體對準的方法有很多,如基于本體分割的方法[10]、屬性權(quán)重的方法[11]、SWRL規(guī)則的方法[12]等。
規(guī)則使用的靈活性,使得它可以在具體的領(lǐng)域按照需要來添加,所以本文將OWL 和SWRL 規(guī)則結(jié)合起來進行本體的對準,這樣可以靈活地按照需要建立旅游、交通、金融3個領(lǐng)域本體之間的映射關(guān)系。下面簡要介紹SWRL規(guī)則語言的形式以及詳細描述如何通過OWL 和SWRL 規(guī)則進行本體的對準。
SWRL[13](semantic web rule language),是W3C 推薦的規(guī)則語言,它是在OWL 1DL和OWL Lite的基礎(chǔ)上,采用了規(guī)則標記語言 (Rule Markup Language,RuleML)的一個僅包含一元和二元謂詞的子集。SWRL規(guī)則由前提和結(jié)論組成,若前提被滿足則結(jié)論為真。SWRL 規(guī)則的一般性形式化描述如式 (1)所示
上述式 (1)包含的語義是:若變量x是類A 和類B的實例,那么能推出它是類C的實例。
我們采取OWL 和SWRL 規(guī)則相結(jié)合的方法來對本體進行對準。首先,將3個本體中的概念和屬性,采用owl:SameAs進行關(guān)聯(lián);其次,采取基于SWRL規(guī)則的方法將3個本體中的有關(guān)聯(lián)的概念和屬性建立關(guān)聯(lián)映射。具體步驟如下:
(1)將旅游領(lǐng)域的游客類、交通領(lǐng)域的乘客類以及金融領(lǐng)域的儲戶類用owl:SameAs進行對準。如下所示:
tourism:Visitor equivalentClass transport:Passenge;
對準游客類和乘客類
tourism:Visitor equivalentClass finance:Depositor;
對準游客類和儲戶類
(2)通過設(shè)置一定的SWRL 規(guī)則,將3個領(lǐng)域本體里的部分類和屬性建立起一定的關(guān)聯(lián)映射,表2 為部分SWRL規(guī)則。
表2 部分SWRL對準規(guī)則
Rule-1 表達的語義是:將旅游本體中的 “游客”類(變量?x 表示游客的實例)、“乘坐”屬性 (take)、“景點”類 (變量?y 表示景點的實例)和交通本體中的 “交通工具”類 (變量?b表示交通工具的實例)關(guān)聯(lián)起來。
Rule-2表達的語義是:將旅游本體中的 “游客”類(變量?x 表示游客的實例)和金融本體中的 “剩余資金”屬性 (has)關(guān)聯(lián)起來。
Rule-3表達的語義是:將旅游本體中的 “游客”類(變量?x 表示游客的實例)和交通本體中的 “路線”屬性(Line)關(guān)聯(lián)起來。
圖2為旅游、交通、金融3個本體對準的簡單關(guān)系圖,橢圓代表類,箭頭代表屬性,虛線箭頭代表由規(guī)則推導(dǎo)出來的映射關(guān)系。
圖2 游客類、乘客類、儲戶類對準
按照推理過程進行的方式,推理分為正向推理、反向推理和混合推理,每種方式因其推理方向不同而各有特點。正向推理是從已知的信息出發(fā),向前推理尋找推理結(jié)果。正向推理的優(yōu)勢是可以很快地對查找的信息做出響應(yīng),缺點是執(zhí)行的目的性不強,可能會執(zhí)行很多不需要的操作,在時間和空間上比較浪費。反向推理是從假設(shè)目標開始向事實方向進行推理,尋找相應(yīng)的已知事實來證實目標。反向推理明顯的優(yōu)點是不會搜索與假設(shè)目標無關(guān)的信息,從而提高了計算的效率。但是這也帶來了缺陷,如果假設(shè)目標不成立,那么就會導(dǎo)致推理求解失敗,浪費時間。
因為正向和反向推理都有優(yōu)缺點,所以本文采用混合推理方式,即將正向推理和反向推理結(jié)合起來,當新的規(guī)則添加到推理機或新的陳述添加到模型中時采用正向推理,當在模型上進行查詢時使用反向推理。下面詳細介紹混合規(guī)則引擎以及在具體領(lǐng)域內(nèi)混合規(guī)則的構(gòu)造過程。
混合規(guī)則引擎將正向推理和反向推理結(jié)合起來,先進行數(shù)據(jù)的正向推理,再將正向推理后的數(shù)據(jù)加入反向規(guī)則進行反向推理,流程如圖3所示。
圖3 混合規(guī)則引擎
混合推理比單純的正向或者反向推理性能要更優(yōu),下面看一個簡單的例子。
前向規(guī)則: (?prdfs:subPropertyOf?q), (?a?p ?b)→ (?a?q?b)。
無論查詢有沒有涉及到子屬性,每次查詢推理機都會執(zhí)行該條前向規(guī)則,這樣在時間上效率比較低。
把上述前向規(guī)則寫成后向規(guī)則: (?a?q?b)← (?p rdfs:subPropertyOf?q),(?a?p?b)。
這條后向規(guī)則也能推出想要的結(jié)果,但是執(zhí)行每一個查詢都要動態(tài)查看是否存在要查詢屬性的子屬性,這、同樣在時間上效率很低。
我們將上面的規(guī)則改成混合規(guī)則如下:(?prdfs:sub-PropertyOf?q),notEqual(?p,?q)→ [(?a ?q?b)←(?a?p?b)]。
推理機預(yù)先將所有的子屬性關(guān)系編譯出來,進行查詢時,只有當查詢中有相關(guān)子屬性才會進行下一步推理,否則將不會做任何工作。相比前向規(guī)則和后向規(guī)則,混合規(guī)則在時間上效率更高。
根據(jù)對旅游領(lǐng)域、交通領(lǐng)域以及金融領(lǐng)域的研究,借助于國內(nèi)外各大旅游網(wǎng)站,汲取了別人在這方面的成果,通過深入探討自己和身邊人的旅游經(jīng)歷以及需要的旅游方面的幫助,分析了下面幾種情況,并且設(shè)計了相應(yīng)的混合規(guī)則,具體規(guī)則描述如下:
Rule1:locate_in (?x,?m),locate_in (?y,?n)→[visit(?x,?y)←has_time (?x,?a),start(?b,?m),terminal (?b,?n),cost _time (?b,?c), Morethan(?a,?c)]
規(guī)則1:推理機先將所有滿足條件的景點編譯出來,如果查詢涉及游客要游覽的景點,就將交通領(lǐng)域的交通工具結(jié)合起來進行查詢,如果有滿足條件的景點就推出來。這樣,如果游客只有限定的幾天假期可以游玩,那么可以推理出他可以去哪些景點游覽。
Rule2:visit(?x,?y),ticket(?y,?m),ticket(?b,?n)→ [take (?x,?b) ←has (?x,?a), Morethan(?a,?m+?n)]
規(guī)則2:結(jié)合規(guī)則1,判斷滿足條件后,如果查詢涉及游客要乘坐的交通工具,就進行反向推理。這樣,如果某游客想去某景點旅游,可以推理出他能選擇的旅游線路是什么。
Rule3:StudentVisitor(?x),visit(?x,?y)→ [pay(?x,?a/2)←ticket(?y,?a)]
規(guī)則3:結(jié)合規(guī)則1,判斷滿足游客是學(xué)生以及該游客游覽某景點的條件后,再進行反向推理,如果是學(xué)生游客,參觀景點應(yīng)付半價門票。
Rule4:StudentVisitor(?x),take (?x,?b)→ [pay(?x,?a/2)←ticket(?b,?a)]
規(guī)則4:結(jié)合規(guī)則2,判斷滿足游客是學(xué)生以及該游客乘坐某交通工具的條件后,再進行反向推理,如果是學(xué)生游客,在假期可以享受半價學(xué)生票。
Rule5:visit(?x,?y)→ [take(?x,train)←weather(?y,rain)]
規(guī)則5:結(jié)合規(guī)則1,判斷滿足條件后,再進行反向推理,若滿足景點天氣是雨天,則游客乘坐火車去;若當天是晴天,則乘坐飛機去。
Rule6:visit(?x,?y)→ [take(?x,plane)←weather(?y,sunny)]
規(guī)則6:結(jié)合規(guī)則1,判斷滿足條件后,再進行反向推理,若滿足景點天氣是晴天,則游客乘坐飛機。
本實驗在Windows 8.1 操作系統(tǒng)下進行,CPU 是i5-4200U,內(nèi)存是4 G,基于x64 處理器。使用軟件Protégé4.3、jena 2.12.0以及Eclipse平臺進行開發(fā)。
現(xiàn)給出多領(lǐng)域RDF 數(shù)據(jù)集上的混合推理的詳細流程,具體實驗流程如圖4所示。
圖4 實驗方案
(1)構(gòu)建旅游本體、交通本體以及金融本體;
(2)設(shè)置SWRL規(guī)則將3個領(lǐng)域的本體進行對準;
(3)進行前向規(guī)則、后向規(guī)則以及混合規(guī)則的構(gòu)造;
(4)將3個本體、對準規(guī)則以及混合規(guī)則導(dǎo)入jena推理機,為推理提供事實基礎(chǔ)和規(guī)則基礎(chǔ);
(5)用戶進行查詢;
(6)運行jena推理機進行推理,并且返回結(jié)果。
本文采用由斯坦福大學(xué)的醫(yī)學(xué)信息研究組開發(fā)的Protégé(版本為4.3)作為旅游本體、交通本體以及金融本體的開發(fā)工具,惠普實驗室開發(fā)的jena[14]推理機進行推理,在Eclipse平臺上編寫java代碼進行實驗。程序中的部分代碼如下:
本實驗在Eclipse的控制臺界面進行查詢。用戶輸入對旅行的要求,系統(tǒng)便可以返回不同程度上滿足用戶要求的查詢結(jié)果。下面給出兩個實例來驗證推理過程:
(1)假設(shè)有一個游客曹越,她現(xiàn)在身處太原,有兩天時間可以玩耍,那么系統(tǒng)可以推理出她可以去的景點有哪些,并且景點所在的地方,以及去該景點可以乘坐什么車,景點的門票以及車票等情況,推理結(jié)果如圖5所示。
圖5 推理實例1
由圖5可以看出,系統(tǒng)既可以推出具體可以去的景點(屬于旅游領(lǐng)域),又可以推薦可以乘坐哪些車 (屬于交通領(lǐng)域)。比在單一旅游領(lǐng)域推理出來的信息要豐富的多。
(2)假設(shè)有一個游客栗子,她是一名學(xué)生,目前住在太原。她正好有3天時間可以玩耍,那么推理機可以推理出她去的景點,景點所在的地方,以及去該景點可以乘坐什么車,景點的門票以及車票等情況。推理結(jié)果如圖6所示。
圖6 推理實例2
觀察圖5和圖6:游客曹越只有兩天時間可以玩耍,所以系統(tǒng)推薦出的景點只有大同渾源的 “懸空寺”、 “恒山”以及 “五臺山”和 “平遙”這幾個景點;而游客栗子有3天時間,所以系統(tǒng)不僅推薦了上面幾個景點,另外推薦了北京的 “故宮”、 “頤和園”景點。由于游客栗子是學(xué)生,所以系統(tǒng)自動推理出的景點門票價都是半價。而且系統(tǒng)可以自動推出去該景點可以乘坐的車次,由此可以看出,這樣的推理結(jié)果既準確又人性化,它可以針對不同的游客不同的需求推理出適合他們的旅游線路。由于推理涉及到了交通領(lǐng)域的交通工具等詳細信息,所以這在單一旅游領(lǐng)域內(nèi)是推理不出來的。
通過在推理機中單獨添加前向規(guī)則、后向規(guī)則以及混合規(guī)則,對上述兩個實例以及另外的5個潛在游客的實例進行查詢推理,5名潛在游客的大概情況見表3,系統(tǒng)得到推理結(jié)果消耗的時間見表4。
表3 5個潛在游客基本情況
表4 消耗時間對比
由表4可以發(fā)現(xiàn),7個實例中有5個實例的混合規(guī)則要比前向規(guī)則和后向規(guī)則在時間上消耗的少,可以看出混合推理要比前向或者后向推理效率更高。
因此,在多個領(lǐng)域的數(shù)據(jù)集上進行知識的混合推理,明顯要比單一領(lǐng)域進行知識推理豐富得多,強大的多。
傳統(tǒng)的基于單一領(lǐng)域數(shù)據(jù)集的規(guī)則推理,推理出來的知識比較單一有限。本文嘗試將旅游領(lǐng)域、交通領(lǐng)域、金融領(lǐng)域3個領(lǐng)域的本體進行對準,加入混合規(guī)則,借助jena推理機進行混合推理,推理出來的知識既準確又人性化,可以針對游客不同的需求推理出相應(yīng)的旅行線路。如果僅在單一領(lǐng)域內(nèi)不可能推出很全面的知識,本文在多領(lǐng)域推理方面做了一個大膽的嘗試,事實驗證了其正確性。
然而由于領(lǐng)域知識的多樣性以及變化性,既需要不斷地添加新的類、屬性,又需要不斷地更新設(shè)置本體對準以及規(guī)則。所以仍需要開展更多的應(yīng)用研究。
目前,數(shù)據(jù)如此豐富,信息資源遍地都是。在這數(shù)據(jù)的海洋里,能夠自動推理出人們需要的東西是相當有應(yīng)用價值的。所以,把多個領(lǐng)域的數(shù)據(jù)集關(guān)聯(lián)起來進行推理,是一個很好的方向。在接下來的工作中,按照此思路,可以開發(fā)一個旅游方面的成熟的應(yīng)用型系統(tǒng)。
[1]Berners-Lee T,Hendler J,Lassila O.The semantic web [J].Scientific American,2001,284 (5):28-37.
[2]MENG Qingyi,F(xiàn)ENG Zhiyong,RAO Guozheng.Facing huge amounts of RDF data redundancy terms set partition method[J].Huazhong University of Sci &Tech (Natural Science Edition),2013,41 (2):42-47 (in Chinese). [孟慶義,馮志勇,饒國政.面向海量RDF數(shù)據(jù)的術(shù)語集冗余劃分方法 [J].華中科技大學(xué)學(xué)報 (自然科學(xué)版),2013,41 (2):42-47.]
[3]JIN Yan,WANG Zhihua.Semantic retrieval model based on reasoning and the key technology research [J].Computer Engineering and Design,2013,34 (7):2585-2589 (in Chinese).[金燕,王志華.基于推理的語義網(wǎng)檢索模型及關(guān)鍵技術(shù)研究[J]. 計算機工程與設(shè)計,2013,34 (7):2585-2589.]
[4]ZHONG Xiuqin,LIU Zhong,DING Panping.Based on the construction of knowledge base and application of hybrid reasoning study [J].Journal of Computers,2012,35 (4):761-766 (in Chinese).[鐘秀琴,劉忠,丁盤蘋.基于混合推理的知識庫的構(gòu)建及其應(yīng)用研究 [J].計算機學(xué)報,2012,35(4):761-766.]
[5]Raimond Y,Sutton C,Sandler MB.Automatic interlinking of music datasets on the semantic web [C]//LDOW,2008.
[6]Saleem M,Kamdar MR,Iqbal A.Fostering serendipity through big linked data [C]//Semantic Web Challenge at ISWC,2013.
[7]World-wide web consortium:Resource description framework[EB/OL].http://www.w3.org/RDF.
[8]Bechhofer S.OWL:Web ontology language [M]//Encyclopedia of Database Systems.Springer US,2009.
[9]The description logic handbook:Theory,implementation,and applications[M].Cambridge University Press,2003.
[10]LI Zhiming,LI Shanping,YANG Chaohui,et al.Based on the ontology of ontology mapping algorithm [J].Journal of Pattern Recognition and Artificial Intelligence,2011,24 (2):243-248 (in Chinese).[李志明,李善平,楊朝暉,等.基于本體分割的本體映射算法 [J].模式識別與人工智能,2011,24 (2):243-248.]
[11]ZHANG Xiaohui,JIANG Haihua,DI Ruihua.Based on the data link of attribute weights were refers to the relationship between building [J].Journal of Computer Science,2013,40(2):40-43 (in Chinese).[張曉輝,蔣海華,邸瑞華.基于屬性權(quán)重的鏈接數(shù)據(jù)共指關(guān)系構(gòu)建 [J].計算機科學(xué),2013,40 (2):40-43.]
[12]WANG Ruomei,PENG Liyi,WANG Zhong,et al.Based on the simple SWRL rules peer research and implementation of ontology correlation method [J].Journal of Computer Science,2009,36 (3):126-128 (in Chinese).[王若梅,彭麗儀,王眾,等.基于SWRL規(guī)則的簡單對等本體關(guān)聯(lián)方法研究與實現(xiàn) [J].計算機科學(xué),2009,36 (3):126-128.]
[13]Horrocks I,Patel-Schneider PF,Boley H,et al.SWRL:A semantic web rule language combining OWL and RuleML [J].W3C Member Submission,2004,21:79.
[14]Jena2-A semantic web framework for Java[EB/OL].[2006-05-04].http://jena.sourceforge.net/index.html.