李貫峰+李衛(wèi)軍
摘要:針對農(nóng)業(yè)領(lǐng)域存在的知識表示、推理和重用等問題,將本體理念與技術(shù)引入農(nóng)業(yè)領(lǐng)域,并對如何構(gòu)建枸杞病蟲害本體及相應的SWRL規(guī)則進行研究。首先對枸杞病蟲害知識本體中的概念及概念之間的關(guān)系進行知識表示,構(gòu)建1個可共享、可重用、可擴展的枸杞病蟲害領(lǐng)域本體;然后根據(jù)枸杞病蟲害本體中邏輯關(guān)系設(shè)計一系列SWRL規(guī)則;最后將構(gòu)建的枸杞病蟲害領(lǐng)域本體和SWRL規(guī)則放入Jess推理機中進行推理,通過推理的方法得到病害領(lǐng)域本體的隱含知識,從而完善枸杞病蟲害領(lǐng)域本體。
關(guān)鍵詞:領(lǐng)域本體;SWRL規(guī)則;推理;枸杞病蟲害
中圖分類號: TP391;S435.671 文獻標志碼: A
文章編號:1002-1302(2016)11-0399-03
本體(ontology)作為共享概念模型的明確形式化規(guī)范說明,在知識的組織、共享和重用方面優(yōu)勢明顯,近年來備受人們的關(guān)注[1]。隨著理論基礎(chǔ)和相關(guān)技術(shù)不斷完善與發(fā)展,本體在許多領(lǐng)域已經(jīng)得到了廣泛的應用。農(nóng)業(yè)領(lǐng)域知識是一種可以大幅度提高農(nóng)業(yè)勞動力和生產(chǎn)效率的生產(chǎn)要素,研究農(nóng)業(yè)領(lǐng)域的知識建模,建立一個基于本體的共享農(nóng)業(yè)知識庫,實現(xiàn)本體知識庫的推理功能,完善農(nóng)業(yè)知識服務體系,是加快農(nóng)業(yè)信息化發(fā)展的迫切任務。
本體可以描述領(lǐng)域中的概念關(guān)系,本體知識庫的建立是為了將領(lǐng)域知識及時準確地傳遞給用戶。而基于知識的推理則借助一定的規(guī)則,利用已知的關(guān)系可推出隱含的關(guān)系,本體知識庫的推理研究是為了提供更優(yōu)質(zhì)的知識服務。目前對本體的研究除了將其作為一個領(lǐng)域知識建模工具外,一些本體推理方法也已經(jīng)用于推理和查詢語義Web,其中比較典型的本體推理方法有:基于描述邏輯的推理方法,例如Racer[2]、Pellet[3]等;基于規(guī)則的推理方法,例如Jena等[4];基于傳統(tǒng)的一階謂詞證明器的推理方法,例如Hoolet[5];基于邏輯編程的推理方法,例如F-OWL[6]、KAON2[7]等。這些推理方法都能實現(xiàn)檢查本體的一致性和得到隱含知識的兩大基本推理功能,但是也存在著一些局限性。
本研究借助本體理論思想,選擇枸杞病蟲害領(lǐng)域知識作為研究對象,提取枸杞病蟲害中的主要構(gòu)成要素,借助本體構(gòu)建工具Protégé手工構(gòu)建結(jié)構(gòu)良好的枸杞病蟲害領(lǐng)域本體庫,根據(jù)枸杞病蟲害中概念之間的關(guān)系構(gòu)建相應的SWRL(Semantic Web Rule Language)規(guī)則,用SWRL規(guī)則與Jess[8]推理引擎相集成,建立基于SWRL規(guī)則的本體推理機制,通過推理的方法得到枸杞病蟲害領(lǐng)域本體的隱含知識,進一步完善枸杞病蟲害領(lǐng)域本體的描述,為枸杞病蟲害知識服務提供支持。
1 相關(guān)理論
1.1 本體的構(gòu)建方法
本體論原是哲學領(lǐng)域中為研究存在而發(fā)展出來的概念,隨著人工智能的發(fā)展,本體論逐漸成為計算機及相關(guān)領(lǐng)域關(guān)注的熱點。本體是通過領(lǐng)域?qū)<曳e極參與和通力協(xié)作而構(gòu)建的領(lǐng)域概念、關(guān)系和公理體系的集合,以計算機能理解的語言和形式描述、表示和組織知識,促進知識重用、知識共享和知識服務[9]。隨著本體論研究在農(nóng)業(yè)領(lǐng)域的滲透,本體在農(nóng)業(yè)知識庫構(gòu)建、知識共享服務及智能檢索等方面具有廣泛的應用前景。
隨著本體在各個領(lǐng)域的廣泛應用,出現(xiàn)了多種本體構(gòu)建方法,國內(nèi)外比較有影響的本體構(gòu)建方法有骨架法、IDEF5法、TOVE法、METHONTOLOGY法、XHEMICALS法、SENSUS法及七步法等[10]。
1.2 本體推理機
本體推理機主要是針對本體進行推理,是對知識進行解釋的程序,根據(jù)知識的語義,按一定策略找到知識進行解釋執(zhí)行[11]。目前常用的本體推理機主要有Racer[2]、Pellet[3]、Jena[4]、Jess[8]等。Jess規(guī)則推理引擎是以CLIPS為基礎(chǔ)擴展的、采用Java編寫的開放式規(guī)則引擎。Jess推理引擎的基本結(jié)構(gòu)如圖1所示,包含事實庫、規(guī)則庫和推理機3部分,其中類、屬性、實例和屬性值作為事實存儲在本體中,推理規(guī)則用SWRL規(guī)則表示。推理實施時Jess推理引擎需將本體實例、屬性值和SWRL規(guī)則翻譯成Jess事實和Jess規(guī)則,推理得出的新知識可再寫回本體中。
1.3 SWRL規(guī)則
SWRL規(guī)則基于OWL語言,采用了基于Horn子句的RuleML的1個子集,是按語義方式呈現(xiàn)規(guī)則的一種規(guī)則描述語言[8]。SWRL是語義Web規(guī)則事實上的標準語言,作為W3C的成員提案,主要目標是提供OWL在邏輯表達方面不支持的表達能力,同時保持與OWL語法、語義和理論模型的兼容性。一個合法的SWRL規(guī)則是由表示前提(antecedent)和結(jié)論(consequent)構(gòu)成的推導關(guān)系,而每個前提和結(jié)論都是由多個元素(atom)組成,元素之間是邏輯與的關(guān)系,SWRL框架中的元素用于定義條件判斷的限制式,如pests(?x),說明是x屬于pests類,hasSymptom(?x,?y),說明x有癥狀y。
2 枸杞病蟲害領(lǐng)域本體的構(gòu)建
本研究借鑒相關(guān)構(gòu)建本體的方法,依據(jù)農(nóng)業(yè)領(lǐng)域知識的特點,確定了枸杞病蟲害領(lǐng)域本體構(gòu)建的方法,其流程如圖2所示,具體思路如下:
(1)構(gòu)建本體之前,進行需求分析,確定領(lǐng)域本體框架,明確領(lǐng)域本體的應用目標和范疇,對于限定本體范圍、增強本體針對性,以縮短構(gòu)建時間、降低構(gòu)建難度具有重要的意義。
(2)通過專業(yè)相關(guān)書籍、文獻資料、權(quán)威網(wǎng)站信息等途徑獲取領(lǐng)域知識,結(jié)合農(nóng)業(yè)領(lǐng)域?qū)<医ㄗh,對領(lǐng)域知識進行分析、整理和歸納,得到所需領(lǐng)域的概念和關(guān)系。
(3)在對領(lǐng)域知識充分了解的基礎(chǔ)上,結(jié)合需求分析,將領(lǐng)域中的主要概念和關(guān)系列舉出來,在農(nóng)業(yè)領(lǐng)域?qū)<抑笇?,確定領(lǐng)域的核心概念和關(guān)系。
(4)基于前面劃分的概念層次結(jié)構(gòu),使用本體構(gòu)建工具對類、屬性和實例等本體元素進行編碼以及形式化,實施本體構(gòu)建。本研究將用Protégé工具來實現(xiàn)對枸杞病蟲害本體的構(gòu)建。
(5)本體構(gòu)建完成后,領(lǐng)域內(nèi)術(shù)語定義是否清晰,概念及關(guān)系是否完整,需要運用推理工具自動判斷和一致性檢驗,并對有邏輯錯誤的地方進行修改,以確保本體中包含的所有知識不存在矛盾。
(6)本體創(chuàng)建是一個反復迭代的過程,本體庫需要在實際使用過程中不斷去修改、優(yōu)化和完善以便更好地適應實際使用情況。
根據(jù)上述構(gòu)建步驟,在學習關(guān)于枸杞病蟲害書籍和大量文獻資料的基礎(chǔ)上,結(jié)合枸杞病蟲害領(lǐng)域?qū)<医ㄗh,以寧夏地區(qū)常見的枸杞蚜蟲、枸杞紅癭蚊、枸杞癭螨等51種枸杞害蟲和根腐病、炭疽病、白粉病等15種枸杞病害為研究對象,以診斷和防治為研究目標,抽取領(lǐng)域中的重要概念、屬性及實例,用Protégé工具構(gòu)建了1個內(nèi)容豐富、層次清晰、體系完善的枸杞病蟲害本體庫,構(gòu)建好的枸杞病蟲害本體的類結(jié)構(gòu)如圖3所示。其中Thing是默認的超類,其他的類都是它的子類,共計37個本體類,基本涵蓋了實際生產(chǎn)中主要的枸杞病蟲害種類。該本體中有7個數(shù)據(jù)屬性和12個一級對象屬性用于描述枸杞病蟲害的基本信息。還包括51個害蟲實例、15個病害實例和其他本體類實例。
3 SWRL推理規(guī)則構(gòu)建
3.1 SWRL規(guī)則設(shè)計
在已建的枸杞病蟲害本體基礎(chǔ)上,通過對本體概念的提取確定病蟲害所涉及的具體推理元素,并根據(jù)元素組建推理規(guī)則。推理中的規(guī)則定義最為關(guān)鍵,規(guī)則是表示知識的一種方式,推理規(guī)則是典型的條件語句:if-then子句。規(guī)則庫中的規(guī)則是根據(jù)枸杞病蟲害的癥狀、發(fā)生規(guī)律、防治方法等概念層次和概念之間的關(guān)系定義出的關(guān)系規(guī)則,這些規(guī)則嚴格控制著本體的行為,能夠為枸杞病蟲害知識的診斷、推理或判定提供依據(jù)。
舉1個簡單的例子說明SWRL規(guī)則的建立方法。根據(jù)對枸杞根腐病的癥狀描述為枸杞病株外觀表現(xiàn)為葉片發(fā)黃、萎垂;挖起病株剖檢根、莖部,可見患部變褐至黑褐色,有的皮層腐爛、脫落、露出木質(zhì)部。用SWRL翻譯以上的自然語言,可以得到SWRL規(guī)則:葉片發(fā)黃∧葉片萎垂∧根部變黑褐色∧莖部變褐色∧根部皮層腐爛∧莖基部皮層脫落 →根腐病。然后依照SWRL的語法和語義,構(gòu)建相應的SWRL推理規(guī)則格式如下:
Wolfberry(?x)∧Disease(?y)∧(Roots(?z)∧harmsOn(?x,?z)∧hasColor(?z,blackbrown)∧hasDS(?z,rot))∧(Leaf(?u)∧harmsOn(?x,?u)∧hasColor(?u,yellow)∧ hasDS(?u,sag))∧(Branches(?v)∧harmsOn(?x,?v)∧hasColor(?v,brown)∧hasDS(?v,Cortex fall off))→Ceitocybe bescens(?y)
其中x、y、z、u、v分別為類Wolfberry(枸杞)、Disease(病害)、Roots(根部)、Leaf(葉片)Branches(莖)的實例,harmsOn、hasColor、hasDS等為屬性關(guān)系。
通過上述方法就能將枸杞病蟲害本體中概念、屬性和實例等元素之間的關(guān)系建成相對應的SWRL規(guī)則。根據(jù)本體推理的目標,枸杞病蟲害知識推理會更新領(lǐng)域本體,通過建立的枸杞病蟲害診斷規(guī)則進行推理,逐步完善枸杞病蟲害知識領(lǐng)域本體。表1是本研究定義的枸杞病蟲害領(lǐng)域本體的SWRL規(guī)則庫中的部分SWRL規(guī)則,包括部分診斷病害、蟲害及防治方法的規(guī)則。
4.2 SWRL實現(xiàn)
SWRL Editor是一個開源的SWRL規(guī)則編輯器,可以讓用戶以Horn子句邏輯公式形式的輸入方式來創(chuàng)建、修改和讀寫SWRL規(guī)則并提供與Jess推理引擎的整合,可以方便快速地構(gòu)建基于SWRL的推理規(guī)則并進行推理規(guī)則的驗證。該編輯器被作為插件嵌入Protégé OWL Plugin中,使用戶能在Protégé軟件中方便地編輯SWRL規(guī)則。編輯規(guī)則時,用戶可以直接引用1個本體中的OWL類、屬性和實例,也可以直接訪問SWRL Built-in本體中的所有Built-ins[12]。只有符合語法標準的SWRL規(guī)則才能被有效保存,而且SWRL規(guī)則以O(shè)WL實例的形式保存在相關(guān)的OWL文件中。圖4顯示的是枸杞病蟲害診斷規(guī)則的建立過程。由于SWRL Editor本身并沒有推理能力,需要和Jess推理引擎結(jié)合使用才能完成推理功能。運用SWRL Factory機制,SWRL Editor與Jess API實現(xiàn)連接,從而在API級上與已有規(guī)則引擎相互操作。
SWRL規(guī)則的建立是為了更好地解決基于本體的查詢和推理問題。推理時需要將Protégé中的枸杞病蟲害本體的信息(如類、屬性和實例等)導入Jess中的事實庫,將SWRL表示的規(guī)則導入Jess規(guī)則庫中,并將其通過SWRL JessBridge轉(zhuǎn)換成Jess實例和規(guī)則。通過調(diào)用Jess推理引擎,用戶可以實現(xiàn)對SWRL規(guī)則的語義推理,并可以根據(jù)推理結(jié)果更新知識庫的內(nèi)容。在SWRL JessBridge操作界面,點擊“OWL+SWRL→Jess”按鈕,將枸杞病蟲害領(lǐng)域本體和SWRL規(guī)則轉(zhuǎn)換成Jess事實庫和規(guī)則庫;使用“Run Jess”按鈕、使用Jess推理機進行推理生成新的知識,點擊“Jess→OWL”按鈕即可將推理所得的新知識傳回本體文件,從而更新本體文件[13]。
將構(gòu)建的枸杞病蟲害本體和SWRL規(guī)則放入Jess推理機中進行推理,能得到本體中的隱含知識。基于以上的這些推理規(guī)則可以進一步處理枸杞病蟲害領(lǐng)域本體中的各類之間以及類與實例之間的沖突關(guān)系,深度挖掘類與實例之間隱含的語義關(guān)系,使得推理結(jié)果更加準確。
4 結(jié)束語
本體的推理通過一些處理機制把隱含在顯式定義和說明中的知識提取出來,目的是在本體的應用中充分利用這些知識解決實際問題。本研究以枸杞病蟲害領(lǐng)域的相關(guān)知識為例,運用本體開發(fā)工具建立了枸杞病蟲害知識庫。設(shè)計了一系列的SWRL規(guī)則,并嘗試使用SWRL規(guī)則語言與Jess推理引擎將枸杞病蟲害領(lǐng)域本體和SWRL規(guī)則轉(zhuǎn)換成Jess事實庫和規(guī)則庫,建立了基于SWRL規(guī)則的本體推理機制,得到包含新本體知識的推理結(jié)果, 從而更新了枸杞病蟲害領(lǐng)域本體的隱含知識。
參考文獻:
[1]Studer R,Benjamins V R,F(xiàn)ensel D. Knowledge engineering,principles and methods [J]. Data and Knowledge Engineering,1998,25(2):161-197.
[2]Haarslev V,Moller R. Racer:a core inference engine for the semantic web [C]. In work-shop on Evaluation on Ontology-based Tools,the 2nd International Semantic Web,2003.
[3]Sirin E,Parsia B,Grau B C,et al. Pellet:a practical owl-dl reasoner[J]. Web Semantics:science,services and agents on the World Wide Web,2007,5(2):51-53.
[4]Jena-a semantic web framework for Java[EB/OL].(2009-04-09)[2014-07-08]. http://jena.sourceforge.net/index.html.
[5]Tsarkov D,Riazanov A,Bechhofer S. Using vampire to reason with OWL[C]. International Semantic Web Conference,2004:471-485.
[6]Zou Y,F(xiàn)inin T,Chen H. F-OWL:an inference engine for the semantic web.[2014-07-08]. http://fowl.sourceforge.net/ 2003.
[7]KANO2. (2009-04-09)[2014-07-08]. http://kaon2. semanticweb.org/.
[8]Oconnor M,Knublauch H,Tu S,et al. Supporting rule system interoperability on the semantic web with SWRL[M]//The Semantic Web-ISWC 2005. Springer Berlin Heidelberg,2005:974-986.
[9]熊大紅,方 逵,戴小鵬,等. 農(nóng)業(yè)本體構(gòu)建方法研究 [J]. 農(nóng)機化研究,2011,33(11):48-52.
[10]Maliappis M T. Using agricultural ontologies [J]. Metadata and Semantics,2009 (6):493-498.
[11]潘 超,古 輝. 本體推理機及應用[J]. 計算機系統(tǒng)應用,2010,19(9):163-167.
[12]宗南蘇. 農(nóng)業(yè)知識服務:蟻群算法與語義推理研究[D]. 北京:中國農(nóng)業(yè)科學院,2009.
[13]孫 倩,劉洪巖,王 玥,等. 基于 SWRL 的梨樹病害領(lǐng)域本體隱含關(guān)系挖掘 [J]. 山東農(nóng)業(yè)科學2015,47(6):125-128.