EEL 5937 The Bond Agent System (1) EEL 5937 Multi Agent Systems Lecture 8, Jan 30, 2003 Lotzi Bölöni.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Written by: Dr. JJ Shepherd
SELBO Agent Ivan Minov University of Plovdiv “Paisii Hilendarski“
Design Patterns CMPS Design Patterns Consider previous solutions to problems similar to any new problem ▫ must have some characteristics in common.
Adding Organizations and Roles as Primitives to the JADE Framework NORMAS’08 Normative Multi Agent Systems, Matteo Baldoni 1, Valerio Genovese 1, Roberto.
JAVA PROGRAMING LANGUAGE. Content of Java 2 SDK  Development Tools (In the bin subdirectory.) Tools and utilities that will help you develop, execute,
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
CS220 Software Development Lecture: Multi-threading A. O’Riordan, 2009.
Introduction to the C# Programming Language for the VB Programmer.
Fundamental Programming Structures in Java: Comments, Data Types, Variables, Assignments, Operators.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Ranga Rodrigo. Class is central to object oriented programming.
Programming Languages and Paradigms Object-Oriented Programming.
“is a”  Define a new class DerivedClass which extends BaseClass class BaseClass { // class contents } class DerivedClass : BaseClass { // class.
Chapter 4 Objects and Classes.
Object-Oriented Software Testing. C-S 5462 Object-Oriented Software Testing Research confirms that testing methods proposed for procedural approach are.
Abstract Data Types (ADTs) and data structures: terminology and definitions A type is a collection of values. For example, the boolean type consists of.
XML in Development of Distributed Systems Tooling Programming Runtime.
Spoken dialog for e-learning supported by domain ontologies Dario Bianchi, Monica Mordonini and Agostino Poggi Dipartimento di Ingegneria dell’Informazione.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
JAVA COLLECTIONS LIBRARY School of Engineering and Computer Science, Victoria University of Wellington COMP T2, Lecture 2 Marcus Frean.
EEL 5937 What makes an agent? EEL 5937 Multi Agent Systems Lotzi Bölöni.
Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 2: Major Concepts of Programming.
Introduction to Programming David Goldschmidt, Ph.D. Computer Science The College of Saint Rose Java Fundamentals (Comments, Variables, etc.)
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
1 Chapter 8 – Classes and Object: A Deeper Look Outline 1 Introduction 2 Implementing a Time Abstract Data Type with a Class 3 Class Scope 4 Controlling.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
EEL 5937 Agent models. EEL 5937 Multi Agent Systems Lecture 4, Jan 16, 2003 Lotzi Bölöni.
Dynamic Architectures (Component Reconfiguration) with Fractal.
Java The Java programming language was created by Sun Microsystems, Inc. It was introduced in 1995 and it's popularity has grown quickly since A programming.
EEL 5937 Ontologies EEL 5937 Multi Agent Systems Lecture 5, Jan 23 th, 2003 Lotzi Bölöni.
Object Oriented Programming Examples: C++, Java Advantages: 1. reusibility of code 2. ability to adapt (extend) previously written code.
EEL 5937 Managing mutability in agents EEL 5937 Multi Agent Systems Lecture 26, April 10, 2003 Lotzi Bölöni.
Exercise 1 : ex1.java class C extends Thread { int i; C(int i) { this.i = i; } public void run() { System.out.println("Thread " + i + " says hi"); System.out.println("Thread.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
BEGINNING PROGRAMMING.  Literally – giving instructions to a computer so that it does what you want  Practically – using a programming language (such.
EEL 5937 The Bond Agent System (2) EEL 5937 Multi Agent Systems Lecture 9, Feb. 4, 2003 Lotzi Bölöni.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Introduction to Java Chapter 7 - Classes & Object-oriented Programming1 Chapter 7 Classes and Object-Oriented Programming.
Tutorial 2 Agent Actions Specification --- Behavior Dr. Fuhua Lin School of Computing and Information Systems Athabasca University, Alberta, Canada Oct.
Agent Overview. Topics Agent and its characteristics Architectures Agent Management.
EEL 5937 The Bond Agent System (4) EEL 5937 Multi Agent Systems Lecture 18, March. 6, 2003 Lotzi Bölöni.
EEL 5937 The Bond Agent System (3) EEL 5937 Multi Agent Systems Lecture 17, March. 4, 2003 Lotzi Bölöni.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Chapter 5 Classes and Methods II Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Computer Science 320 A First Program in Parallel Java.
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.
EEL 5937 Multi Agent Systems -an introduction-. EEL 5937 Content What is an agent? Communication Ontologies Mobility Mutability Applications.
Classes CS 162 (Summer 2009). Parts of a Class Instance Fields Methods.
Real-Time Systems Laboratory Seolyoung, Jeong JADE (Java Agent DEvelopment framework )
EEL 5937 Multi Agent Systems -an introduction-. EEL 5937 Content What is an agent? Communication Ontologies Mobility Mutability Applications.
Modern Programming Tools And Techniques-I
The need for Programming Languages
Distribution and components
Classes and Objects 2nd Lecture
Creating and Using Classes
null, true, and false are also reserved.
Software Design Lecture : 15.
Still Chapter 2 (Based on Silberchatz’s text and Nachos Roadmap.)
Fundamental OOP Programming Structures in Java: Comments, Data Types, Variables, Assignments, Operators.
Lecture 4 – Bond Agents What is a software agent? Mobility
In this class, we will cover:
Exercise 1 : ex1.java Thread Creation and Execution
A type is a collection of values
Plug-In Architecture Pattern
Presentation transcript:

EEL 5937 The Bond Agent System (1) EEL 5937 Multi Agent Systems Lecture 8, Jan 30, 2003 Lotzi Bölöni

EEL 5937 Origins Bond 1 – , TCL based agent system –Purdue University –Structural biology applications Bond 2 – –Purdue University –Java based, general purpose distributed object system and agent framework –Handwritten communication frameworks, persistency models etc. –Introduced the notion of “agent surgery” Bond 3 – 2002-… –General purpose agent system –Testbed for agent research –Integration of best of breed technologies

EEL 5937 Architecture

EEL 5937 Builds on: Protégé-2000 ontology framework Uses the ontology framework as a knowledgebase library. Every agent has a knowledgebase which is relying on a set of ontologies which can be pre-edited in Protégé The Protégé forms are used as data entry widgets in Bond

EEL 5937 Builds on: Jade agent framework Bond takes from the Jade agent framework: –The communication framework –The message formats –The directory service –The agent containers Bond builds on: –The Jade behavior architecture. Things which Bond is not using / replaces –The Jade Java-class based ontology implementations. Generally speaking, everything written in the Jade user manuals will still work in Bond.

EEL 5937 What does Bond add to the underlying components Multiplane state machine organization Blueprint agent description language Mutability, agent surgery Strategies – metadata extended behaviors Collection of strategies (strategy data base)

EEL 5937 Blueprint. Describing the structure of a Bond agent.

EEL 5937 Blueprint Python based language. Describes the structure of the agent. Describes the state machine of the agent. Describes the strategies associated with the states. Describes the ontologies to be used. WARNING: It is a work in progress. New features will be added during the semester.

EEL 5937 Blueprint example createDefaultAgentUI() includeKnowledgeBase("Sample") # create a plane which goes round and round createPlane("RoundAndRound") s = bond.agent.strategy.strategydatabase. WaitAndTransitionStrategy(agent, 5000, SUCCESS) addFirstState(s, "Round1"); s = bond.agent.strategy.strategydatabase. WaitAndTransitionStrategy(agent, 5000, SUCCESS) addState(s, "Round2"); s = bond.agent.strategy.strategydatabase. WaitAndTransitionStrategy(agent, 5000, SUCCESS) addState(s, "Round3"); addTransition('Round1', 'Round2', SUCCESS) addTransition('Round2', 'Round3', SUCCESS) addTransition('Round3', 'Round1', SUCCESS)

EEL 5937 Result. -- the agent presented here.

EEL 5937 Ontologies in Bond.

EEL 5937 Ontology hierarchies in Bond. The Bond core ontology contains descriptions of the basic entities involved in building an agent –Contains classes for agent description, beliefs, desires, intentions, actions –Simple ontologies for time and space Domain specific ontologies contain the classes involved in the description of a specific domain –E.g. computational grid ontology –You will need to develop your own ontologies for your projects. Agent specific ontologies – contain the initial knowledgebase of an agent –Typically, they do not define new classes, but contain instances for the initial values.

EEL 5937 Specifying ontologies in Blueprint The BondCore ontology is loaded by default For the domain specific and agent specific ontologies, you need to specify them. The ontologies must be in the “kb” subdirectory. … includeKnowledgeBase(“GridComputing") includeKnowledgeBase(“Security") includeKnowledgeBase(“AgentSpecificOntology") …

EEL 5937 Strategies in Bond

EEL 5937 Behaviors Behaviors in Jade are the basic active units. Java classes with a couple of functions: void action() –Contains the main operation of the behavior –It is called repeatedly until the behavior terminates Boolean done() –It should return true, if the strategy has terminated Void onStart() –Initialization performed when the strategy is first executed. Int onEnd() –Executed when the strategy is terminated –The return value of this strategy will be used to perform the transition on the finite state machine.

EEL 5937 Strategy = Behavior + Metadata Behaviors are the hard-coded functionality. Basically, hand-written code. Strategies add meta-data to the behaviors: –Describe their functionality –Their resource requirements –Performance –Pre- and post-conditions –Runtime introspection The goals are: –Automatic assembly of agents –Automatic reconfiguration –Reasoning about agents. WARNING: This is work in progress. The meta- data attached to strategies will change in the course of the semester.

EEL 5937 Example strategy Wait and transition. Waits for the specified number of milliseconds, then performs the transition specified.

EEL 5937 package bond.agent.strategy.strategydatabase; import bond.agent.strategy.Strategy; import java.util.logging.Logger; import bond.agent.BondAgent; public class WaitAndTransitionStrategy extends Strategy { private static final Logger LOGGER = Logger.getLogger("bond.agent.strategy.strategydatabase"); private long theDelay; private int transition; private long startTime; public WaitAndTransitionStrategy(BondAgent theAgent, long theDelay, int transition) { super(theAgent); this.theDelay = theDelay; this.transition = transition; }

EEL 5937 public void onStart() { startTime = System.currentTimeMillis(); super.onStart(); } public boolean done() { long currentTime = System.currentTimeMillis(); if (currentTime - startTime >= theDelay) { return true; } return false; } public int onEnd() { startTime = 0L; return transition; }

EEL 5937 public void action() { if (startTime == 0L) { onStart(); } block(500); // block for 1/2 second }