2.2.2 语言
在基于Agent的应用程序开发中,有几个阶段使用语言。本节简要描述在编程、通信和本体规范中最著名的Agent语言。
Java和C++是构建Agent系统最常用的语言。不过,从面向Agent的观点来看,这些语言工作在一个低层次上,以至于难以实现Agent的特征,除非使用额外的平台或框架。使用框架的一个选择就是使用实现Agent概念的高级语言,被称为面向Agent的编程语言。下面简要叙述其中的一些例子。
(1)AGENT-0是对Agent及其行为进行规范的语言,基于Shoham(Shoham,1993)提出的面向Agent的程序设计范型。AGENT-K(Davis和Edwards,1994)是AGENT-0的一个开发版本,将KQML(Finin等,1995)集成到了AGENT-0中。
(2)并发METATEM(Fisher等,1995)使用一个可执行的时序逻辑来确定Agent的预期行为。在这个语言中,Agent被看做是通过消息进行通信的并发进程。
(3)AgentSpeak(L)(Rao,1996)是一个基于规则的语言,具有规范的操作语义,Agent被看做是由意图、信念、记录事件和计划规则组成。它是基于PRS架构的(Georgeff等,1987)。
此外,还有其他一些高级语言,如Prolog和Lisp,已用于构造多Agent系统(尤其是Agent的知识组件(LISA Project. http://www.lisa.sourceforge.net/)),或者适用于多Agent系统的模拟环境和测试床(Ferguson,1992)。
Agent采用高层对话进行交流,因此Agent通信语言绕过了物理通信这样的低级特征,侧重于通信行为和域概念的交换。下面描述了一些著名的Agent通信语言例子。
(1)基于言语—行为理论,KQML(Finin等,1995)(Knowledge Query Manipulation Language)最初是作为DARP工程的一部分被开发,但是现在可能是使用最为广泛的通信语言。
(2)类似于KQML,FIPA-CAL(http://www.fipa.org/)是由智能物理Agent基金会(Foundation for Intelligent Physical Agents,FIPA)所提出标准的一部分,这有助于它的推广,尤其是作为应用程序开发框架的一部分。它有形式化的语义,并且也是基于言语行为理论的。