Jade 学习笔记

Jade

在一个JADE平台中,有且仅有一个叫做主容器的容器。当其他的容器启动时,他们必须在主容器中注册。

主容器除了可以提供其他一般容器注册功能之外,它还包含了两个特殊的智能体。

AMS(Agent Management System)提供一些智能体管理功能。例如:它给智能体提供命名服务,并且它也可以从容器中创建和删除智能体。

DF(Directory Facilitator)提供了黄页功能。当一个智能体需要利用其他智能体提供的服务时,它便可以到DF中去查找。

FIPA Message Structure

Ontology本体

一个共同的词汇,包括已达成一致的定义和这些定义之间的关系,用来描述特定的主题领域。

The Music Shop example

这个示例考虑了一个销售者代理管理的简单电子音乐商店,在这里有两种类型的物品(即CD和音乐书)可供销售。

每个物品都有一个序列号。每张CD都有一个名称和一定数量的曲目,每个曲目都有一个标题和时长。每本音乐书都有一个标题。销售者代理拥有一些物品,并可以将它们卖给其他买家代理。
在示例中,买家代理将询问销售者代理是否拥有特定的CD,如果是这样,他将请求他出售该CD。

This example considers a Seller agent managing a simple electronic music shop where two types of item (i.e. CDs and musical books) are available for sale. Each item has a serial number. Each CD has a name and a number of tracks each one has a title and a duration. Each musical book has a title. The Seller agent owns a number of items and can sell them to other Buyer agents. In the example a Buyer agent will ask the Seller agent if he owns a given CD and, if this is the case, he will request him to sell that CD.

插槽可以声明为可选(OPTIONAL),表示其值可以为null。否则,插槽被认为是强制性的(MANDATORY)。

插槽可以具有基数(cardinality)> 1,即该插槽的值是给定类型的元素的集合。例如,CD概念的模式中的曲目插槽可以包含1个或多个类型为Track的元素。

合并本体

为了简单起见,我们将所有的谓词、代理动作和概念都包含在MusicShopOntology中,但事实上,概念Item、谓词Owns和代理动作Sell与音乐商店领域并没有严格相关。它们可以被包含在另一个更通用的本体中,例如称为ECommerceOntology,并且MusicShopOntology可以被定义为通过添加CD、Book和Track概念来扩展ECommerceOntology。

在Vocabulary接口中定义了所有的常量。通过这种方式组织事物,每个常量都可以像在ExtendedOntology中定义一样访问,即使它实际上是在其中一个基本本体中定义的。

“iota” 运算符(由 SLVocabulary.IOTA 常量表示)是 SL 语言的运算符,允许创建表示“满足给定谓词(包含变量 X)为真的唯一 X”的 IRE。

通信过程

为了让JADE对给定的内容表达式执行适当的语义检查,有必要对话语领域中的所有可能元素进行分类(即可以作为代理发送的有效句子的内容,作为ACL消息的内容),根据它们的通用语义特征。这种分类源自FIPA中定义的ACL语言,该语言要求每个ACL消息的内容根据ACL消息的表现具有适当的语义。更详细地说,在第一层次上,我们区分谓词Predicates和项Terms (or entities)。

  • Predicates 是表达一些关于世界状态的表达式,可以是真或假,例如: (Works-for (Person :name John) (Company :name TILAB)) 表示“人John为公司TILAB工作”。谓词可以有意义地用作INFORM或QUERY-IF消息的内容,而如果用作REQUEST消息的内容,则毫无意义。

  • Terms (or entities) 是识别在世界中“存在”的实体(抽象或具体)的表达式,代理人们讨论和推理。它们进一步分类为:

    • Concepts,即指示具有复杂结构的实体的表达式,可以用插槽的术语定义,例如: (Person :name John :age 33) 概念通常直接用作ACL消息的内容是没有意义的,通常在谓词和其他概念中引用。
    • Agent actions,即指示某些代理可以执行的操作的特殊概念,例如: (Sell (Book :title “The Lord of the rings”) (Person :name John)) 将代理行动单独处理是有用的,因为与“普通”概念不同,它们是某些类型的ACL消息(如REQUEST)的有意义内容。传播行为(即ACL消息)本身就是代理行为。
    • Primitives,即指示原子实体(如字符串和整数)的表达式。
    • Aggregates,即指示其他实体组的实体的表达式,例如: (sequence (Person :name John) (Person :name Bill))
    • Identifying Referential Expressions (IRE),即表达式,标识谓词为真的实体(或实体)的表达式,例如: (all ?x (Works-for ?x (Company :name TILAB)) 标识“使谓词(Works-for x (Company :name TILAB))为真的所有元素x”,即所有为公司TILAB工作的人。这些表达式通常用于查询(例如作为QUERY_REF消息的内容),并且需要变量。
    • Variables,即(通常用于查询的)表达式,指示先验未知的通用元素。

jade.content包直接包含两种内容语言的编解码器(SL语言和LEAP语言)。

SL语言是一种人类可读的字符串编码(即SL中的内容表达式是一个字符串)内容语言,可能是(与KIF一起)科学界处理智能代理时最为流行的内容语言。

LEAP语言是一种非人类可读的字节编码(即LEAP中的内容表达式是一系列字节)内容语言,它是在LEAP项目内专门为JADE定义的。

(Sell )

ContentManager类提供了将Java对象转换为字符串(或字节序列)并将它们插入ACL消息的内容槽中以及反之的所有方法。

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值