趙嫦花,米春橋
(1.懷化學(xué)院計算機科學(xué)與工程學(xué)院,湖南 懷化 418000;2.武陵山片區(qū)生態(tài)農(nóng)業(yè)智能控制技術(shù)湖南省重點實驗室,湖南 懷化 418000)
農(nóng)業(yè)領(lǐng)域信息知識的關(guān)聯(lián)性影響本體知識庫內(nèi)容的可視化程度.規(guī)范本體的關(guān)鍵是如何正確地處理知識領(lǐng)域的相關(guān)概念,但由于對同一概念會有不同理解和定義[1],因此只有統(tǒng)一概念才能實現(xiàn)本體在不同領(lǐng)域的應(yīng)用.應(yīng)用于語義網(wǎng)的自動化信息處理可以實現(xiàn)系統(tǒng)與人之間的互通.本體可用建模語言來表示,用存儲它的狀態(tài)和行為的類來表示概念.UML類圖與本體的結(jié)構(gòu)相似,但UML類圖只提供領(lǐng)域類結(jié)構(gòu)和層次的靜態(tài)視圖,類層次只定義超類與內(nèi)部類的關(guān)系.一張類圖的所有特征和原則都能應(yīng)用于本體建模[2].農(nóng)業(yè)傳感器終端采集的數(shù)據(jù)量大且多樣化,如果不建立統(tǒng)一的概念標(biāo)準(zhǔn),就會嚴(yán)重影響有用信息的挖掘.在農(nóng)業(yè)領(lǐng)域已經(jīng)有UML類圖,只要充分利用這些類圖實現(xiàn)對農(nóng)業(yè)本體的擴展,就能迅速有效地建立本體庫,并基于本體庫實現(xiàn)語義應(yīng)用.筆者利用Protege平臺通過類圖實現(xiàn)本體的可視化描述和擴展,并通過概念化模型豐富已有的本體,實現(xiàn)本體之間的聯(lián)系.
Protege平臺是構(gòu)建本體的環(huán)境,通過定義插件使得本體構(gòu)建變得更加簡單.可視化本體可以通過屬性顯示本體結(jié)構(gòu)圖,但是這些圖不能在類圖中顯示,需要下載Grahpviz等可視化軟件支持類與類之間的關(guān)聯(lián)有專門的命名規(guī)則,在視圖中對信息的描述與UML類屬性相似.本研究也采用類似的方法為類設(shè)置屬性和行為,通過Grahpviz軟件在OntoViz中將類關(guān)聯(lián)起來[3].所有本體的對象包括類、實例、屬性、匿名類、對象之間的關(guān)系等,都是OWLAPI的擴展.OWL2UML是一個提供基于本體的UML圖表視圖的插件,由于這個插件使用OWLAPI,只能在老版的Protege中運行,不能實現(xiàn)所有類圖的可視化,也不能解決本體的重用問題,但仍能滿足一般用戶的需求.Protege提供了不同的插件來支持本體模型的可視化,但不支持UML.
有關(guān)研究[4-10]表明,UML到OWL語法層上的轉(zhuǎn)換是可以實現(xiàn)的,但核心問題是如何實現(xiàn)自動遵循規(guī)則的可視化轉(zhuǎn)換.筆者將利用UML實現(xiàn)互操作本體模型,即實現(xiàn)抽象層面的語法規(guī)則到可視化應(yīng)用層面的映射.
構(gòu)建農(nóng)業(yè)領(lǐng)域本體不是一個簡單的過程,需要有理解農(nóng)業(yè)領(lǐng)域概念的人或群體.在本體構(gòu)建過程中,盡管通過努力可以使得概念標(biāo)準(zhǔn)化、統(tǒng)一化,但還是會存在誤差.這是因為,一方面同一對象有不同的名字,單個通用本體不能完全地表示某個特定領(lǐng)域;另一方面是存在多義性,同一個對象在不同情境下意義也可能完全不同.例如,農(nóng)業(yè)本體中的蟲害作為一個類,可以用Bug,Insect,Pest,Worm這4個詞,術(shù)語的不一致導(dǎo)致在農(nóng)業(yè)信息搜索過程中系統(tǒng)通常會找到一些無用的信息,浪費了大量的時間.因此,需要對農(nóng)業(yè)領(lǐng)域制定一套統(tǒng)一的術(shù)語,用于處理相關(guān)問題或根據(jù)實際情況設(shè)置同義關(guān)系.農(nóng)業(yè)領(lǐng)域代表數(shù)據(jù)的概念,在很多情況下用諸如UML這樣標(biāo)準(zhǔn)化的語言來存儲,這促使人們尋求將UML轉(zhuǎn)換成本體的方法.UML模型中存儲的數(shù)據(jù)遵循預(yù)先統(tǒng)一定義的格式,與本體存儲數(shù)據(jù)有相似的結(jié)構(gòu),這為UML到OWL的轉(zhuǎn)換奠定了基礎(chǔ).在概念初始化定義階段對其進行層級結(jié)構(gòu)劃分,不同術(shù)語間的關(guān)系就很容易被定義.良好的領(lǐng)域概念結(jié)構(gòu)關(guān)聯(lián)性可促進對領(lǐng)域概念的理解,這也是本體要解決的根本問題.農(nóng)業(yè)領(lǐng)域中類、實例、屬性和關(guān)系這4個基本要素構(gòu)成了本體的結(jié)構(gòu).對比分析OWL類和UML類這2個實體集以增加新的實體及其關(guān)聯(lián),通過映射來判斷這2個實體名稱是否相同,若相同則不增加到本體庫中,反之則增加,從而實現(xiàn)可視化的本體擴展及信息關(guān)聯(lián)挖掘.
本體定義了一套概念及相互關(guān)系,類圖代表定義關(guān)系的類集.雖然OWL和UML有不同的作用對象(UML用于建模,OWL用于表征知識)且采用不同的結(jié)構(gòu),但是兩者也有許多相同的元素可以進行關(guān)聯(lián),如表1所示.從表1可以看出,基于這些共同的特征,能通過類圖的概念在Protege平臺中對本體進行擴展.Protege平臺提供了足夠的插件來支持可視化本體,也提供了大量的庫來支持OWL.
表1 本體(OWL)及UML語言成分之間的關(guān)聯(lián)
圖1 使用XSLT轉(zhuǎn)換UMLFig. 1 Transformation of UML Through XSLT
擴展樣式表轉(zhuǎn)換語言(eXtensible Stylesheet Language Transformations,XSLT)是一種用于將XML文檔轉(zhuǎn)換成任意文本的描述語言.轉(zhuǎn)換過程通過XSLT處理器來實現(xiàn),如Xalan-Java.由于XSLT自帶轉(zhuǎn)換規(guī)則,因此只需在處理器中輸入2種原文件和模式就可以實現(xiàn)轉(zhuǎn)換.UML是類圖,OWL是本體,都基于XML格式,因此將UML模型轉(zhuǎn)換為本體模型需用到XSLT,這為利用Protege插件OWLAx實現(xiàn)UML到OWL的轉(zhuǎn)換提供了擴展框架.具體轉(zhuǎn)換步驟如圖1所示.
由于UML和OWL有共同的模型元素,因此可以對這2個對象集進行比較.先創(chuàng)建一個能同時與2個模型互操作的對象集,對象以實體進行存儲.不管是UML或OWL類,實體都是一個類的通用術(shù)語.為了使類具有2個模型的共同特征,需要在2個模型中預(yù)先定義共同屬性.前面提到了UML和OWL的所有共同元素,包括基本的類、屬性、關(guān)系、關(guān)聯(lián)和子類等.筆者為農(nóng)業(yè)領(lǐng)域創(chuàng)建的一個共同實體里,有已定義好的屬性和結(jié)構(gòu).每一個實體都有由類名產(chǎn)生的標(biāo)識符、屬性集和關(guān)系集,由UML和OWL映射到共同的對象中.具體映射過程如圖2所示.在這個過程中,只需將UML和OWL模型生成2個實體集,每一個集合對應(yīng)一個模型,就能統(tǒng)一模型的格式,為后續(xù)的關(guān)聯(lián)與映射作準(zhǔn)備.
圖2 映射UML和OWL類到共同的對象Fig. 2 Mapping of UML and OWL onto Common Entities
在Protege中要想看到完整的UML模型,必須先對UML模型進行處理和比較.比較的目的是找出相同的實體,并利用實體擴展模型,通過OWLAx實現(xiàn)UML模型到OWL模型的連接.在基于UML模型的本體模型擴展豐富之前,進行如下操作:?x,x∈SUML∧x?SOWL.其中:SUML={E,R},模型由實體E和關(guān)系R組成;SOWL={E′,R′},模型由實體E′和關(guān)系R′組成.若滿足這個條件且至少有1個實體的相同名字既在OWL模型又在UML模型中,則通過關(guān)系檢測可以擴展本體模型;若2個模型沒有關(guān)聯(lián)的元素則無法對本體進行擴展.因此,E和E′集必須是相交集.
模型擴展基于以下幾點:
(1)找出所有實體集中的相同名字,存放在一個用于實體間比較的集合中.
(2)判斷從UML模型中創(chuàng)建的包含關(guān)系或?qū)傩缘膶嶓w,是否包含在與本體模型相似的實體中.
(3)確定這些關(guān)系或?qū)傩阅茇S富實體后,將這些不同的屬性和關(guān)系存入一個擴展實體中.這些實體與UML模型一樣,包含了名字、屬性或關(guān)系.
(4)對這些實體進行逐步轉(zhuǎn)換和相似度計算,為本體模型獲得一個擴展關(guān)系-屬性集,所有的擴展選項在類圖中都是可視的.
(5)由用戶確定這些新信息是否要應(yīng)用于本體擴展.
實現(xiàn)UML模型到本體模型的可視化映射,只要不斷地增加所有的屬性,就可以創(chuàng)建一個基于UML類圖的新本體.用戶能夠選擇是否需要添加實體的特征或?qū)傩?,或者沿用原來已存在但在本體中沒有定義的關(guān)系,避免在本體中重新定義.通過阻止添加無關(guān)聯(lián)的實體到本體模型中,可以減少錯誤模型的概率,同時也保證實體之間的關(guān)聯(lián).
以武陵山片區(qū)農(nóng)業(yè)本體(wlspq:FeatureOfInterest)構(gòu)建為例,利用OWLAx實現(xiàn)由UML到OWL的映射過程.在這個實驗中,所添加的新類能豐富本體的聯(lián)系.如圖3所示,添加Layer,Medium和Precipitaton后利用OWLAx能實現(xiàn)UML到OWL的無縫連接.如圖4所示,將UML新類成功地添加到對應(yīng)的關(guān)聯(lián)中,OWLAx相應(yīng)地增加了rdfs:subClassOf,這為到本體的映射提供了關(guān)系描述.圖3中粗線框表示在UML中新增的類.
圖3 UML中新增類Fig. 3 New Classes in UML
圖4 通過UML類圖在OWLAx中增加類、屬性或關(guān)系Fig. 4 Addition of Classes,Attributes and Associations Through UML Class Diagram
圖5 通過UML生成本體截圖Fig. 5 Generation of Ontologies Through UML
從圖3可以看到UML類圖中wlspq:FeatureOfInterest的包含屬性,實體屬性位于UML類層的中部.利用OWLAx實現(xiàn)UML靜態(tài)類圖到OWL的轉(zhuǎn)換,達到了擴展本體屬性的目的.圖4中的hasname是通過UML類圖在OWLAx中增加的屬性和關(guān)系.圖5示出從UML到生成OWL本體的過程,即從可視化視圖到本體的映射.
筆者還進行了功能實驗.為了創(chuàng)建一個基于UML類圖的新本體,要不斷地增加所有的類、屬性或關(guān)系.實驗中,如果本體中已經(jīng)存在某個屬性、類或關(guān)系,例如本體中一開始存在Wind,通過UML在OntoAx中增加這個類就會提示“此類已經(jīng)存在”的錯誤信息.對于沒有的類,如Pests和Surface,就可以順利地添加到本體中.同樣,通過UML和OWL的所有共同元素的關(guān)聯(lián)來判斷屬性或關(guān)系是否已經(jīng)存在,從而確定是否需要添加.阻止添加無關(guān)聯(lián)的實體到本體模型中,減少了錯誤率,也確保了實體之間的關(guān)聯(lián),對本體進行了可視化的擴展.整個實驗的目的是要證明,通過對2個不同模型進行比較能否豐富本體模型.所有實驗都在Protege中進行,用戶可以添加新類的屬性或關(guān)系,也可以添加與本體擴展無關(guān)的新實體.所有的執(zhí)行結(jié)果都由用戶評估判斷,由用戶決定哪些是需要的.實驗結(jié)果表明,通過UML不僅可以在擴展本體的同時阻止無關(guān)聯(lián)實體的添加,還可以對普通實體進行新特性的挖掘.
基于一般模型特征利用UML對農(nóng)業(yè)領(lǐng)域本體進行擴展,利用UML和OWL的關(guān)聯(lián)解釋了模型中各自的意義、數(shù)據(jù)結(jié)構(gòu),以及每一種語言的基本要素和相互關(guān)系.通過比較發(fā)現(xiàn)了UML和OWL的相似特性,這使得兩者具有可比性.以武陵山片區(qū)農(nóng)業(yè)生態(tài)環(huán)境為例,在檢測了所需要的UML結(jié)構(gòu)和要處理的內(nèi)容后,對模型進行操作,將UML轉(zhuǎn)換成OWL,并在Protege中利用OWLAx對UML和OWL實現(xiàn)可視化.農(nóng)業(yè)本體在實際應(yīng)用中的關(guān)系更復(fù)雜、需求更多.本研究只解決了基本模塊,作了簡單的關(guān)系挖掘,完成從UML模型到本體模型的映射.接下來,將實現(xiàn)批量的UML到OWL文件映射,發(fā)掘更多的關(guān)系,提高映射的效率.
[1] LOMBARDO V,PIZZO A.Ontologies for the Metadata Annotation of Stories[C]∥Digital Heritage International Congress.IEEE,2013:35-40.
[3] PROTéGé COMMUNITY[EB/OL].[2017-08-25].http:∥protege.stanford.edu/about.php.
[4] BACLAWSKI K,KOKAR M M,KOGUT P A,et al.Extending UML to Support Ontology Engineering for the Semantic Web[C].The International Conference on Unified Modeling Language,2001:32-47.
[5] DRAGAN GASEVIC,DRAGAN DJURIC,VLADAN DEVEDZIC,et al.Converting UML to OWL Ontologies[C].Proceedings of the 13th international World Wide Web Conference on Alternate Track Papers & Posters,2004:488-489.
[6] OMG.Ontology DefinitionMetamodel,V1.0[EB/OL].[2017-08-25].http:∥www.omg.org/spec/ODM/1.0.
[7] SIDo Group.ATL Use Case-ODM Implementation (Bridging UML and OWL)[EB/OL].[2017-08-25].http:∥www.eclipse.org/atl/usecases/ODMImplementation/.
[8] Representing UML in RDF[EB/OL].[2017-08-25].http:∥infolab.stanford.edu/~melnik/rdf/uml/.
[9] KIKO K,ATKINSON C.A Detailed Comparison of UML and OWL[EB/OL].[2017-08-25].https:∥www.mendeley.com/research-papers/detailed-comparis.
[10] CHAOUI A,ELMANSOURI R,WAFA SAADI,et al.From UML Sequence Diagrams to ECATNets:A Graph Transformation Based Approach for Modelling and Analysis[EB/OL].[2017-08-25].https:∥www.researchgate.net/.