- 1、本文档共157页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * KQML是一种基于消息的通信协议, 同时本身也是一种独立的信息交换和协议语言,有三大独立性: 1. KQML独立于网络传输机制(即TCP/IP,SMTP,IIOP等); 2. KQML独立于内容语言(即SQL,PROLOG等); 3. KQML独立于内容实体; KQML消息的三层结构如下: ①内容层: 在程序开发语言中,包含有消息的实际内容,KQML支持ASCII码语言和二进制符号 ②通信层: 实现消息特性,将低级的消息参数,例如消息的传送者和接受者,采用特定的标识符 进行标识. ③消息层: KQML的核心,其基本功能是标识用以发送消息的协议,提供讲话动作或执行发送者 在内容中附加的行为,另外,消息层还包括一些用以描述内容层信息的可选部分,如语言,采用的术 语,通信主题描述符等,以便KQML对要传递的内容进行分析,路由和发送. (一) KQML语言规范 KQML的核心是预先定义的行为词(performative).采用 ASCII字符串表示的行为词(performative) 具有可读性好,方便程序分析(特别是对许多知识库程序) ,可以在许多内部应用消息调用机制的平台之间 传递等优点 .行为词形式化定义如下: ::= ( { : } *) ::= | | | ( { } *) ::= * ::=| ::= | |, | ( { } *) ::=*| # ** ::= \ | - \ - 注意在上述定义中, 是特殊的 ;在定长字符串中, 如:# 3abc, 双引号前的数字表明双引号后的字符串的长度.行为词的一些参数是可选的, 在调用参数时在前面注明 关键字, 因此和参数顺序无关. 这些称作参数名的关键字必须以冒号(:)开头, 后面加上相应的参数值.KQML使用了一些关键字作 为行为词的参数名, 如下表一: 参数名 参数类型 含义 :sender 请求的真实发送者 :receiver 请求的真实接受者 :form 使用forward转发请求时 ,参数 content内记录的原始发送者 :to 使用 forward转发请求时 ,参数 content内记录的原始接收者 :reply-with- 此消息 (回应消息)的标记 :in-reply-to 使用 reply- with所回应的前条消 息的标记 :language 参数 content中使用的语言名称 :ontology 参数 content中使用的实体集的 名称 :content 实际传递的信息 表一 行为词(performative)的参数含义 KQML语言具有可扩展性, 针对不同应用领域的MAS系统, 可以自己定义新的行为词,如register , recommend,advertise等等,只要这些行为词(performative)仍然符合KQML规范并具有一定的实际功能 即可. 下面是一个KQML的消息实例: Mark和 John分别是网络上有协作关系的两个节点的agent.Mark想知道中间人Annie的电话号码. Mark接口主体将这一请求发送给自身的任务主体.任务主体在本节点内查询,未能满足请求时,自动 将请求通过通信主体发送给所有存在协作关系的其它通信主体.其中,发送给 John的代码如表二 (ask- one: sender Mark :receiver John :language Prolog :ontology person :content telephone(Annie,X) :reply- with id1 ) 表二 在这一消息中ask-one是KQML的performative, 内容为telephone(Annie,X),实体被标记为 person,内容描述语言为Prolog,发送者为Mark,接受者为John.John一种可能的应答为表三所示: (tell : sender John :receiver Mark :language Prolog :ontology person :contenttelephone(Annie,5586666) :in- reply- to id1 ) 表三 这样,tell成为KQML的performative,内容为telephone(Annie,5586666),实体依然被标 记为person,内容描述语言为Prolong.Mark的请求被透明地完成了,而不必了解复杂的实现过 程 如前文所述,在每个基于 KQML会话的 MAS系统中, 至少有一个agent处在称作管理服务机构 的特殊地位,我们称之为scheduler, 该agent能够处理本系统中
文档评论(0)