Bo Wang Wenpin Jiao Qijia Tian Zhongzhi Shi Lab of Intelligent Information Processing Institute of...

Post on 22-Dec-2015

215 views 1 download

Transcript of Bo Wang Wenpin Jiao Qijia Tian Zhongzhi Shi Lab of Intelligent Information Processing Institute of...

Bo Wang Wenpin Jiao Qijia Tian Zhongzhi Shi

Lab of Intelligent Information Processing

Institute of Computing Technology

Chinese Academy of Sciences, China

Multi-Agent Description Language in MAGE

1. MAGE Architecture

2. Agent Description Language

3. Agent Development based-on MAGE

4. Conclusions

Agenda

Agent Research in ICT-IIP

• KISE (1994-96)

• AOSDE (1996-1998)

• MAGE(1998-2000)

• AGECOP (2001-)

MAGE

MASEndUsers

AgentRunningFrame

ADL

GUI

Function Modules

MAGE

an integrator to integrate

(1) agent running frame

(2) function modules

into agents with specific purpose or function which is described by ADL.

Communicator

ACL Parser

Scheduler

Function Module Interface

Function 1

Function n

Msg-In Msg-Out

Agent

Data

ACL Msg

ADL Parser

Agent Kernel

Agent Running Frame

Function Modules

• Build-in: java sentences in ADL session

• Accessory: *.exe

• Dynamic linking: *.dll

<Agent> ::= <Definition><Local Address><Acquaintance Addresses><Extra Classes><Capabilities><Environment Variables><Sessions>

Agent Development

MAGE--ADL

[Acquaintance Addresses]BEGINFacilitator=192.168.0.162:1666END

[Extra Classes]BEGINInstance=buying2Constructor=BuyerAgent(agent, "Seller1")END

[Capabilities]BEGINName=buy2Type=0CommandLine=Source=buying2Name=testType=1CommandLine=c:\windows\notepad.exeSource=END

ADL

[Environment Variables]BEGINint a = 1END

[Sessions]BEGINSession buy2;End SessionSession if a <> 1 test;END

ADL

Session

if (performative.equals(“negotiating”)) {

double price = calculate_price( );

msg.setPara(“performative”, “negotiation_result”);

msg.setPara(“sender”, receiver);

msg.setPara(“receiver”, sender);

msg.setPara(“price”, price);

sendMessage(msg); }

End session

ADL Building Tools

ADL Building Tools

MAGE Working Mechanism

Agent Initialization Stage

• Load ADL script

• Load function modules;

• Initialize communication module;

• Send registration information facilitator

Regular Working Stage

REPEAT

Receiving Thread;

Sending Thread;

ENDREPEAT

Applications

1. Information / Knowledge Acquisition

2. Automated Negotiation

3. Group intelligence / swarm

4. Coordination in Organizational Decision Making (R&D project selection)

Knowledge Acquisition

Facilitator

InternetInternet

Spider1 Spider2 Spider

Database

Knowledge Acquisition

Knowledge Acquisition

Knowledge Acquisition

Applications

Knowledge Acquisition

Applications

Agent-Based Bargaining

Applications

Group Intelligence

Internet/Intranet

Future Research

Services

Agent Base

KnowledgeManagement

Infrastructure

AGECOP

Thank you!

<Agent> ::= <Definition>

<Local Address>

<Acquaintance Addresses>

<Extra Classes>

<Capabilities>

<Environment Variables>

<Sessions>

<Definition> ::= <Name Section>

<Description Section>

<Name Section> ::= "[Name]"

<agent> = <agent_name>

<Description Section> ::= "[Description]"

BEGIN

<description>

END

<Local Address> ::= "[Local Address]"

<agent> = <host_name>:<port>

<Acquaintance Addresses> ::= "[Acquaintance Address]"

BEGIN

{<acquaintance> = <host_name>:<port>}*

END

<Extra Classes> ::= "[Extra Classes]"

BEGIN

{<Class>}*

END

<Class> ::= Instance = <instance name>

CONSTRUCTOR = <constructor>

<Capabilities> ::= "[Capabilities]"

BEGIN

{<Capability>}*

END

<Capability> ::= NAME = <capability_name>

TYPE = <capability_type>

CMDLINE = <capability_command_line>

SOURCE = <capability_source>

<Environment Variables> ::= "[Environment Variables]"

BEGIN

{<Variable>}*

END

<Variable> ::= <Variable Type> <variable_name>[ = <initial_value>]

<Variable Type> ::= int|boolean|char|string|float

<Sessions> ::= "[SESSIONS]"

BEGIN

{<Session>}*

END

<Session> ::= SESSION

<Actions>;

|<If-Then-Else-Sentence>;

|<While-Sentence>;

|<Convention>;

END SESSION

<Actions> ::= <capability_command_line>;

|"{"

<capability_command_line>;

<Actions>

"}"

|<Session>

<If-Then-Else-Sentence> ::= IF (<condition>) <Actions> ELSE <Actions>

<While-Sentence> ::= WHILE (<condition>) <Actions>

<Convention> ::= (<condition>)=><Actions>

|(<acl_message>)=><Actions>