FIPA Agents and Platform M. Cossentino. Paradigm shift in programming time assembler procedural object agent Abstraction level.

Slides:



Advertisements
Similar presentations
1DAML PI meeting, October DAML and Agents DAML and Agents Breakout Session DAML PI Meeting 17 October 2002 Tim Finin.
Advertisements

CH-4 Ontologies, Querying and Data Integration. Introduction to RDF(S) RDF stands for Resource Description Framework. RDF is a standard for describing.
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
FIPA Interaction Protocol. Request Interaction Protocol Summary –Request Interaction Protocol allows one agent to request another to perform some action.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
SELBO Agent Ivan Minov University of Plovdiv “Paisii Hilendarski“
Implementation Advice: When Intelligent Agents Meet RDF 2004 년 1 학기 - 인간과 컴퓨터 상호작용 인공지능연구실, 부산대학교 최성자.
OASIS Reference Model for Service Oriented Architecture 1.0
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Object-Oriented Analysis and Design
Specifying Agent Interaction Protocols with AUML and OCL COSC 6341 Project Presentation Alexei Lapouchnian November 29, 2000.
Adding Organizations and Roles as Primitives to the JADE Framework NORMAS’08 Normative Multi Agent Systems, Matteo Baldoni 1, Valerio Genovese 1, Roberto.
Agent UML Stefano Lorenzelli
Multiagent Systems and Societies of Agents
ReQuest (Validating Semantic Searches) Norman Piedade de Noronha 16 th July, 2004.
JADE Java Agent Development Framework An Overview.
01 -1 Lecture 01 Intelligent Agents TopicsTopics –Definition –Agent Model –Agent Technology –Agent Architecture.
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
Multi-Agent System for Online Auctions Jose Manuel Valladares Pernas CIS Master Project - Fall 2004 Advisor: Dr. Haiping Xu.
Course Instructor: Aisha Azeem
Java Agent Development Environment (JADE) Jade is a platform for running agents; it supports: –An asynchronous agent programming model –Communication between.
Introduction to Jadex programming Reza Saeedi
Object Oriented Software Development
RDF (Resource Description Framework) Why?. XML XML is a metalanguage that allows users to define markup XML separates content and structure from formatting.
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
Multi-Agent Systems University “Politehnica” of Bucarest Spring 2003 Adina Magda Florea
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
Agent-Oriented Software Engineering CSC532 Xiaomei Huang.
Spoken dialog for e-learning supported by domain ontologies Dario Bianchi, Monica Mordonini and Agostino Poggi Dipartimento di Ingegneria dell’Informazione.
Software Agent Computing Agent Mobility. Agent mobility is the ability for an agent program to migrate or to make a copy (clone) itself across one or.
Architecting Web Services Unit – II – PART - III.
The Java Programming Language
EEL 5937 Agent communication EEL 5937 Multi Agent Systems Lecture 10, Feb. 6, 2003 Lotzi Bölöni.
Patterns of agents Massimo Cossentino Massimo Cossentino, Luca Sabatucci ICAR/CNR High performance computing and networks institute Italian National Research.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
Distributed Information Retrieval Using a Multi-Agent System and The Role of Logic Programming.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
SEMANTIC AGENT SYSTEMS Towards a Reference Architecture for Semantic Agent Systems Applied to Symposium Planning Usman Ali.
AOSE Multi-Agent Interaction. Agents and Interaction Interaction forms the basis of an agents collaborative problem solving capabilities. –Agents are.
Christoph F. Eick University of Houston Organization 1. What are Ontologies? 2. What are they good for? 3. Ontologies and.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Introduction to Semantic Web Service Architecture ► The vision of the Semantic Web ► Ontologies as the basic building block ► Semantic Web Service Architecture.
Supporting FIPA Interoperability for Legacy Multi-Agent Systems Christos Georgousopoulos 1 Omer F. Rana 1 ( ) 2.
Semantically Federating Multi- Agent Organizations R. Cenk ERDUR, Oğuz DİKENELLİ, İnanç SEYLAN, Önder GÜRCAN. AEGEANT-S Group, Ege University, Dept. of.
Kemal Baykal Rasim Ismayilov
WG2 – Enabling Technologies Status of white paper Olaf Droegehorn, Klaus David University of Kassel Chair for Communication Technology (ComTec)
EEL 5937 Agent communication EEL 5937 Multi Agent Systems Lotzi Bölöni.
FIPA Abstract Architecture London FIPA meeting January 24-29, 2000 from: TC-A members.
Agent Overview. Topics Agent and its characteristics Architectures Agent Management.
Foundation For Intelligent Physical Agents FIPA Abstract Architecture Specification Presented by Michal Zaremba DERI.
EEL 5937 The Bond Agent System (1) EEL 5937 Multi Agent Systems Lecture 8, Jan 30, 2003 Lotzi Bölöni.
EEL 5937 Content languages EEL 5937 Multi Agent Systems Lecture 10, Feb. 6, 2003 Lotzi Bölöni.
MTA SZTAKI Department of Distributed Systems Hogyan mixeljünk össze webszolgáltatásokat, ontológiákat és ágenseket? Micsik András.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA.
JADE Java Agent Development Environment Yunus Emre ÇAKMAZ Ahmet Cahit YAŞA 1.
Real-Time Systems Laboratory Seolyoung, Jeong JADE (Java Agent DEvelopment framework )
Multi-Agent System for Online Auctions Jose Manuel Valladares Pernas CIS Master Project - Fall 2004 Advisor: Dr. Haiping Xu.
The Semantic Web By: Maulik Parikh.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
FIPA Agents and Platform
CHAPTER 3 Architectures for Distributed Systems
Multi-agent system for web services
Processes Chapter 3.
ADAPTABLE SOFTWARE ARCHITECTURAL SOLUTIONS THAT ENABLE ADAPTATION
AGENT FRAMEWORK By- Arpan Biswas Rahul Gupta.
WEB SERVICES From Chapter 19, Distributed Systems
Processes Chapter 3.
Processes Chapter 3.
PASSI (Process for Agent Societies Specification and Implementation)
Presentation transcript:

FIPA Agents and Platform M. Cossentino

Paradigm shift in programming time assembler procedural object agent Abstraction level

How agent technology will progress over time according to Agentlink II Source: Agentlink II Roadmap

Past and future Source: Agentlink II Roadmap

Past and future Source: Agentlink II Roadmap

Agent-related concepts Platform Communication Ontology Not specifically agent concepts: –services –applications

Where can you find agents today distributed artificial intelligence, robotics, artificial life (also in video game), distributed object computing, human-computer interaction, intelligent and adaptive interfaces, intelligent search and filtering, information retrieval, etc.

Different kind of agents An example of categorization Autonomous agents –Biological agents –Computational agents Software agents –Task specific agents –Entertainment agents –Viruses Artificial life agents –Robotic agents … others to come

Different kinds of agents Another categorization: Mobile agents Interface agents Collaborative agents Information agents Reactive agents Hybrid agents Heterogeneous agents

What is an agent Perhaps the most general way in which the term agent is used is to denote a hardware or (more usually) software-based computer system that enjoys the following properties: autonomy: agents operate without the direct intervention of humans or others, and have some kind of control over their actions and internal state; social ability: agents interact with other agents (and possibly humans) via some kind of agent-communication language [Genesereth and Ketchpel, 1994]; reactivity: agents perceive their environment, (which may be the physical world, a user via a graphical user interface, a collection of other agents, the INTERNET, or perhaps all of these combined), and respond in a timely fashion to changes that occur in it; pro-activeness: agents do not simply act in response to their environment, they are able to exhibit goal-directed behaviour by taking the initiative. From Intelligent Agents: Theory and Practice of M. Wooldridge and N. Jennings (

BDI Agents ALL agents (except for purely reactive agents) maintain an internal representation of their world. –There is an explicit mental state –Can be modified by some form of symbolic reasoning. An example: BDI agents (BDI = Belief, Desire, Intention) –a set of beliefs about the world; –a set of goals that the agent is currently trying to achieve (Desires) –a library of plans describing how to achieve goals and how to react to changes in beliefs –an intention structure; describing how the agent is currently achieving its goals and reacting to changes in beliefs.

What is FIPA FIPA (Foundation for Intelligent Physical Agents) is a non-profit organization aimed at producing standards for the interoperation of heterogeneous software agents

Agent: FIPA definition An agent is a computational process that implements the autonomous, communicating functionality of an application. Typically, agents communicate using an Agent Communication Language.

FIPA Agents Agents communicate by exchanging messages which represent speech acts, and which are encoded in an agent-communication-language. Services provide support services for agents. In addition to a number of standard services including agent-directory-services and message-transport- services the FIPA Abstract Architecture defines a general service model that includes a service- directory-service.

FIPA Agent: Relationships to Other Elements Agent has an agent-name Agent may have agent-attributes Agent has an agent-locator, which lists the transport-descriptions for that agent Agent may be sent messages via a transport-description, using the transport corresponding to the transport-description Agent may send a transport-message to one or more agents Agent may register with one or more agent-directory-services Agent may have an agent-directory-entry, which is registered with an agent-directory- service Agent may modify its agent-directory-entry as registered by an agent-directory-service Agent may deregister its agent-directory-entry from an agent-directory-service. Agent may search for an agent-directory-entry registered within an agent-directory-service Agent is addressable by the mechanisms described in its transport-descriptions in its agent-directory-entry

Concrete implementation of the FIPA Agent an agent may be realized in a variety of ways, for example as a Java component, a COM object, a self-contained Lisp program, or a TCL script. It may execute as a native process on some physical computer under an operating system, or be supported by an interpreter such as a Java Virtual Machine or a TCL system. The relationship between the agent and its computational context is specified by the agent lifecycle.

Agents (FIPA) State-machine agent

Agents: a software engineering point of view An agent is a subsystem –High decoupling with other subsystems (agents) –High coherence of internal classes (behaviors of the same agent) –It offers services to other agents FIPA agents are communication oriented –High Standardization in communications provide interoperability: Ontology Agent Interaction Protocols (and communicative acts) Content language

PASSI Agent The instance of an agent class It is the software implementation of an autonomous entity capable of pursuing an objective through its autonomous decisions, actions and social relationships. An agent may occupy several functional roles to achieve its goals The function temporarily assumed by the agent in the society while pursuing a sub- goal In playing a role the agent uses one or more of its tasks. A series of elementary pieces of behavior (actions) necessary for a specific purpose. Each task carries out one of the agent’s decisions/ actions/ social relationships Elementary behavior Each task is composed of several elementary behaviors

Platform

Platforms What is a platform –A place where agents live not always needed Platform responsibilities –Agent management creation – termination security –Agent communication services –Agent directory services

Communications (conversations)

Agents’ interactions (FIPA point of view) Agents communicate by exchanging messages which represent speech acts 2, and which are encoded in an agent- communication-language. The simplest for of speech act (we can refer to it as a message) is: – –Where: i is the originator of the speech act (we can refer to it as a message), act is the name of the act (it communicates the speaker’s intention to the hearer) j is the target C the semantic content Examples of communicative acts 1 (also called performatives) –Query, Inform, Request, Agree, Refuse 1 FIPA Communicative Act Library Specification. Foundation for Intelligent Physical Agents, Document FIPA00037 (2000). 2 Searle, J.R., Speech Acts. Cambridge University Press, 1969.

Messages and performatives Is the door open? Open the door (for me) OK! I’ll open the door The door is open I am unable to open the door I will not open the door Say when the door becomes open Anyone wants to open the door? I can open the door for you..at a price Door? What’s that? Don’t understand... query request agree inform failure refuse Subscribe cfp Propose Not- understood

A layered model One conversation can be composed of several messages, each one addressing one different performative (or communicative act)

Conversations Conversations are composed by one or more messages They are ruled by agent interaction protocols (AIP, discussed later) Given a message (and its specific performative), the AIP defines which is the set of performatives that could be associated to the following messages If a message does not comply to this rule, the agent could not understand it

Message elements

Components of a message Parameter Category of Parameters performativeType of communicative acts senderParticipant in communication receiverParticipant in communication reply-toParticipant in communication contentContent of message languageDescription of Content encodingDescription of Content ontologyDescription of Content protocolControl of conversation conversation-idControl of conversation reply-withControl of conversation in-reply-toControl of conversation reply-byControl of conversation

A layered model

Content and Content language The content denotes the content of the message; equivalently denotes the object of the action. The content language denotes the language in which the content is expressed. FIPA content languages: –SL, CCL, KIF, RDF

A layered model

Agent communication Language The structure of a message is a key-value- tuple and is written in an agent-communication- language, such as FIPA ACL. The content of the message is expressed in a content-language, such as KIF, SL or RDF. The content-language may reference an ontology, which grounds the concepts being discussed in the content.

ACL message example

A layered model

Transport Message When a message is sent it is transformed into a payload, and included in a transport-message. The payload is encoded using the encoding-representation appropriate for the transport.

A layered model

Message Transport Protocol Each agent has an agent-name. This agent-name is unique and unchangeable. Each agent has one or more transport-descriptions, which are used by other agents to send a transport- message. Each transport-description correlates to a particular form of message transport, such as IIOP, SMTP, or HTTP. A transport-message is a message expressed in a format (or encoding) that is appropriate to the transport being used. A set of transport-descriptions can be held in a locator.

Example of transport description Directory entry for agent “ABC” Agent-name: ABC Locator : Transport- type Transport-specific-addressTransport-specific- property HTTPhttp://

A layered model Out of our scope

Ontology

Concepts (categories, entities of the domain) Predicates (assertions on properties of concepts) Actions (that agents can perform in the domain). Ontology Book_in_stock Searched_book

Agents Interaction Protocols (AIP)

Message Content Languages

A proposition in RDF Proposition: "The statement 'W. Richard Stevens is the author of TCP/IP Illustrated' is true". <rdf:RDF xmlns:rdf=" xmlns:fipa= TCP/IP Illustrated W. Richard Stevens true TCP/IP Illustrated W. Richard Stevens author

A communication (ACL+RDF+Request AIP) Scenario: Mary requests John to open door 1 and door 2 and then wants John to inform her if he performed the action and what the result is. Message 1: Request from Mary to John containing the description of the action, Message 2: Inform from John to Mary, referring to the action and stating the completion of the action. (request :sender Mary :receiver John :content ( <rdf:RDF xmlns:rdf=" xmlns:fipa=" John open door1 door2 ) :language fipa-rdf0)

A communication (ACL+RDF+Request AIP) (inform :sender John :receiver Mary :content ( <rdf:RDF xmlns:rdf=" ns#" xmlns:fipa=" true doors closed ) :language fipa-rdf0)

The FIPA Platform

Agent Management System (AMS) –The AMS provides white-page and life-cycle service, maintaining a directory of agent identifiers (AID) and agent state. –Each agent must register with an AMS in order to get a valid AID. Directory Facilitator (DF) –the agent who provides the default yellow page service in the platform. Message Transport System (MTS) –the software component controlling all the exchange of messages within the platform, including messages to/from remote platforms. –also called Agent Communication Channel (ACC) The FIPA platform

Agents interactions  Agent Communication Channel : All agents have access to at least one ACC. The ACC is the default communication method that connects all agents within an AP and between AP’s. Internal Platform Message Transport Agent Directory Facilitator Agent Management System Software Agent Platform ACC

Other topics Agents Services Directory services –Starting/ finding an agent See FIPA-presentation.docFIPA-presentation.doc

The FIPA platform implementation The operating shell

Jade Behaviors

An Example Sender agent Receiver agent

(Performative, ontology, content language, content) This is not common in PASSI PASSI syntax: (AIP, Performative, Ontology)

Agent Sender public class AgentSender extends Agent { class SendBehaviour extends SimpleBehaviour { private boolean finished = false; public SendBehaviour (Agent a) { super(a);} public void action() { try{ System.out.println("\nEnter responder agent name (e.g. "); BufferedReader buff = new BufferedReader (new InputStreamReader(System.in)); String responder = buff.readLine(); AID r = new AID(); r.setName(responder); ACLMessage msg = new ACLMessage(ACLMessage.INFORM); msg.setSender(getAID()); msg.addReceiver(r); msg.setContent("FirstInform"); send(msg); System.out.println("\nFirst INFORM sent"); doWait(5000); msg.setLanguage("PlainText"); msg.setContent("SecondInform"); send(msg); System.out.println("\nSecond INFORM sent"); doWait(5000); // same that second msg.setContent("\nThirdInform"); send(msg); System.out.println("\nThird INFORM sent"); doWait(1000); msg.setOntology("ReceiveTest"); msg.setContent("FourthInform"); send(msg); System.out.println("\nFourth INFORM sent"); finished = true; myAgent.doDelete(); }catch (IOException ioe){ioe.printStackTrace();} } public boolean done(){ return finished;} } protected void setup() { SendBehaviour mysendbehaviour = new SendBehaviour(this); addBehaviour(mysendbehaviour); }

Agent Receiver1/2 public class AgentReceiver extends Agent { class my3StepBehaviour extends SimpleBehaviour { final int FIRST = 1; final int SECOND = 2; final int THIRD = 3; private int state = FIRST; private boolean finished = false; public my3StepBehaviour (Agent a) { super(a); } public void action() { switch (state){ case FIRST: {if (op1()) state = SECOND; else state= FIRST; break;} case SECOND:{op2(); state = THIRD; break;} case THIRD:{op3(); state = FIRST; finished = true; break;} } public boolean done() { return finished; } public int onEnd() { reset(); myAgent.addBehaviour(this); return 0; } public void reset() { super.reset(); finished = false; state = FIRST; } private boolean op1(){ MessageTemplate m1 = MessageTemplate.MatchPerformative(ACLMessage.INFORM); MessageTemplate m2 = MessageTemplate.MatchLanguage("PlainText"); MessageTemplate m3 = MessageTemplate.MatchOntology("ReceiveTest"); MessageTemplate m1andm2 = MessageTemplate.and(m1,m2); MessageTemplate notm3 = MessageTemplate.not(m3); MessageTemplate m1andm2_and_notm3 = MessageTemplate.and(m1andm2, notm3); System.out.println( "\nAgent "+getLocalName()+" in state FIRST.op1 is waiting for a message matching the template "); //The agent waits for a specific message. If it doesn't arrive the behaviour is suspended until a new message arrives. ACLMessage msg = receive(m1andm2_and_notm3); if (msg!= null){ System.out.println("\nAgent "+ getLocalName() + " received the following message in state FIRST.op1: "); System.out.println(msg.toString()); return true; } else { System.out.println("\nNo message matching the template received in state FIRST.op1. Blocking the behaviour"); block(); return false; } } // End of op1

Agent Receiver2/2 private void op2(){ System.out.println("\nAgent "+ getLocalName() + " in state SECOND.op2 is waiting for any message in next 5000 msec"); //Using a blocking receive causes the block of all the //behaviours ACLMessage msg = blockingReceive(5000); if(msg != null) { System.out.println("\nAgent "+ getLocalName() + " received the following message in state SECOND.op2: "); System.out.println(msg.toString()); } else{ System.out.println("\nNo message received in state SECOND.op2"); } } // End of op2 private void op3(){ MessageTemplate m1 = MessageTemplate.MatchPerformative(ACLMessage.INFORM); MessageTemplate m2 = MessageTemplate.MatchLanguage("PlainText"); MessageTemplate m3 = MessageTemplate.MatchOntology("ReceiveTest"); MessageTemplate m1andm2 = MessageTemplate.and(m1,m2); MessageTemplate m1andm2_and_m3 = MessageTemplate.and(m1andm2, m3); System.out.println("\nAgent: "+getLocalName()+" in state THIRD.op3 is blocked waiting for a message matching the template"); //blockingReceive and template ACLMessage msg = blockingReceive(m1andm2_and_m3); if (msg!= null) System.out.println("\nAgent "+ getLocalName() + " received the following message in state THIRD.op3: "+msg.toString()); else System.out.println("\nNo message received in state THIRD.op3"); } // End of op3 } // End of my3StepBehaviour class (the agent behaviour) protected void setup() { my3StepBehaviour mybehaviour = new my3StepBehaviour(this); addBehaviour(mybehaviour); } } // End of agent

MAS References Agentlink Roadmap: Intelligent Agents: Theory and Practice. M. Wooldridge, N. Jennings ( ker95-html.html) Objects and Agents Compared. J. Odell. ( Searle, J.R., Speech Acts. Cambridge University Press, 1969.

Ontology References What are ontologies and why do we need them. B. Chandrasekaran et al. ( Ontologies from AI Topics library of AAAI. Ontology Development 101: A Guide to Creating Your First Ontology. Natalya F. Noy and Deborah L. McGuinness. ( 101-noy-mcguinness.html) Designing Ontology with RDF in PASSI. M. Cossentino Modeling XML Vocabularies with UML. D. Carlson. ( RDF (Resource Description Framework). W3C Consortium. (

FIPA References FIPA website: FIPA Abstract Architecture ( Agent Interaction Protocols ( Communication Content Languages ( (Design) Methodology Technical Committee: ( Communicative Act Library Specification: (

JADE References JADE (Java Agent DEvelopment Framework) ( Jade Tutorial: JadePrimer.html AgentFactory: mozart.csai.unipa.it/af