Agent Communications Languages代理通信语言(ACLs)
维基百科中的定义
- The Knowledge Query and Manipulation Language (KQML)知识查询和操作语言
为数据库开发公共本体的尝试
- The FIPA ACL The Foundation for Intelligent Physical Agents智能物理代理的基础
FIPA是一个旨在开发agent交互协议和语言的标准组织
假设代理之间讨论的主题是用某种语言写的,
例如,这可能是命题逻辑,或一阶逻辑。“今天是星期二”或“那本书的价格是25英镑”。
主题Topic也称为消息内容 message content
内容被包装在外部命令中,称为执行符performatives或惯用语locutions。
FIPA ACL有22个执行符performatives。
谈判
Negotiation是一群利益冲突的代理人试图就某一结果达成双方都能接受的协议的一种互动形式。
代理agent: 计算机程序,可以代表用户或者拥有者做出独立的行为,其具有以下属性
反应性Reactive: 它对周围环境的变化作出反应
主动性Proactive:它有试图实现的目标
自主性Autonomous:代理可以在一些规则下自己做出决定
Agent不同于对象Object,因为对象没有自主权
对象被调用,代理被请求执行某些功能。
对象通常既不是被动的也不是主动的。
代理通常有与其交互的其他代理的模型
Multi-Agent Systems 多重代理系统由多个互相作用的代理组成
o 自治代理的设计(它们的内部架构)
o自主代理系统的设计(交互协议)。
应用
事实证明,所有的标准拍卖协议都可以使用FIPA acl实现。
让我们来看一两个简单的例子
——一个真正的实现需要所有其他因素(如通信网络和参与代理的地址细节等)都就位
如何使用FIPA ACL进行英式拍卖?
▪ inform (seller: all: English auction start)
▪ cfp (seller: all: proposals to buy item A at price above threshold)
▪ propose (bidder 1: all: buy-at-price-1), propose(bidder 2: all: buy-at-price-2), etc.
▪ cfp (seller: all: proposals to buy item A at price above price-k)
▪ propose (bidder 1: all: buy-at-price-1), propose(bidder 2: all: buy-at-price-2), etc
▪ cfp (seller: all: proposals to buy item A at price above price-m)
▪<Finally selleraccepts highest proposal and rejects all others>
▪ accept-proposal (seller: all: proposal from bidder-d)
▪ reject-proposal (seller: all: proposals not from bidder-d)
▪ request (seller: bidder-d: please complete the transaction).
如何使用FIPA ACL进行荷兰式拍卖?
▪ inform (seller: all: Dutch auction start)
▪ cfp (seller: all: proposals to buy item A at price-1)o
▪ propose (bidder 1: all: buy-at-price-1),
▪ propose (bidder 2: all: buy-at-price-1), etc.
对于荷兰拍卖我们有三种情况:
情况一:没有投标。然后卖方降低价格,并以更低的价格发行另一个cfp。
▪ inform(seller: all: no bids received).
▪ cfp(seller: all: proposals to buy item A at price-2)
情况二:一个投标。卖方接受此标书(如来自投标人d)并通知投标人
▪ accept-proposal(seller: all: proposal from bidder-d)
情况三:不止一个人出价。卖方接受其中一个出价(比如来自投标者f的出价),并拒绝其他的出价。
▪ accept-proposal(seller: all: proposal from bidder-f)
▪ reject-proposal(seller: all: proposals not from bidder-f)
如果价格跌至卖方保留价格,卖方可能放弃拍卖
▪ inform(seller: all: no bids received)
▪ inform(seller: all: end-of-auction).
对于以上的例子如果不是很理解,可以接着阅读以下的定义
ACLs的语法 Syntax of Performatives
这里的内容是“天气(今天,下雨)”。
包装这一内容的表述是:inform
注意这个表述的语法也规定了:其他发送方sender 其他接收方receiver 其他表达内容的语言(Prolog 等等)。
ACLs的信息传递参数 ACLs的语法 Information Transfer Parameter
▪ Confirm:发送者通知接收者某一命题为真。
在这种情况下,发件人认为收件人对该命题不确定。
▪ Disconfirm: 发送者通知接收者某个命题是错误的。
在这种情况下,发件人认为收信人相信这个命题或它是可能的。
▪ Inform:发送方通知接收方某一命题为真。
▪ Query-if: 发送者询问接收者某一命题是否为真。
▪ Inform-if: 这是一个用于响应查询if语句的inform语句的宏。
发送方告知接收方它认为一个命题是真还是假。
▪Query-ref:发送方向接收方询问某个变量的值。 (如某些产品的价格。
▪inform -ref:这是一个用于响应query-ref语句的inform语句的宏。
发送方通知接收方所要求的变量的值,例如名称。
▪ Subscribe:当某个变量的值发生变化时,发送方要求被通知。
这是查询-引用语句的持久版本。
▪ Propagate: 发送方发送一个嵌入的消息给接收方,发送方要求
接收者将消息传递给进一步确定的接收者。
▪ Proxy: 发送方要求接收方将消息传递给进一步确定的接收方。
重新发送信息的接收者不必相信或认可信息,本身也不必从发送者那里“接收”信息。
FIPA Performatives:谈判
“协商Negotiation”包括CFP、proposal、AP和RP四个行动:
1. Call for Proposal (CFP):
发送方向接收方请求执行给定操作的建议。
2. Proposal提议:
发送方向接收方提交一个建议,在给定消息中规定的先决条件的情况下执行某个操作。
3.Accept-proposal:
发送方表示接受接收方之前提交给发送方的执行某个操作的提议。
4. Reject-proposal:
发送方表示拒绝接收方之前提交给发送方的执行某个操作的建议。
FIPA Performatives: action行为
Action行动: 是使某些目标发生的行为
▪ Agree: 发送方同意执行某些操作,可能在未来。
▪ Cancel:发送方通知接收方,发送方不再有接收方的意图
执行一些动作。
▪ Refuse:发送方拒绝执行某些行动,并可能解释拒绝的原因。
▪ Request: 发送方请求接收方执行某些操作。
如要求接受者进行另一种交流行为。
▪Request-when:
发送方希望接收方在给定命题为真时执行某些操作。
▪ Request-whenever:
发送方希望接收方在某个命题为真时执行某个操作,之后这个命题每次都为真
FIPA Performatives: Error Handling错误处理
一个关键的执行者试图跟踪失败-在沟通和谈判
的过程。
▪ Failure:
发送方向接收方表明尝试了某个操作,但尝试失败了。
▪ Not-understood:
发送方(例如,代理A)通知接收方(例如,代理B)它感知到B执行了一些操作,但A不理解B刚刚做了什么。
例如,A告诉B, A没有理解B刚刚发送给A的消息。
例子
注意层次结构与参与者、动作、常量(例如文本)和元信息(例如处理语言)的参数化。
ACLs语言的评估方法
我们如何评估不同的ACL ?一些标准是:
▪可表达性Expressiveness:
语言能让我们表达我们想表达的一切吗?
FIPA ACL不容易对参与者提供的信息提出质疑或质疑。
FIPA ACL最初是为了合同谈判而设计的,而不是为了争论。
▪语法属性Syntax properties:
语法一致吗?
FIPA ACL:是的
规则禁止恶意或好战行为吗?
FIPA ACL:没有
鼓励协议吗?
FIPA ACL:中立
▪语义属性▪Semantic properties:
这种语言的语义学有明确的定义吗?
FIPA ACL:是的
也就是说,所有参与者都能以同样的方式理解对话吗
▪简易性Semantic properties
语言简单易学易用吗?
FIPA ACL:没有
▪计算简单性Computational simplicity:
这种语言在计算上可行吗?