JADE平台的语义通信研究

2014-11-19 05:05郭广丰
电脑知识与技术 2014年30期
关键词:本体

郭广丰

摘要:在多Agent系统开发中,Agent间复杂的信息交互要求消息内容包含足够丰富的语义信息。JADE是目前应用最为广泛的Agent中间件,提供了本体支持,能有效解决上述问题。详细介绍了三种实现方式,进行了比较研究,并对Agent开发者提出了一些建议。

关键词: JADE;语义通信;本体

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2014)30-7166-02

JADE(Java Agent Development framework, Java Agent 开发框架),是目前应用最为广泛的Agent中间件。JADE是一个完全分布式的中间件系统,并提供了丰富的可视化工具,使得开发基于Agent的应用变得更加容易[1]。

JADE是一个基于FIPA标准开发的Agent开发框架,Agent间的通信使用FIPA-ACL规范[2]。在FIPA-ACL规范中,只定义了通信涉及的基本要素和通信原语(通信行为),未对通信内容部分的语义作明确规定。FIPA-ACL的通信原语[3],显示发送者希望通过发送消息达到目的,定义了简单的特定行为功能。如“Agree”表示“同意执行某些动作”。通信内容是从发送者到接收者ACL消息中的实际信息。根据FIPA标准,可以是一个字符串或原始的字节序列。在简单消息中,仅能传递图书书名或图书价格这样的内容。但在现实的情况下,往往需要更复杂的信息交互。如对象的多个属性(除传递图书的书名,还须传递该书的作者、ISBN号等信息)或其行为(如买书、卖书等)。这就要求发送的消息内容包含足够丰富的语义信息,而且消息接收者能分析出其语义信息,执行相应的行为,完成Agent间的交互。

近年来,研究人员开始关注本体研究,用本体来实现不同信息系统之间数据或知识的交换、共享和复用。本体是“共享的概念化的明确的形式化规范”[4]。本体的目标是捕获相关领域的知识,提供对该领域知识的共同理解,确定该领域内共同认可的词汇,并从不同层次的形式化模式上给出这些词汇和词汇之间相互关系的明确定义[5]。JADE提供了本体支持,Agent间通信消息中可以包含有丰富语义信息的本体,这就实现了Agent间复杂的信息交互。

1 JADE平台的基于本体的语义通信

基于JADE框架开发Agent应用程序,以实现Agent间基于本体的语义通信,主要有以下几种实现方式:

1.1 JADE提供的原生本体支持

在JADE中,提供了jade.content.onto.Ontology类,用来实现本体功能[6]。通常通过以下步骤实现:

1) 定义一个本体

根据对领域知识的分析,抽象出该领域对应的本体。编写相应的本体类,该类继承了jade.content.onto.Ontology类,在该类中定义该领域涉及的概念、谓词以及Agent动作。

2) 编写本体化的Java类

为第一步定义的本体,针对其中所有的谓词、Agent动作和概念,分别编写相对应的Java类。其中谓词对应的类实现jade.content.Predicate接口;Agent动作对应的类实现jade.content.AgentAction接口;概念对应的类实现jade.content.Concept接口。

3) 选择内容语言

JADE框架本身包含了两种语言的编\解码器,即SL语言和LEAP语言。SL语言是一种基于S-Expression语法的可读字符串编码内容语言,支持逻辑运算符和模态操作;LEAP语言是一种非可读的字节编码内容语言。另外JADE网站还提供了XML语法的编\解码器XML-ACL Codec,以及支持RDF语言的编\解码器。

4) 注册定义的本体和内容语言

在Agent使用本体和内容语言之前,必须在内容管理器中注册它们。一般情况下,该操作在Agent启动时执行(即在Agent类的setup()方法中执行,分别使用registerOntology()和registerLanguage()方法注册该Agent使用的本体和内容语言。

5) 创建和处理作为Java对象的内容表达

根据需求,在相应Behaviour类中使用jade.content.ContentManager类的相关方法实现ACL消息的编码和解码。

1.2 JSA(JADE Semantic add-on, JADE语义附件)

JADE开发的Agent一般采用反应式结构,此外还提供JSA[7] 组件供开发者使用。JSA采用类似于BDI模型的慎思式结构,Agent间采用语义通信。经典的JADE程序的主要工作是编写行为代码,这些代码能够非常清晰的接收和分析简单消息。而编写基于JSA的语义Agent更主要是扩展语义解释器的行为(Semantic Interpreter Behavior,SIB)。该行为的主要动作是对感知事件(如接收到消息)进行推理,进而对Agent的信念和行为进行相应的修改[8]。

在实际开发中,需要根据具体的应用,从以下三个方面实现具体的语义Agent:

1) 增加新的语义解释规则;

2) 通过Agent信念库的定制,实现内部状态的自主管理;

3) 增加新的动作原型。

1.3 JADE框架基础上构建语义层

该实现方式采用分层结构,在JADE的基础上,构建一个语义层,语义层包括语义引擎和本体知识库。JADE框架的Agent收到消息后,转交给语义层解析,语义层的语义引擎根据本体知识库完成推理,根据推理结果更新内部状态或要求Agent执行某行为。如果根据本体知识库推理要求Agent执行某行为,将执行命令传递给Agent。在整个过程中,JADE框架的Agent充当了执行部件。文献[9]中就是利用上述机制来解决语义通信的问题,并实现其原型系统Semantic Agent。Semantic Agent支持OWL和SWRL,开发者可以使用OWL和SWRL表示领域知识,并进行Agent开发。endprint

2 实现方式比较

2.1支持的内容语言

三种实现方式支持的语言见表1。

表1 三种方法支持的内容语言列表

[序号\&实现方式\&支持内容语言\&1\&原生本体支持\&SL、Leap、XML或RDF\&2\&JSA\&SL、Leap\&3\&构建语义层\&OWL和SWRL\&]

前两种方法,和JADE框架结合紧密,本体一般使用SL或Leap语言编写,需要程序员手工完成,目前尚无工具支持,而且分散在程序段中,测试和验证尚无工具支持。

第三中方法,本体库使用OWL和SWRL语言编写,有成熟的工具如Protégé供程序员使用,并可验证推理是否正确,可快速构建本体知识库。

2.2模型抽象程度

JSA采用了类BDI的模型,使用这一模型形式化FIPA Agent通信的语义。基于JSA的Agent的设计依赖于高层的抽象(主要是信念、意图、动作),开发Agent需要增加新的语义解释规则、定制Agent信念库、增加新的动作原型,对开发者要求较高。

原生本体支持和Semantic Agent更接近于反应式结构,在消息处理环节增加了本体知识推理过程,抽象层次较低,对开发者要求低。

2.3软件成熟度

三种方法的平台都开发了源代码,截止到目前为止,JADE最新版为4.3.2,JSA最新版为1.6,Semantic Agent为1.0。Semantic Agent目前只有一个原型版本,其执行效率还有待进一步验证;JADE和其JSA附件从1998年开始由意大利Telecom开发,2000年开发了源代码,进行了多次版本更新,软件成熟度更高。

(下转第7179页)

(上接第7167页)

3 结论

综合三种实现方式的比较分析,Agent语义通信开发建议选用JSA。同时,我们也期待JSA的下一版本能支持OWL、SWRL这些被知识工程界广泛认可的本体语言,并实现关系数据库的信念库接口。

参考文献:

[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]冯志勇, 李文杰, 李晓红,等.本体论工程及其应用[M]. 北京:清华大学出版社, 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系统开发[M]. 北京:国防工业出版社, 2013.

[9] Subercaze J, Maret P. Semantic Agent Systems [M]. Berlin: Springer, 2011.endprint

2 实现方式比较

2.1支持的内容语言

三种实现方式支持的语言见表1。

表1 三种方法支持的内容语言列表

[序号\&实现方式\&支持内容语言\&1\&原生本体支持\&SL、Leap、XML或RDF\&2\&JSA\&SL、Leap\&3\&构建语义层\&OWL和SWRL\&]

前两种方法,和JADE框架结合紧密,本体一般使用SL或Leap语言编写,需要程序员手工完成,目前尚无工具支持,而且分散在程序段中,测试和验证尚无工具支持。

第三中方法,本体库使用OWL和SWRL语言编写,有成熟的工具如Protégé供程序员使用,并可验证推理是否正确,可快速构建本体知识库。

2.2模型抽象程度

JSA采用了类BDI的模型,使用这一模型形式化FIPA Agent通信的语义。基于JSA的Agent的设计依赖于高层的抽象(主要是信念、意图、动作),开发Agent需要增加新的语义解释规则、定制Agent信念库、增加新的动作原型,对开发者要求较高。

原生本体支持和Semantic Agent更接近于反应式结构,在消息处理环节增加了本体知识推理过程,抽象层次较低,对开发者要求低。

2.3软件成熟度

三种方法的平台都开发了源代码,截止到目前为止,JADE最新版为4.3.2,JSA最新版为1.6,Semantic Agent为1.0。Semantic Agent目前只有一个原型版本,其执行效率还有待进一步验证;JADE和其JSA附件从1998年开始由意大利Telecom开发,2000年开发了源代码,进行了多次版本更新,软件成熟度更高。

(下转第7179页)

(上接第7167页)

3 结论

综合三种实现方式的比较分析,Agent语义通信开发建议选用JSA。同时,我们也期待JSA的下一版本能支持OWL、SWRL这些被知识工程界广泛认可的本体语言,并实现关系数据库的信念库接口。

参考文献:

[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]冯志勇, 李文杰, 李晓红,等.本体论工程及其应用[M]. 北京:清华大学出版社, 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系统开发[M]. 北京:国防工业出版社, 2013.

[9] Subercaze J, Maret P. Semantic Agent Systems [M]. Berlin: Springer, 2011.endprint

2 实现方式比较

2.1支持的内容语言

三种实现方式支持的语言见表1。

表1 三种方法支持的内容语言列表

[序号\&实现方式\&支持内容语言\&1\&原生本体支持\&SL、Leap、XML或RDF\&2\&JSA\&SL、Leap\&3\&构建语义层\&OWL和SWRL\&]

前两种方法,和JADE框架结合紧密,本体一般使用SL或Leap语言编写,需要程序员手工完成,目前尚无工具支持,而且分散在程序段中,测试和验证尚无工具支持。

第三中方法,本体库使用OWL和SWRL语言编写,有成熟的工具如Protégé供程序员使用,并可验证推理是否正确,可快速构建本体知识库。

2.2模型抽象程度

JSA采用了类BDI的模型,使用这一模型形式化FIPA Agent通信的语义。基于JSA的Agent的设计依赖于高层的抽象(主要是信念、意图、动作),开发Agent需要增加新的语义解释规则、定制Agent信念库、增加新的动作原型,对开发者要求较高。

原生本体支持和Semantic Agent更接近于反应式结构,在消息处理环节增加了本体知识推理过程,抽象层次较低,对开发者要求低。

2.3软件成熟度

三种方法的平台都开发了源代码,截止到目前为止,JADE最新版为4.3.2,JSA最新版为1.6,Semantic Agent为1.0。Semantic Agent目前只有一个原型版本,其执行效率还有待进一步验证;JADE和其JSA附件从1998年开始由意大利Telecom开发,2000年开发了源代码,进行了多次版本更新,软件成熟度更高。

(下转第7179页)

(上接第7167页)

3 结论

综合三种实现方式的比较分析,Agent语义通信开发建议选用JSA。同时,我们也期待JSA的下一版本能支持OWL、SWRL这些被知识工程界广泛认可的本体语言,并实现关系数据库的信念库接口。

参考文献:

[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]冯志勇, 李文杰, 李晓红,等.本体论工程及其应用[M]. 北京:清华大学出版社, 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系统开发[M]. 北京:国防工业出版社, 2013.

[9] Subercaze J, Maret P. Semantic Agent Systems [M]. Berlin: Springer, 2011.endprint

猜你喜欢
本体
Abstracts and Key Words
灰铸铁缸体本体抗拉强度提升的研究
眼睛是“本体”
对姜夔自度曲音乐本体的现代解读
领域本体的查询扩展和检索研究
基于本体的机械产品工艺知识表示
本体在产品设计知识管理中的应用研究
《我应该感到自豪才对》的本体性教学内容及启示
一种基于本体的语义检索设计与实现
媒介生存:关于新闻史研究本体的思考