王 飛,張應(yīng)中,羅曉芳
(大連理工大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116024)
基于SQWRL的本體知識(shí)庫(kù)語(yǔ)義查詢
王 飛,張應(yīng)中,羅曉芳
(大連理工大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116024)
本體技術(shù)是知識(shí)工程領(lǐng)域的研究熱點(diǎn),本體對(duì)于領(lǐng)域知識(shí)具有強(qiáng)大的語(yǔ)義描述能力和推理能力,能夠很好地被計(jì)算機(jī)識(shí)別和理解,從而可在語(yǔ)義層面實(shí)現(xiàn)知識(shí)共享、重用和擴(kuò)展。本體技術(shù)在形式化、開(kāi)放性和共享性等方面比其他知識(shí)建模技術(shù)能提供更強(qiáng)大的能力。介紹了基于本體的知識(shí)庫(kù)的概念以及基本構(gòu)架;描述了本體知識(shí)庫(kù)查詢的語(yǔ)言特點(diǎn),重點(diǎn)闡述了SWRL規(guī)則以及SQWRL語(yǔ)義查詢;采用語(yǔ)義網(wǎng)規(guī)則語(yǔ)言(SWRL)將材料選擇本體中的因果知識(shí)表達(dá)為一組知識(shí)規(guī)則,增強(qiáng)本體知識(shí)庫(kù)的推理能力;采用Java編程技術(shù)調(diào)用SWRL API和OWL API,將知識(shí)庫(kù)層、用戶界面層及推理層三大模塊組建成一個(gè)完整的語(yǔ)義查詢系統(tǒng),并使用基于描述邏輯的Drools規(guī)則推理機(jī)對(duì)本體進(jìn)行規(guī)則推理。給出了一個(gè)基于SQWRL語(yǔ)義查詢的工程材料領(lǐng)域本體知識(shí)查詢實(shí)例進(jìn)行說(shuō)明。
本體;知識(shí)庫(kù);SWRL規(guī)則;SQWRL;語(yǔ)義網(wǎng);語(yǔ)義查詢
隨著語(yǔ)義網(wǎng)的發(fā)展,語(yǔ)義Web使互聯(lián)網(wǎng)成為全球化知識(shí)共享平臺(tái)。海量的信息與知識(shí)資源為人們提供了認(rèn)識(shí)世界的前提,知識(shí)是與具體領(lǐng)域相關(guān)的,知識(shí)的表達(dá)與組織是領(lǐng)域知識(shí)面臨的挑戰(zhàn)與機(jī)遇,也是知識(shí)發(fā)現(xiàn)和挖掘的基礎(chǔ),如何從顯式表達(dá)的知識(shí)中有效地獲得人們想要的隱含信息成為知識(shí)表示研究的重點(diǎn)。
本體是對(duì)領(lǐng)域知識(shí)的一種概念化的顯示表達(dá),是一種描述信息的概念模型建模工具,具有十分強(qiáng)大的表達(dá)能力和對(duì)邏輯推理的支持。語(yǔ)義檢索是獲得本體領(lǐng)域蘊(yùn)含知識(shí)的方式,只要將需要的隱含信息查詢出來(lái)才能便于人們更加深入地識(shí)別和理解知識(shí)。
目前,本體查詢方式有:基于描述邏輯(Description Logic,DL)查詢、基于RDF(Resource Description Framework)三元組查詢,即SPARQL(Simple Protocol and RDF Query Language)、基于OWL語(yǔ)義查詢,即SQWRL[1](Semantic Query-enhanced Web Rule Language)。然而基于描述邏輯的查詢語(yǔ)言,包括OWL-QL和DIG’s ASK protocol,由于它們表達(dá)意義不夠而不能很好地作為OWL查詢語(yǔ)言;SPARQL是標(biāo)準(zhǔn)的RDF查詢語(yǔ)言,但它不能夠與知識(shí)規(guī)則結(jié)合。OWL不能表示“IF-THEN”產(chǎn)生式知識(shí)規(guī)則,僅靠OWL,其知識(shí)表示的能力有限。因此,需要采用語(yǔ)義規(guī)則語(yǔ)言(Semantic Web Rule Language,SWRL)定義因果關(guān)系知識(shí)。SWRL能夠很好地將OWL概念和關(guān)系與產(chǎn)生式規(guī)則相結(jié)合,形成強(qiáng)大的知識(shí)表達(dá)能力。SQWRL是基于SWRL規(guī)則的查詢語(yǔ)言,能夠很好地兼容SWRL規(guī)則并能夠存儲(chǔ)在OWL本體中,并能進(jìn)行語(yǔ)義查詢。
近年來(lái),對(duì)本體及其相關(guān)應(yīng)用方面的研究一直是研究熱點(diǎn),特別是本體的語(yǔ)義查詢、知識(shí)檢索技術(shù)。張艷濤等[2]闡述了利用圖像本體和SWRL規(guī)則來(lái)實(shí)現(xiàn)圖像情感識(shí)別,在Protégé上進(jìn)行規(guī)則推理,引入Jess推理引擎,獲得圖像隱性屬性信息;張宗仁等[3]使用SPARQL進(jìn)行三元組查詢,使用Jena進(jìn)行讀取和推理,但是查詢過(guò)于局限;王海等[4]使用SQWRL語(yǔ)言進(jìn)行Web語(yǔ)義查詢,對(duì)OWL-S形式的服務(wù)進(jìn)行發(fā)現(xiàn),初次探索了SQWRL語(yǔ)言等,但是都不夠系統(tǒng)。文中在進(jìn)行大量研究之后,建立了一種通用的基于SQWRL的本體語(yǔ)義查詢框架,可以針對(duì)本體知識(shí)庫(kù)進(jìn)行語(yǔ)義查詢,充分展現(xiàn)了SQWRL語(yǔ)言的優(yōu)勢(shì),通過(guò)程序進(jìn)行外部控制本體,這就給本體應(yīng)用提供了開(kāi)放式、共享服務(wù),而且便于擴(kuò)展[5]。
1.1 知識(shí)的概念表示
本體最早來(lái)源于哲學(xué)概念,是共享概念模型的明確的形式化的規(guī)范說(shuō)明[6],在知識(shí)工程領(lǐng)域,知識(shí)可以通過(guò)概念及其關(guān)系表示。本體中知識(shí)概念是指某領(lǐng)域的相關(guān)概念,以及概念與概念之間的關(guān)系。概念又稱(chēng)為類(lèi),概念與概念之間通過(guò)屬性產(chǎn)生關(guān)系,通過(guò)OWL[7-8]描述語(yǔ)言對(duì)本體進(jìn)行形式化描述,使得計(jì)算機(jī)能夠理解本體描述的知識(shí)。
本體知識(shí)就是關(guān)于某一領(lǐng)域概念的一套規(guī)則的清晰的描述,包括基本的概念,概念間的關(guān)系,概念的相關(guān)屬性,屬性的限制條件。因此本體清楚地表達(dá)領(lǐng)域知識(shí)中概念的精確含義以及概念之間的關(guān)系。通過(guò)對(duì)領(lǐng)域知識(shí)中的一般概念以及概念間的關(guān)系形成概念集和關(guān)系集,然后不斷完善應(yīng)用領(lǐng)域知識(shí),最后形成TBox(Terminology Box),即概念和關(guān)系的集合,如下:
其中,a表示概念或術(shù)語(yǔ);m表示屬性;p表示關(guān)系。
1.2 基于SWRL的知識(shí)規(guī)則
SWRL是萬(wàn)維網(wǎng)聯(lián)盟(W3C)于2004年提出,用于描述推理規(guī)則。它是以O(shè)WL子語(yǔ)言O(shè)WL DL、OWL Lite和RuleML[9]為基礎(chǔ)的規(guī)則描述語(yǔ)言。最終是為了能讓規(guī)則與OWL結(jié)合起來(lái),以提高本體的推理能力和邏輯表達(dá)能力。
SWRL規(guī)則的基本成分是Atom,包括七種Atom類(lèi)型(類(lèi)、實(shí)例屬性、數(shù)據(jù)屬性、不同實(shí)例原子、相同實(shí)例原子、內(nèi)置式原子、數(shù)據(jù)值域原子),并且支持開(kāi)放式假設(shè)和OWL類(lèi)表達(dá)式。內(nèi)置式原子(Built-in)包含了規(guī)則中可以自由使用的邏輯比較關(guān)系,還可以通過(guò)開(kāi)放式假設(shè)在本體中增加新的概念定義,作為本體的中間概念,提升本體的推理能力并且擴(kuò)展了本體知識(shí)庫(kù)。SWRL規(guī)則表示形式如下:
Atom^Atom^…->Atom^Atom
其中,Atom表示p(arg1,arg2,…,argn),p代表類(lèi)、屬性或者數(shù)據(jù)斷言符,arg1,arg2,…,argn代表實(shí)例個(gè)體、數(shù)據(jù)或者變量參數(shù)。
SWRL中的內(nèi)部模塊Built-in,包含了規(guī)則中可以使用的邏輯關(guān)系,例如:材料(materials)本體碳鋼的碳含量低于0.25%,稱(chēng)為低碳鋼,那么定義規(guī)則如下:
CarbonSteel(?c)^hasProperty(?c,?p)^CarbonComposition(?p,?comp)^hasValue(?comp,?v)^swrlb:lessThan(?v,0.25)^hasUnit(?v,?u)^UnitPercent(?u)->LowCarbonSteel(?c)
其中,?表示SWRL語(yǔ)法規(guī)則,與實(shí)例;c表示碳鋼實(shí)例,即c是CarbonSteel的一個(gè)實(shí)例;hasValue代表數(shù)據(jù)屬性;swrlb:lessThan表示邏輯小于;hasUnit表示對(duì)象屬性,用來(lái)與UnitPercent類(lèi)產(chǎn)生聯(lián)系;UnitPercent代表百分?jǐn)?shù)單位類(lèi)。
SWRL規(guī)則是由推理前提(Antecedent)和推理結(jié)果(Consequent)組成,一條規(guī)則,若其前提被滿足,則其結(jié)論也必為真[9]。文中工程材料本體中部分規(guī)則如表1所示。
1.3 知識(shí)實(shí)例
知識(shí)實(shí)例是指概念與概念之間關(guān)系的具體體現(xiàn),既包含概念實(shí)例,又包含各種關(guān)系以及屬性。OWL中領(lǐng)域知識(shí)的概念又稱(chēng)為類(lèi),知識(shí)概念實(shí)例叫做個(gè)體,是概念的特例或者說(shuō)是底層的對(duì)象,即某個(gè)類(lèi)的具體實(shí)現(xiàn),類(lèi)似計(jì)算機(jī)編程面向?qū)ο笏枷胫蓄?lèi)的對(duì)象。屬性是概念間非層次關(guān)系的集合,用來(lái)描述和定義本體概念和實(shí)例,其包括對(duì)象屬性和數(shù)據(jù)屬性。對(duì)象屬性的取值范圍是定義的類(lèi),而數(shù)據(jù)屬性的取值范圍是string、boolean、byte、double等數(shù)據(jù)類(lèi)型[10]。例如,碳鋼實(shí)例45號(hào)鋼以及部分屬性如圖1所示。
表1 材料本體中部分SWRL規(guī)則
圖1 知識(shí)實(shí)例圖
2.1 SQWRL查詢語(yǔ)言
SQWRL是基于SWRL的擴(kuò)展本體規(guī)則查詢語(yǔ)言,兼容SWRL的標(biāo)準(zhǔn)語(yǔ)法。它是利用SWRL Built-in進(jìn)行擴(kuò)展定義了一套操作符,用來(lái)組建檢索規(guī)范,因此它可以支持SWRL規(guī)則,可以將規(guī)則轉(zhuǎn)變成高效的查詢,可以進(jìn)行信息提取。它的核心操作符是sqwrl:select,并且標(biāo)準(zhǔn)化的SWRL序列化機(jī)制能夠用來(lái)查詢并存儲(chǔ)在OWL本體中[2]。
SQWRL是基于語(yǔ)義的查詢,與關(guān)系數(shù)據(jù)庫(kù)查詢語(yǔ)言(SQL)有些相似,通過(guò)sqwrl:select自定義參數(shù)個(gè)數(shù),通過(guò)SQWRL推理引擎就可以返回一張二維表,表中記錄查詢本體實(shí)例的信息。例如:材料本體中有一個(gè)類(lèi)MeasureUnit,表示測(cè)量單位類(lèi),它有子類(lèi)UnitMPa,表示壓強(qiáng)單位,有對(duì)象屬性hasUnit,另外一個(gè)類(lèi)YieldStrength,表示屈服強(qiáng)度,通過(guò)hasUnit屬性與UnitMPa類(lèi)相關(guān)聯(lián)。因此,查詢屈服強(qiáng)度大于150 MPa的所有金屬材料以及對(duì)應(yīng)的屈服強(qiáng)度,SQWRL語(yǔ)句如下:
Metal(?m)^hasProperty(?m,?y)^YieldStrength(?y,?s)^hasValue(?s,?v)^swrlb:greaterThan(?v,150)^hasUnit(?s,?u)^UnitMPa(?u)->sqwrl:select(?m,?v)
其中,hasProperty表示對(duì)象屬性;swrlb:greaterThan表示邏輯大于;sqwrl:select表示查詢。
SQWRL同樣支持Built-in庫(kù)里面提供查詢使用的邏輯運(yùn)算符,類(lèi)似數(shù)據(jù)庫(kù)中的邏輯運(yùn)算符,例如:sqwrl:orderBy(升序排列)、sqwrl:orderByDescending(降序排列)、sqwrl:count (總數(shù))、sqwrl:avg(平均值)、sqwrl:lessThan(少于)等等。
文中材料本體中SQWRL查詢語(yǔ)句如表2所示。
表2 SQWRL查詢語(yǔ)句
2.2 語(yǔ)義查詢框架
如何從本體中獲取想要的知識(shí)是語(yǔ)義查詢的關(guān)鍵,因此,文中構(gòu)建了一個(gè)基于本體知識(shí)庫(kù)的語(yǔ)義查詢框架,該框架包括知識(shí)庫(kù)層、推理層以及用戶界面層。
以工程材料本體為例進(jìn)行分析和建立,查詢框架圖如圖2所示。
圖2 語(yǔ)義查詢框架圖
2.2.1 知識(shí)庫(kù)層
知識(shí)庫(kù)是知識(shí)系統(tǒng)的關(guān)鍵,通常來(lái)說(shuō),知識(shí)庫(kù)儲(chǔ)存著關(guān)于領(lǐng)域的計(jì)算機(jī)模型符號(hào),因此,如何組織和描述成為問(wèn)題的關(guān)鍵。W3C已經(jīng)把OWL語(yǔ)言作為本體建模語(yǔ)言,把SWRL作為實(shí)現(xiàn)本體技術(shù)的規(guī)則語(yǔ)言,這樣就可以使OWL具有更加強(qiáng)大的表達(dá)能力和推理能力。知識(shí)庫(kù)層是由OWL描述邏輯組成,包括概念集(TBox)和實(shí)例庫(kù)(ABox),還有規(guī)則庫(kù)。TBox表示概念、公理以及概念和概念之間的關(guān)系,ABox表示概念層面的實(shí)例庫(kù),而規(guī)則可以增強(qiáng)OWL的推理能力。
2.2.2 用戶界面層
用戶界面層包括兩個(gè)界面,一個(gè)是構(gòu)建知識(shí)庫(kù)的界面,也稱(chēng)為知識(shí)構(gòu)建器,使用Protégé3.4.1進(jìn)行概念和實(shí)例的構(gòu)建,如圖2所示;另一個(gè)是用來(lái)進(jìn)行語(yǔ)義查詢的界面,也是用來(lái)組成查詢語(yǔ)句的一部分,用戶可以輸入自然語(yǔ)言,經(jīng)過(guò)轉(zhuǎn)換后生成SQWRL查詢語(yǔ)句,同時(shí)界面可以顯示查詢結(jié)果。
2.2.3 推理層
推理層主要完成推理任務(wù),通過(guò)Drools Rule Engine規(guī)則引擎來(lái)執(zhí)行推理任務(wù),Drools集成在SWRLAPI中,可以加載SWRL規(guī)則,通過(guò)SQWRL查詢引擎進(jìn)行語(yǔ)義查詢,然后將執(zhí)行推理后的查詢結(jié)果返回到用戶查詢界面。
3.1 開(kāi)發(fā)環(huán)境以及SWRLAPI的構(gòu)建
本材料查詢系統(tǒng)中采用美國(guó)斯坦福大學(xué)研發(fā)的本體編輯工具Protégé3.4.1構(gòu)建本體,集成開(kāi)發(fā)環(huán)境是Eclipse4.4,win10 x86,Java8,使用Drools[8-9]查詢推理引擎進(jìn)行規(guī)則推理查詢。Drools集成了基于SWRLAPI[11]的OWL2 RL[8]推理機(jī)和SWRL規(guī)則引擎,使用基于Java語(yǔ)言的API[9],通過(guò)自定義規(guī)則語(yǔ)句,實(shí)現(xiàn)對(duì)本體的推理。經(jīng)過(guò)推理后,SWRL規(guī)則中隱含的關(guān)系通過(guò)屬性與各實(shí)例直接關(guān)聯(lián),得到新的本體關(guān)系,產(chǎn)生新的本體知識(shí)。
雖然SWRLTab在早期的Protégé版本中支持規(guī)則處理,但是不能很好地使用外部控制,而且SQWRL查詢也沒(méi)有集成在里面,Protégé暫時(shí)只能支持SPARQL三元組查詢。因此,需要根據(jù)美國(guó)斯坦福大學(xué)提供的源碼構(gòu)建SWRLAPI,這樣才能在Eclipse中使用Java操控SQWRL;總共分為兩步進(jìn)行,需要兩個(gè)構(gòu)建工具,一個(gè)是Git(分布式版本控制系統(tǒng))、一個(gè)是Maven(項(xiàng)目管理工具)。
(1)Git。
Git是一種免費(fèi)、開(kāi)源的版本控制系統(tǒng),可以高效地管理各種大小項(xiàng)目,可以對(duì)項(xiàng)目進(jìn)行分布式管理。服務(wù)器上設(shè)置Git倉(cāng)庫(kù),本機(jī)上設(shè)置分支倉(cāng)庫(kù),個(gè)人可以自己獨(dú)立開(kāi)發(fā)分支,然后遠(yuǎn)程提交給服務(wù)器,以便于對(duì)開(kāi)發(fā)人員進(jìn)行分布式管理,相互之間互不影響。
使用git clone命令克隆到本地,SWRLAPI[12]需要克隆的地址如下所示:
git clone https://github.com/protegeproject/swrlapi.git
git clone https://github.com/protegeproject/swrlapi-drools-engine.git
git clone https://github.com/protegeproject/swrltab.git
git clone https://github.com/protegeproject/swrltab-plugin.git
git clone https://github.com/protegeproject/swrltab-project.git
git clone https://github.com/protegeproject/swrlapi-example.git
git clone https://github.com/protegeproject/swrlapi-integration-tests.git
將克隆地址復(fù)制到Git Bash界面,即可執(zhí)行克隆操作,就可以將源文件保存到本地文件夾。
(2)Maven。
Maven是Java工程中最常用的項(xiàng)目管理工具,同樣可以通過(guò)命令的方式對(duì)項(xiàng)目進(jìn)行管理和控制,可以對(duì)源碼進(jìn)行編譯、測(cè)試、打包、發(fā)布等,對(duì)依賴包進(jìn)行組織和管理非常方便。打開(kāi)windows系統(tǒng)的命令提示符工具(cd D:workspaceswrl)進(jìn)入文件夾,其中pom.xml是依賴包進(jìn)行管理,在SWRLAPI文件夾中的pom.xml添加如下依賴包,就可以編譯打包操作。
然后使用Maven命令mvn -DskipTests=true clean install,這樣SWRLAPI就創(chuàng)建成功了,如表3所示。因此,可以使用SWRL和SQWRL的可編程接口進(jìn)行開(kāi)發(fā)。
表3 SWRLAPI程序包表
3.2 語(yǔ)義查詢引擎
文中主要利用Protégé中的開(kāi)源OWL API以及SWRL API,并使用Drools規(guī)則推理機(jī),是基于描述邏輯(DL)的推理,對(duì)規(guī)則進(jìn)行加載并推理,以便于用來(lái)推理查詢。主要執(zhí)行過(guò)程如下:
(1)利用OWLOntologyManager創(chuàng)建一個(gè)本體模型管理器,用來(lái)加載OWL本體到內(nèi)存中;
(2)利用SWRLRuleEngine接口將SWRL規(guī)則載入Drools推理機(jī),建立連接,并進(jìn)行推理;
(3)利用SQWRLQueryEngine接口對(duì)推理后的本體文件進(jìn)行語(yǔ)義查詢,通過(guò)SQWRLResult來(lái)獲取查詢后的結(jié)果,結(jié)果是以二維表的形式返回給用戶。
推理過(guò)程是對(duì)規(guī)則先進(jìn)行推理,所有規(guī)則同時(shí)加載到OWL本體中,但是查詢僅僅獲得了跟查詢相關(guān)的規(guī)則的結(jié)果,其主要代碼如下所示:
//定義OWL本體管理器
public static OWLOntologyManager manager;
//定義OWL本體對(duì)象
public staticOWLOntology ontology;
//定義規(guī)則變量
public staticSWRLAPIRule swrlRule1;
//定義規(guī)則文件路徑變量
public static StringfileDirectory;
//定義查詢語(yǔ)句變量
public static String Query1;
//定義存儲(chǔ)規(guī)則容器
List list=new ArrayList();
File file=new File(fileDirectory);
try{BufferedReader br=new BufferedReader(new FileReader(file));//構(gòu)造一個(gè)BufferedReader類(lèi)來(lái)讀取規(guī)則文件
String s=null;
while((s=br.readLine())!=null){//使用readLine方法,一次讀一行
s=s.substring(s.indexOf("=")+1);
list.add(s);} //將獲取規(guī)則存入list容器中
br.close();
manager= //加載本體管理器OWLManager.createOWLOntologyManager();
//使用本體管理器來(lái)加載本體文件,創(chuàng)建本體模型
ontology=manager.loadOntology(IRI.create("file:/d:/materials.owl"));
//使用SWRLRuleEngine規(guī)則引擎添加規(guī)則
SWRLRuleEngine ruleEngine=SWRLAPIFactory.createSWRLRuleEngine(ontology); //加載規(guī)則
for(i=1;i<=list.size();i++){
//ruleEngine的createSWRLRule方法直接將規(guī)則加載到內(nèi)存中
swrlRule1=ruleEngine.createSWRLRule("rule"+i,list[i]);}
ruleEngine.infer();//對(duì)本體進(jìn)行推理
//使用SQWRLQueryEngine創(chuàng)建語(yǔ)義查詢
SQWRLQueryEngine queryEngine1=SWRLAPIFactory
.createSQWRLQueryEngine(ontology);
//運(yùn)行語(yǔ)句查詢,并獲得結(jié)果集,Query1如表2所示
SQWRLResult result=queryEngine.runSQWRLQuery("Q1",Query1);
//遍歷輸出查詢后的結(jié)果集
while(result.next()) {//獲取查詢后的實(shí)例
SQWRLNamedIndividualResultValue materialValue=result.getNamedIndividual("mat");
String material=materialValue.getShortName();}
3.3 語(yǔ)義查詢實(shí)例
以工程材料本體為例,執(zhí)行語(yǔ)義查詢引擎,即可以查詢得到結(jié)果,如圖3所示。
圖3 用戶查詢界面
其中,SWRLAPI程序包里面已經(jīng)集成了Drools[12]引擎,因此可以建立橋機(jī)制將OWL知識(shí)和SWRL規(guī)則聯(lián)系起來(lái),使用規(guī)則和描述邏輯進(jìn)行推理,然后再通過(guò)SQWRLQueryEngine查詢引擎,來(lái)執(zhí)行查詢語(yǔ)句,獲得查詢結(jié)果。由圖3可知,根據(jù)Rule1規(guī)則,通過(guò)查詢語(yǔ)句可以得到查詢的材料為45,40,40Cr三種鋼材料,而40Cr是屬于調(diào)質(zhì)鋼系列,但是碳含量在0.4%,通過(guò)執(zhí)行規(guī)則可以推理得到40Cr鋼也屬于中碳鋼實(shí)例,說(shuō)明滿足規(guī)則Rule1的調(diào)質(zhì)鋼也是中碳鋼。因此,通過(guò)SQWRL不僅能夠?qū)^承類(lèi)進(jìn)行查詢,而且通過(guò)Drools引擎執(zhí)行SWRL規(guī)則后,還完成了對(duì)推理后本體的查詢?nèi)蝿?wù)。
使用基于規(guī)則的語(yǔ)義查詢語(yǔ)言(SQWRL)進(jìn)行推理查詢,并使用SWRLAPI內(nèi)置的Drools規(guī)則引擎,構(gòu)建工程材料本體進(jìn)行實(shí)驗(yàn)驗(yàn)證,并用第三方用戶界面進(jìn)行工程材料選擇查詢,對(duì)本體資源進(jìn)行深入挖掘,對(duì)隱含的知識(shí)進(jìn)行查詢,進(jìn)一步完善本體中的關(guān)系。使用SQWRL不僅可以完成簡(jiǎn)單的查詢,也可以完成復(fù)雜的查詢,并能推理得到新的知識(shí)。工程材料選擇是一個(gè)十分復(fù)雜的過(guò)程,文中僅通過(guò)構(gòu)建基于本體知識(shí)庫(kù)的查詢框架,展示SQWRL強(qiáng)大的規(guī)則推理能力?;赟QWRL的知識(shí)框架是開(kāi)放式、可擴(kuò)展、可重用的,該框架可以應(yīng)用于其他本體的查詢,可以對(duì)領(lǐng)域本體進(jìn)行擴(kuò)展,通過(guò)編寫(xiě)外部程序來(lái)對(duì)本體知識(shí)庫(kù)進(jìn)行開(kāi)發(fā)應(yīng)用并獲取知識(shí),并且可以不斷完善,為今后語(yǔ)義查詢提供另一種方式。但是語(yǔ)義規(guī)則不具有通用性和易讀性,規(guī)則可能造成本體關(guān)系沖突,維護(hù)成本較高。在實(shí)際應(yīng)用中,如何提升查詢的準(zhǔn)確率和效率,簡(jiǎn)化SQWRL語(yǔ)言,解決沖突等問(wèn)題是今后的研究方向。
[1]O’ConnorMJ,DasA.SQWRL:aquerylanguageforOWL[C]//FifthinternationalworkshoponOWL:experiencesanddirections.Chantilly,VA:[s.n.],2009.
[2] 張艷濤,陳俊杰,相 潔.基于SWRL本體推理研究[J].微計(jì)算機(jī)信息,2010,26(3-3):182-183.
[3] 張宗仁,楊天奇.基于自然語(yǔ)言理解的SPARQL本體查詢[J].計(jì)算機(jī)應(yīng)用,2010,30(12):3397-3400.
[4] 王 海,范 琳,李增智.基于SQWRL的語(yǔ)義Web服務(wù)發(fā)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2010,29(9):76-79.
[5]ZhangYingzhong,LuoXiaofang,ZhaoYong,etal.Anontology-basedknowledgeframeworkforengineeringmaterialselection[J].AdvancedEngineeringInformatics,2015,29(4):985-1000.
[6] 周 亮,黃志球,倪 川.基于SWRL規(guī)則的本體推理研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(10):67-70.
[7]O’ConnorMJ,DasA.ApairofOWL2RLreasoners[C]//ProceedingsofOWLexperiencesondirectionsworkshop.[s.l.]:[s.n.],2012:1-10.
[8]HorridgeM,BechhoferS.TheOWLAPI:ajavaAPIforOWLontologies[J].SemanticWeb,2011,2(1):11-21.
[9]HorrocksI,Patel-SchneiderPF,BoleyH,etal.SWRL:asemanticwebrulelanguagecombiningOWLandRuleML[C]//Worldwidewebconsortium.[s.l.]:[s.n.],2004.
[10] 張新華,張 飛.“知識(shí)”概念及其涵義研究[J].圖書(shū)情報(bào)工作,2013,57(6):49-58.
[11]Protégéteam.SWRLTabbuildproject[EB/OL].2014.https://github.com/protegeproject/swrltab-project.
[12] 劉 偉.Java規(guī)則引擎-Drools的介紹及應(yīng)用[J].微計(jì)算機(jī)應(yīng)用,2005,26(6):717-721.
Semantic Query of Ontology Knowledge Base Based on SQWRL
WANG Fei,ZHANG Ying-zhong,LUO Xiao-fang
(School of Mechanical Engineering,Dalian University of Technology,Dalian 116024,China)
Ontology technology is a hot research topic in the field of knowledge engineering.Ontology has a powerful semantic description and reasoning ability for domain knowledge,which can be well recognized and understood by computers so as to realize the knowledge sharing,reusing and extension in semantic level.The ontology technology can provide more powerful abilities than other knowledge modeling techniques in the formalism,openness and sharing.The basic concept and framework of the ontology based knowledge base is introduced,and the characteristics of language in ontology knowledge base is described,especially for SWRL and SQWRL.The causal knowledge for material selection is represented as a set of knowledge rules coded with Semantic Web Rule Language (SWRL),which enhance the reasoning ability of the ontology knowledge base.A Java programming technology which uses SWRL API and OWL API is employed,which integrates the knowledge base layer,the inference layer,and the user interface layer,and builds a overall material selection knowledge system.The Drools rule reasoning machine is employed to implement the ontology reasoning,and a semantic query example based on SQWRL for engineering material domain knowledge is presented.
ontology;knowledge base;SWRL rule;SQWRL;semantic web;semantic query
2016-03-21
2016-06-13
時(shí)間:2017-01-04
國(guó)家自然科學(xué)基金資助項(xiàng)目(51375069)
王 飛(1989-),男,碩士研究生,研究方向?yàn)榛诒倔w的知識(shí)工程、語(yǔ)義Web;張應(yīng)中,碩士生導(dǎo)師,研究方向?yàn)榛诒倔w的語(yǔ)義信息技術(shù)及工程應(yīng)用、產(chǎn)品三維數(shù)字建模;羅曉芳,碩士生導(dǎo)師,研究方向?yàn)橛?jì)算機(jī)圖形圖像處理,概念設(shè)計(jì)、基于網(wǎng)絡(luò)的協(xié)同設(shè)計(jì),智能CAD。
http://www.cnki.net/kcms/detail/61.1450.TP.20170104.1102.096.html
TP182
A
1673-629X(2017)02-0015-05
10.3969/j.issn.1673-629X.2017.02.004