孫倩+劉洪巖+王玥+姚勝男



摘 要:針對梨樹病害領域本體的構建、推理及完善,本文提出了基于SWRL的梨樹病害領域本體的構建方法,該方法包括確定梨樹病害領域的核心概念集、添加概念的屬性及概念之間的關系、添加概念的實例、表示領域本體四個步驟;此外,還設計了一系列SWRL規則,使用Jess推理引擎,建立了SWRL規則的推理機制,通過推理的方法實現了自動挖掘梨樹病害領域本體的隱含關系,從而完善梨樹病害領域本體。
關鍵詞:SWRL規則;梨樹病害;領域本體;隱含關系;自動挖掘
中圖分類號:S436.612.1 ?文獻標識號:A ?文章編號:1001-4942(2015)06-0125-04
Mining of Implicit Relations for
Pear Diseases Domain Ontology Based on SWRL
Sun Qian1, Liu Hongyan2, Wang Yue1, Yao Shengnan1
(1. School of Information Science and Engineering, Shandong Agricultural University, Taian 271018, China;
2. Information Center, Taishan Polytechnic, Taian 271000,China)
Abstract Aiming to build, reason and perfect pear disease domain ontology, a build approach was proposed based on SWRL. The approach was consisted of confirming core concepts, the properties of added concepts and the relationships between concepts, the instances of added concepts and representing domain ontology. In addition, SWRL rules were designed, SWRL reasoning mechanism was established by Jess reasoning engine. Finally, implicit relationships were mined and diseases domain ontology was renewed by reasoning.
Key words SWRL rule; Pear disease; Domain ontology; Implicit relation; Automatic mining
本體可以描述特定領域中的資源關系,而推理則可借助一定的規則,通過已知的關系推出隱含的關系。如今對本體的應用大多將其作為一個建模工具,而忽略了它的推理功能。本文使用SWRL規則語言與Jess推理引擎相集成,建立基于SWRL規則的本體推理機制,通過推理的方法實現了自動挖掘梨樹病害領域本體的隱含關系,從而進一步完善梨樹病害領域本體的描述。
1 基于SWRL規則推理的梨樹病害領域本體的構建
1.1 確定梨樹病害領域的核心概念集
構建領域本體首先要確定本體將覆蓋的專業領域,經過信息收集和需求分析,本文選取梨樹病害領域作為建立領域本體的對象。需首先確定該領域最重要的概念,然后確定與之相關的其他重要概念,以建立核心概念集。本文首先確定“Pear-tree”,然后確定與其相關的概念。表1給出了梨樹病害領域本體的核心概念的名稱及含義。
1.2 添加概念的屬性及確定概念之間的關系
描述一個領域,僅描述該領域的概念是不夠的,還要描述概念的內部結構,即概念屬性。因此,必須為上述核心概念集中的概念添加屬性,并確定與其它概念之間的關系。例如:為“Disease” 添加“describe”屬性,可以表示梨樹病害的特性、癥狀等;添加“D-pathogen”表示“Disease”與“P-kind”之間的關系,表示病害的病原種類;添加“has-byname”表示病害的別名。表2給出了“Pear-tree”與其它概念之間的關系及說明。
表1 梨樹病害領域本體的核心概念
核心概念名稱 解釋
Disease 表示梨樹病害的種類
Growing-period 表示梨樹生長期的各個階段
Part 表示梨樹生病的部位,例如:根、果實、葉子、葉柄
Pathogen
Feature 表示病原的特性,例如:黑色小斑
P-kind 表示梨樹病害的病原種類
Pear-tree 表示梨樹
Symptom
Color 表示梨樹生病部位發生變化后的顏色
Shape 表示梨樹生病部位發生病變的形狀
Dynamic-symptom 表示梨樹生病的癥狀,例如:腐爛
表2 Pear-tree與其它概念之間的關系
名稱 解釋
At-part 表示“Pear-tree” 和 “Part”之間的關系
Has-ds 表示“Pear-tree”和“Dynamic-symptom”之間的關系
Has-c 表示“Pear-tree” 和“Color” 之間的關系
Has-disease 表示“Pear-tree” 和“Disease” 之間的關系endprint
Has-shape 表示“Pear-tree”和“Shape” 之間的關系
Has-feature 表示“Pear-tree”和“Feature” 之間的關系
Has-pathogen 表示“Pear-tree”和“P-kind”之間的關系
At-period 表示“Pear-tree”和“Growing-period”之間的關系
1.3 添加概念的實例
構建領域本體,還必須為概念添加實例。例如:為 “Dynamic-symptom”添加實例“change color”、“die”、“dry-rot”、“falling-off”、“putrescence”、“rotting”、“spotting”、 “wilting”;添加“branch”、“fruit”、“fruit-stem”、“stipe”、“leaf”、“root”作為“Part”的實例;添加梨樹各種病害的名稱為“Disease”的實例,如表3所示。
表3 Disease的部分實例
名稱 中文名稱 ? ? 別名 病原
Pear scab 梨黑星病 Venturia pirina Venturia pirina Anderh.
Pear-Rust 梨銹病 G. haraeanum Gymnosporangium haraeanum Syd.
Pear-black-spot 梨黑斑病 Alternaria kikuchiana Tanaka
Pear brown spot disease 梨褐斑病 Pear-Brown-blight Mycosphaerella sentino (Fr.) Schrot
Pear leaf rot 梨葉腐病 Fabraea maculata (Lev.) Atk
Pear powdery mildew 梨白粉病 Phyllactinia pyri (Cast.) Homma
Black rot of pear 梨輪紋病 Pear rough bark disease Physalospora piricola Nose
Pear-anthracnose 梨炭疽病 Glomerella cingulata (Stonem.)
Spauld et Schrenk
Pear-black-shank 梨黑柄病
1.4 梨樹病害領域本體的表示
本體可以用自然語言描述,也可以用框架(Framework)、語義網絡或本體語言描述和表示。一般選擇采用本體語言表示,常用的本體語言有DL、RDF(S)[1]、OWL[2]、XOL、DAML+OIL等。本文使用的Protégé 3.4.8開發工具支持DAML+OIL以及OWL,可以用RDF、RDFS、OWL等本體表示語言在系統外對本體進行編輯和修改[3]。
首先根據已經確定的核心概念使用Protégé 3.4.8創建相應的類。圖1是使用Protégé 3.4.8 的OWLVizTab顯示的本文創建的梨樹病害領域本體類的示意圖。其次使用“data properties”為類添加屬性,使用“object properties”添加類之間的關系,最后添加實例,從而生成一個OWL文件。
圖1 梨樹病害領域本體類示意圖
2 SWRL規則設計
SWRL是以OWL子語言OWL DL和OWL Lite以及RuleML為基礎的一種規則描述語言,驅使Horn-like規則與OWL知識庫結合,利用抽象的語法表達OWL本體中所描述的知識信息[4]。由于SWRL在OWL中加入了規則,因此可提供更強的邏輯表達能力。SWRL規則是由推理前提antecedent和推理結果consequent構成的[5]。一條規則,若其前提被滿足,則其結論也必為真[6]。
表4是本文定義的梨樹病害領域本體的SWRL規則庫中的部分SWRL規則,包括診斷病害、病原及解決別名問題的規則。例如: Pear-tree(?x)∧At-part(?x, leaf)∧Has-ds(?x, spotting)∧Has-c(?x, yellow)∧Has-shape(?x, circle)∧Has-feature(?x, yellow-acicular-small-point) → Has-disease(?x, Pear-Rust),即若梨樹葉子上出現黃色圓形病斑,并生黃色針狀小點,則可初步診斷該梨樹患梨銹病。 Pear-tree(?x)∧Has-disease(?x, ?y)∧Disease(?y)∧D-pathogen(?y, ?z)→Has-pathogen(?x, ?z),即 梨樹x若診斷為患病y,病害y的病原確定為z,則可確定梨樹x的病害病原為z,其中x、y、z可為類Pear-tree(梨樹)、Disease(病害)、P-kind(病原)的實例。為了解決病害別名的問題,本文也定義了一條規則:Pear-tree(?x) ∧Has-disease(?x, ?y) ∧Disease(?y) ∧Disease(?z)∧has-byname(?y, ?z)→Has-disease(?x, ?z),即梨樹x患病害y,病害y和病害z是別名關系,則梨樹x也患病害z。
表4 梨樹病害領域本體部分SWRL規則
規則名稱 ? ? ?規則表述
Rule1 ? ? Pear-tree(?x) ∧ At-part(?x, leaf) ∧ Has-ds(?x, spotting) ∧ Has-c(?x, yellow) ∧ Has-shape(?x, circle) ∧ Has-feature(?x, yellow-acicular-small-point) → Has-disease(?x, Pear-Rust)endprint
Rule2 ? ? Pear-tree(?x) ∧ At-part(?x, fruit-stem) ∧ Has-ds(?x, spotting) ∧ Has-c(?x, black) ∧ Has-ds(?x, mildew) ?∧ Has-shape(?x, circle) → Has-disease(?x, Pear scab)
Rule3 ? ? Pear-tree(?x) ∧ At-part(?x, leaf) ∧ Has-ds(?x, spotting) ∧ Has-c(?x, yellow) ∧ Has-shape(?x, oval) ∧ Has-ds(?x, mildew)∧ Has-feature(?x, black-acicular-small-point) → Has-disease(?x, Pear scab)
Rule4 ? ? Pear-tree(?x) ∧ At-part(?x, leaf) ∧ Has-ds(?x, spotting) ∧ Has-c(?x, brown) ∧ Has-shape(?x, circle) ∧ Has-ds(?x, falling-off)∧ Has-feature(?x, black-acicular-small-point) → Has-disease(?x, Pear brown spot disease)
Rule5 ? ? Pear-tree(?x) ∧ At-part(?x, fruit) ∧ Has-ds(?x, spotting) ∧ Has-c(?x, brown) ∧ Has-shape(?x, circle) ∧ Has-ds(?x, rotting) ∧ Has-ds(?x, falling-off) → Has-disease(?x, Pear-anthracnose)
Rule6 ? ? Pear-tree(?x) ∧Has-disease(?x, ?y) ∧Disease(?y)∧D-pathogen(?y, ?z)→Has-pathogen(?x, ?z)
Rule7 ? ? Pear-tree(?x) ∧Has-disease(?x, ?y) ∧Disease(?y)∧Disease(?z)∧has-byname(?y, ?z)→Has-disease(?x, ?z)
3 試驗實現與結果
本文選用斯坦福大學開發的一個開源規則編輯器“SWRL Editor” 編輯規則并存儲于本體中。但SWRL Editor本身并沒有推理能力,需要一個推理引擎將本體和SWRL規則庫連接,從而實現通過本體進行推理[7]。Jess規則推理引擎是由美國Sandia國家實驗室分布式系統計算組成員以CLIPS為基礎擴展的、采用Java編寫的開放式的規則引擎[8],Jess 系統包含規則庫、事實庫和推理機三部分[9]。因此,本文在構建了梨樹病害領域本體和SWRL規則的基礎上,選用Jess推理引擎將梨樹病害領域本體和SWRL規則轉換成Jess事實庫和規則庫,然后進行本體推理,得到包含新的本體知識的推理結果,最后將推理結果導回梨樹病害領域本體,從而更新領域本體[10]。
圖2是“SWRL Editor”的操作界面,本試驗在該界面中完成了一系列SWRL規則的編輯和存儲。點擊界面中“OWL+SWRL->Jess”按鈕,將梨樹病害領域本體和SWRL規則轉換成Jess事實庫和規則庫[11]。點擊“Run Jess”按鈕使用Jess推理機進行推理生成新的知識。使用“Jess->OWL”按鈕即可將推理所得的新知識傳回本體文件,從而更新本體文件。圖3中畫圈的位置顯示的是規則:Pear-tree(?x)∧At-part(?x, leaf)∧Has-ds(?x, spotting)∧Has-c(?x, yellow) ∧Has-shape(?x, circle)∧Has-feature(?x, yellow-acicular-small-point) → Has-disease(?x, Pear-Rust)推理得出的新關系:即該梨樹患有梨銹病。
圖2 SWRL Editor 操作界面
圖3 推理得出的新關系
4 結束語
本文構建了梨樹病害領域本體,設計了一系列的SWRL規則,并嘗試使用SWRL規則語言與Jess推理引擎相集成,建立了基于SWRL規則的本體推理機制,實現了自動挖掘梨樹病害領域本體的隱含關系,從而更新該領域本體。
參 考 文 獻:
[1] Resource Description Framework[K/OL].http://www.w3.org/RDF/ .
[2] Bechhofer S, Van Harmelen F, Hendler J, et al . OWL Web Ontology Language Reference [K/OL]. http://www.w3.org/TR/2004/REC-owl-ref-20040210.
[3] A free, open-source ontology editor and framework for building intelligent systems[K/OL]. http://protege.stanford.edu/.
[4] Horrocks I, Patel-Schneider P F, Boley H, et al. SWRL: a Semantic Web rule language combining OWL and RuleML [K/OL]. http://www.w3.org/Submission/SWRL/#1.
[5] SWRL Section 2. Abstract Syntax [K/OL]. http://www.daml.org/2003/11/swrl/abstract.html#2.1.
[6] 王松.語義網服務中基于SWRL推理機制的研究[D].大連:大連海事大學,2008.
[7] 宗南蘇,鄭業魯. 基于本體與SWRL的鱖魚疾病診斷知識表示與語義推理[J]. 農業圖書情報學刊,2009,21(6):10-14,26.
[8] 伍宏偉.基于語義WEB技術的產品配置研究[D].上海:上海交通大學,2009.
[9] Golbreich C, Imai A. Combining SWRL rules and OWL ontologies with Protégé OWL Plugin, Jess, and Racer[C]// The 7th International Protégé Conference, Bethesda, MD, 2004.
[10]丁晟春,江超男. 基于SWRL規則推理的隱含關系挖掘[J].現代圖書情報技術,2011,27(3):68-72.
[11]SWRL Editor FAQ[K/OL]. http://protege.cim3.net/cgi-bin/wiki.pl?SWRLEditorFAQ.endprint