郭廣豐
摘要:在多Agent系統(tǒng)開發(fā)中,Agent間復(fù)雜的信息交互要求消息內(nèi)容包含足夠豐富的語義信息。JADE是目前應(yīng)用最為廣泛的Agent中間件,提供了本體支持,能有效解決上述問題。詳細介紹了三種實現(xiàn)方式,進行了比較研究,并對Agent開發(fā)者提出了一些建議。
關(guān)鍵詞: JADE;語義通信;本體
中圖分類號:TP18 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)30-7166-02
JADE(Java Agent Development framework, Java Agent 開發(fā)框架),是目前應(yīng)用最為廣泛的Agent中間件。JADE是一個完全分布式的中間件系統(tǒng),并提供了豐富的可視化工具,使得開發(fā)基于Agent的應(yīng)用變得更加容易[1]。
JADE是一個基于FIPA標(biāo)準(zhǔn)開發(fā)的Agent開發(fā)框架,Agent間的通信使用FIPA-ACL規(guī)范[2]。在FIPA-ACL規(guī)范中,只定義了通信涉及的基本要素和通信原語(通信行為),未對通信內(nèi)容部分的語義作明確規(guī)定。FIPA-ACL的通信原語[3],顯示發(fā)送者希望通過發(fā)送消息達到目的,定義了簡單的特定行為功能。如“Agree”表示“同意執(zhí)行某些動作”。通信內(nèi)容是從發(fā)送者到接收者ACL消息中的實際信息。根據(jù)FIPA標(biāo)準(zhǔn),可以是一個字符串或原始的字節(jié)序列。在簡單消息中,僅能傳遞圖書書名或圖書價格這樣的內(nèi)容。但在現(xiàn)實的情況下,往往需要更復(fù)雜的信息交互。如對象的多個屬性(除傳遞圖書的書名,還須傳遞該書的作者、ISBN號等信息)或其行為(如買書、賣書等)。這就要求發(fā)送的消息內(nèi)容包含足夠豐富的語義信息,而且消息接收者能分析出其語義信息,執(zhí)行相應(yīng)的行為,完成Agent間的交互。
近年來,研究人員開始關(guān)注本體研究,用本體來實現(xiàn)不同信息系統(tǒng)之間數(shù)據(jù)或知識的交換、共享和復(fù)用。本體是“共享的概念化的明確的形式化規(guī)范”[4]。本體的目標(biāo)是捕獲相關(guān)領(lǐng)域的知識,提供對該領(lǐng)域知識的共同理解,確定該領(lǐng)域內(nèi)共同認可的詞匯,并從不同層次的形式化模式上給出這些詞匯和詞匯之間相互關(guān)系的明確定義[5]。JADE提供了本體支持,Agent間通信消息中可以包含有豐富語義信息的本體,這就實現(xiàn)了Agent間復(fù)雜的信息交互。
1 JADE平臺的基于本體的語義通信
基于JADE框架開發(fā)Agent應(yīng)用程序,以實現(xiàn)Agent間基于本體的語義通信,主要有以下幾種實現(xiàn)方式:
1.1 JADE提供的原生本體支持
在JADE中,提供了jade.content.onto.Ontology類,用來實現(xiàn)本體功能[6]。通常通過以下步驟實現(xiàn):
1) 定義一個本體
根據(jù)對領(lǐng)域知識的分析,抽象出該領(lǐng)域?qū)?yīng)的本體。編寫相應(yīng)的本體類,該類繼承了jade.content.onto.Ontology類,在該類中定義該領(lǐng)域涉及的概念、謂詞以及Agent動作。
2) 編寫本體化的Java類
為第一步定義的本體,針對其中所有的謂詞、Agent動作和概念,分別編寫相對應(yīng)的Java類。其中謂詞對應(yīng)的類實現(xiàn)jade.content.Predicate接口;Agent動作對應(yīng)的類實現(xiàn)jade.content.AgentAction接口;概念對應(yīng)的類實現(xiàn)jade.content.Concept接口。
3) 選擇內(nèi)容語言
JADE框架本身包含了兩種語言的編\解碼器,即SL語言和LEAP語言。SL語言是一種基于S-Expression語法的可讀字符串編碼內(nèi)容語言,支持邏輯運算符和模態(tài)操作;LEAP語言是一種非可讀的字節(jié)編碼內(nèi)容語言。另外JADE網(wǎng)站還提供了XML語法的編\解碼器XML-ACL Codec,以及支持RDF語言的編\解碼器。
4) 注冊定義的本體和內(nèi)容語言
在Agent使用本體和內(nèi)容語言之前,必須在內(nèi)容管理器中注冊它們。一般情況下,該操作在Agent啟動時執(zhí)行(即在Agent類的setup()方法中執(zhí)行,分別使用registerOntology()和registerLanguage()方法注冊該Agent使用的本體和內(nèi)容語言。
5) 創(chuàng)建和處理作為Java對象的內(nèi)容表達
根據(jù)需求,在相應(yīng)Behaviour類中使用jade.content.ContentManager類的相關(guān)方法實現(xiàn)ACL消息的編碼和解碼。
1.2 JSA(JADE Semantic add-on, JADE語義附件)
JADE開發(fā)的Agent一般采用反應(yīng)式結(jié)構(gòu),此外還提供JSA[7] 組件供開發(fā)者使用。JSA采用類似于BDI模型的慎思式結(jié)構(gòu),Agent間采用語義通信。經(jīng)典的JADE程序的主要工作是編寫行為代碼,這些代碼能夠非常清晰的接收和分析簡單消息。而編寫基于JSA的語義Agent更主要是擴展語義解釋器的行為(Semantic Interpreter Behavior,SIB)。該行為的主要動作是對感知事件(如接收到消息)進行推理,進而對Agent的信念和行為進行相應(yīng)的修改[8]。
在實際開發(fā)中,需要根據(jù)具體的應(yīng)用,從以下三個方面實現(xiàn)具體的語義Agent:
1) 增加新的語義解釋規(guī)則;
2) 通過Agent信念庫的定制,實現(xiàn)內(nèi)部狀態(tài)的自主管理;
3) 增加新的動作原型。
1.3 JADE框架基礎(chǔ)上構(gòu)建語義層
該實現(xiàn)方式采用分層結(jié)構(gòu),在JADE的基礎(chǔ)上,構(gòu)建一個語義層,語義層包括語義引擎和本體知識庫。JADE框架的Agent收到消息后,轉(zhuǎn)交給語義層解析,語義層的語義引擎根據(jù)本體知識庫完成推理,根據(jù)推理結(jié)果更新內(nèi)部狀態(tài)或要求Agent執(zhí)行某行為。如果根據(jù)本體知識庫推理要求Agent執(zhí)行某行為,將執(zhí)行命令傳遞給Agent。在整個過程中,JADE框架的Agent充當(dāng)了執(zhí)行部件。文獻[9]中就是利用上述機制來解決語義通信的問題,并實現(xiàn)其原型系統(tǒng)Semantic Agent。Semantic Agent支持OWL和SWRL,開發(fā)者可以使用OWL和SWRL表示領(lǐng)域知識,并進行Agent開發(fā)。endprint
2 實現(xiàn)方式比較
2.1支持的內(nèi)容語言
三種實現(xiàn)方式支持的語言見表1。
表1 三種方法支持的內(nèi)容語言列表
[序號\&實現(xiàn)方式\&支持內(nèi)容語言\&1\&原生本體支持\&SL、Leap、XML或RDF\&2\&JSA\&SL、Leap\&3\&構(gòu)建語義層\&OWL和SWRL\&]
前兩種方法,和JADE框架結(jié)合緊密,本體一般使用SL或Leap語言編寫,需要程序員手工完成,目前尚無工具支持,而且分散在程序段中,測試和驗證尚無工具支持。
第三中方法,本體庫使用OWL和SWRL語言編寫,有成熟的工具如Protégé供程序員使用,并可驗證推理是否正確,可快速構(gòu)建本體知識庫。
2.2模型抽象程度
JSA采用了類BDI的模型,使用這一模型形式化FIPA Agent通信的語義。基于JSA的Agent的設(shè)計依賴于高層的抽象(主要是信念、意圖、動作),開發(fā)Agent需要增加新的語義解釋規(guī)則、定制Agent信念庫、增加新的動作原型,對開發(fā)者要求較高。
原生本體支持和Semantic Agent更接近于反應(yīng)式結(jié)構(gòu),在消息處理環(huán)節(jié)增加了本體知識推理過程,抽象層次較低,對開發(fā)者要求低。
2.3軟件成熟度
三種方法的平臺都開發(fā)了源代碼,截止到目前為止,JADE最新版為4.3.2,JSA最新版為1.6,Semantic Agent為1.0。Semantic Agent目前只有一個原型版本,其執(zhí)行效率還有待進一步驗證;JADE和其JSA附件從1998年開始由意大利Telecom開發(fā),2000年開發(fā)了源代碼,進行了多次版本更新,軟件成熟度更高。
(下轉(zhuǎn)第7179頁)
(上接第7167頁)
3 結(jié)論
綜合三種實現(xiàn)方式的比較分析,Agent語義通信開發(fā)建議選用JSA。同時,我們也期待JSA的下一版本能支持OWL、SWRL這些被知識工程界廣泛認可的本體語言,并實現(xiàn)關(guān)系數(shù)據(jù)庫的信念庫接口。
參考文獻:
[1] Fabio Bellifemine. White paper Jade[EB/OL]. [2014-10-12].http://jade.tilab.com/papers/2003/WhitePaperJADEEXP.pdf.
[2] FIPA. ACL Message Structure Specification [EB/OL]. (2012-12-03).http://www.fipa.org/specs/fipa00061/SC00061G.html.
[3] FIPA. Communicative Act Library Specification [EB/OL]. (2012-12-03).http://www.fipa.org/specs/fipa00037/SC00037J.html.
[4] Gruber T R. A Translation Approach to Portable Ontology Specifications [J]. Knowledge Acquisition, 1993, 5(2):199-220.
[5]馮志勇, 李文杰, 李曉紅,等.本體論工程及其應(yīng)用[M]. 北京:清華大學(xué)出版社, 2007.
[6] Giovanni Caire, David Cabanillas. Application-defined Content Languages and OntoLogies [EB/OL]. http://jade.tilab.com/doc/tutorials/CLOntoSupport.pdf, 2010-4-15.
[7] Vincent Pautret. Jade Semantics Add-on Programmer's guide[EB/OL]. (2014-10-12).http://jade.tilab.com/doc/tutorials/SemanticsProgrammerGuide.pdf .
[8] 程志豐,張蕾,陳佳俊,等. 基于JADE的多Agent系統(tǒng)開發(fā)[M]. 北京:國防工業(yè)出版社, 2013.
[9] Subercaze J, Maret P. Semantic Agent Systems [M]. Berlin: Springer, 2011.endprint
2 實現(xiàn)方式比較
2.1支持的內(nèi)容語言
三種實現(xiàn)方式支持的語言見表1。
表1 三種方法支持的內(nèi)容語言列表
[序號\&實現(xiàn)方式\&支持內(nèi)容語言\&1\&原生本體支持\&SL、Leap、XML或RDF\&2\&JSA\&SL、Leap\&3\&構(gòu)建語義層\&OWL和SWRL\&]
前兩種方法,和JADE框架結(jié)合緊密,本體一般使用SL或Leap語言編寫,需要程序員手工完成,目前尚無工具支持,而且分散在程序段中,測試和驗證尚無工具支持。
第三中方法,本體庫使用OWL和SWRL語言編寫,有成熟的工具如Protégé供程序員使用,并可驗證推理是否正確,可快速構(gòu)建本體知識庫。
2.2模型抽象程度
JSA采用了類BDI的模型,使用這一模型形式化FIPA Agent通信的語義?;贘SA的Agent的設(shè)計依賴于高層的抽象(主要是信念、意圖、動作),開發(fā)Agent需要增加新的語義解釋規(guī)則、定制Agent信念庫、增加新的動作原型,對開發(fā)者要求較高。
原生本體支持和Semantic Agent更接近于反應(yīng)式結(jié)構(gòu),在消息處理環(huán)節(jié)增加了本體知識推理過程,抽象層次較低,對開發(fā)者要求低。
2.3軟件成熟度
三種方法的平臺都開發(fā)了源代碼,截止到目前為止,JADE最新版為4.3.2,JSA最新版為1.6,Semantic Agent為1.0。Semantic Agent目前只有一個原型版本,其執(zhí)行效率還有待進一步驗證;JADE和其JSA附件從1998年開始由意大利Telecom開發(fā),2000年開發(fā)了源代碼,進行了多次版本更新,軟件成熟度更高。
(下轉(zhuǎn)第7179頁)
(上接第7167頁)
3 結(jié)論
綜合三種實現(xiàn)方式的比較分析,Agent語義通信開發(fā)建議選用JSA。同時,我們也期待JSA的下一版本能支持OWL、SWRL這些被知識工程界廣泛認可的本體語言,并實現(xiàn)關(guān)系數(shù)據(jù)庫的信念庫接口。
參考文獻:
[1] Fabio Bellifemine. White paper Jade[EB/OL]. [2014-10-12].http://jade.tilab.com/papers/2003/WhitePaperJADEEXP.pdf.
[2] FIPA. ACL Message Structure Specification [EB/OL]. (2012-12-03).http://www.fipa.org/specs/fipa00061/SC00061G.html.
[3] FIPA. Communicative Act Library Specification [EB/OL]. (2012-12-03).http://www.fipa.org/specs/fipa00037/SC00037J.html.
[4] Gruber T R. A Translation Approach to Portable Ontology Specifications [J]. Knowledge Acquisition, 1993, 5(2):199-220.
[5]馮志勇, 李文杰, 李曉紅,等.本體論工程及其應(yīng)用[M]. 北京:清華大學(xué)出版社, 2007.
[6] Giovanni Caire, David Cabanillas. Application-defined Content Languages and OntoLogies [EB/OL]. http://jade.tilab.com/doc/tutorials/CLOntoSupport.pdf, 2010-4-15.
[7] Vincent Pautret. Jade Semantics Add-on Programmer's guide[EB/OL]. (2014-10-12).http://jade.tilab.com/doc/tutorials/SemanticsProgrammerGuide.pdf .
[8] 程志豐,張蕾,陳佳俊,等. 基于JADE的多Agent系統(tǒng)開發(fā)[M]. 北京:國防工業(yè)出版社, 2013.
[9] Subercaze J, Maret P. Semantic Agent Systems [M]. Berlin: Springer, 2011.endprint
2 實現(xiàn)方式比較
2.1支持的內(nèi)容語言
三種實現(xiàn)方式支持的語言見表1。
表1 三種方法支持的內(nèi)容語言列表
[序號\&實現(xiàn)方式\&支持內(nèi)容語言\&1\&原生本體支持\&SL、Leap、XML或RDF\&2\&JSA\&SL、Leap\&3\&構(gòu)建語義層\&OWL和SWRL\&]
前兩種方法,和JADE框架結(jié)合緊密,本體一般使用SL或Leap語言編寫,需要程序員手工完成,目前尚無工具支持,而且分散在程序段中,測試和驗證尚無工具支持。
第三中方法,本體庫使用OWL和SWRL語言編寫,有成熟的工具如Protégé供程序員使用,并可驗證推理是否正確,可快速構(gòu)建本體知識庫。
2.2模型抽象程度
JSA采用了類BDI的模型,使用這一模型形式化FIPA Agent通信的語義。基于JSA的Agent的設(shè)計依賴于高層的抽象(主要是信念、意圖、動作),開發(fā)Agent需要增加新的語義解釋規(guī)則、定制Agent信念庫、增加新的動作原型,對開發(fā)者要求較高。
原生本體支持和Semantic Agent更接近于反應(yīng)式結(jié)構(gòu),在消息處理環(huán)節(jié)增加了本體知識推理過程,抽象層次較低,對開發(fā)者要求低。
2.3軟件成熟度
三種方法的平臺都開發(fā)了源代碼,截止到目前為止,JADE最新版為4.3.2,JSA最新版為1.6,Semantic Agent為1.0。Semantic Agent目前只有一個原型版本,其執(zhí)行效率還有待進一步驗證;JADE和其JSA附件從1998年開始由意大利Telecom開發(fā),2000年開發(fā)了源代碼,進行了多次版本更新,軟件成熟度更高。
(下轉(zhuǎn)第7179頁)
(上接第7167頁)
3 結(jié)論
綜合三種實現(xiàn)方式的比較分析,Agent語義通信開發(fā)建議選用JSA。同時,我們也期待JSA的下一版本能支持OWL、SWRL這些被知識工程界廣泛認可的本體語言,并實現(xiàn)關(guān)系數(shù)據(jù)庫的信念庫接口。
參考文獻:
[1] Fabio Bellifemine. White paper Jade[EB/OL]. [2014-10-12].http://jade.tilab.com/papers/2003/WhitePaperJADEEXP.pdf.
[2] FIPA. ACL Message Structure Specification [EB/OL]. (2012-12-03).http://www.fipa.org/specs/fipa00061/SC00061G.html.
[3] FIPA. Communicative Act Library Specification [EB/OL]. (2012-12-03).http://www.fipa.org/specs/fipa00037/SC00037J.html.
[4] Gruber T R. A Translation Approach to Portable Ontology Specifications [J]. Knowledge Acquisition, 1993, 5(2):199-220.
[5]馮志勇, 李文杰, 李曉紅,等.本體論工程及其應(yīng)用[M]. 北京:清華大學(xué)出版社, 2007.
[6] Giovanni Caire, David Cabanillas. Application-defined Content Languages and OntoLogies [EB/OL]. http://jade.tilab.com/doc/tutorials/CLOntoSupport.pdf, 2010-4-15.
[7] Vincent Pautret. Jade Semantics Add-on Programmer's guide[EB/OL]. (2014-10-12).http://jade.tilab.com/doc/tutorials/SemanticsProgrammerGuide.pdf .
[8] 程志豐,張蕾,陳佳俊,等. 基于JADE的多Agent系統(tǒng)開發(fā)[M]. 北京:國防工業(yè)出版社, 2013.
[9] Subercaze J, Maret P. Semantic Agent Systems [M]. Berlin: Springer, 2011.endprint