Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an...

129
Einf¨ uhrung in das Jadex-System Stefan Tittel Einf¨ uhrung Komponenten Capabilities Beliefs Goals Plans Events Anhang: Beispiele Plans Beliefs Goals Einf¨ uhrung in das Jadex-System Stefan Tittel Universit¨ at Dortmund Projektgruppenseminar: Wissen in Multiagentensystemen, arz 2006

Transcript of Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an...

Page 1: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Einfuhrung in das Jadex-System

Stefan Tittel

Universitat Dortmund

Projektgruppenseminar: Wissen in Multiagentensystemen,Marz 2006

Page 2: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 3: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 4: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Was ist Jadex?

Was ist Jadex?

”Jadex is an agent-oriented reasoning engine for writing rational

agents with XML and the Java programming language.“

Was ist ein Agent?

Ein Programm mit den Eigenschaften:

• autonom

• proaktiv

• reaktiv

• sozial

• lern- und anpassungsfahig

Page 5: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Was ist Jadex?

Was ist Jadex?

”Jadex is an agent-oriented reasoning engine for writing rational

agents with XML and the Java programming language.“

Was ist ein Agent?

Ein Programm mit den Eigenschaften:

• autonom

• proaktiv

• reaktiv

• sozial

• lern- und anpassungsfahig

Page 6: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Adapter

Jadex selbst kann keine Agenten ausfuhren. Dazu bedarf eseiner Middleware-Plattform. Es gibt derzeit zwei Adapter:

• Einen Adapter fur das Java Agent DEvelopmentFramework (JADE),

• einen Standalone-Adapter.

Abbildung: Starter der GUI des Standalone-Adapters

Page 7: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Agentenmodell

Jadex basiert auf dem BDI-Modell. Zur Erinnerung:

• beliefs: Weltwissen (informational state)

• desires: Hauptziele (motivational state)

• intentions: Absichten/Plane (deliberative state)

Implementierung in Jadex:

• beliefs: bestehen aus facts (implementiert durch beliebigeJava-Objekte); werden durch beliefbase zugeordnet

• desires: Realisierung in Form von goals; verschiedeneGoal-Typen verfugbar

• intentions: Realisierung in Fom von plans(Java-Prozeduren zzgl. Ausfuhrungsbedingungen)

Page 8: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Agentenmodell

Jadex basiert auf dem BDI-Modell. Zur Erinnerung:

• beliefs: Weltwissen (informational state)

• desires: Hauptziele (motivational state)

• intentions: Absichten/Plane (deliberative state)

Implementierung in Jadex:

• beliefs: bestehen aus facts (implementiert durch beliebigeJava-Objekte); werden durch beliefbase zugeordnet

• desires: Realisierung in Form von goals; verschiedeneGoal-Typen verfugbar

• intentions: Realisierung in Fom von plans(Java-Prozeduren zzgl. Ausfuhrungsbedingungen)

Page 9: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Grundlegende Architektur

AgentCapability

Reaction

DeliberationPlans

Beliefs Goals

Events

Nach

rich

ten

Nach

richten

Wahle Plans

Behandle Events

Disp

atch

Goals

Cond

ition

s G.Events

Application Events

Conditions

Lie

s/Sch

reib

Fakten

Abbildung: Grundlegende Architektur

Page 10: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Realisierung von Agenten 1/2

• Jeder Agent besteht aus einer XML-Datei (AgentDefinition File – ADF) und Java-Klassen.

• Das ADF enthalt die eigentliche Spezifikation des Agenten.

• Die Java-Klassen implementieren plans und eventuellbenotigte Objekte (z. B. zur Realisierung von beliefs).

• Bei plans: head in ADF, body in Java-Klasse

HelloWordAgent.xml

<agent (Schemaangaben) name="HelloWorld"><plans><plan name="hello"><body>new HelloWorldPlan()</body>

</plan></plans>

Page 11: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Realisierung von Agenten 1/2

• Jeder Agent besteht aus einer XML-Datei (AgentDefinition File – ADF) und Java-Klassen.

• Das ADF enthalt die eigentliche Spezifikation des Agenten.

• Die Java-Klassen implementieren plans und eventuellbenotigte Objekte (z. B. zur Realisierung von beliefs).

• Bei plans: head in ADF, body in Java-Klasse

HelloWordAgent.xml

<agent (Schemaangaben) name="HelloWorld"><plans><plan name="hello"><body>new HelloWorldPlan()</body>

</plan></plans>

Page 12: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Realisierung von Agenten 2/2

<initialstates><initialstate name="default"><plans><initialplan ref="hello"/></plans>

</initialstate></initialstates>

</agent>

HelloWorldPlan.java

import jadex.runtime.Plan;public class HelloWorldPlan extends Plan {public void body() {System.out.println("Hello world!");killAgent();

}}

Page 13: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Realisierung von Agenten 2/2

<initialstates><initialstate name="default"><plans><initialplan ref="hello"/></plans>

</initialstate></initialstates>

</agent>

HelloWorldPlan.java

import jadex.runtime.Plan;public class HelloWorldPlan extends Plan {public void body() {System.out.println("Hello world!");killAgent();

}}

Page 14: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefs

• Die beliefbase ordnet Identifizierungsstrings Fakten zu, diewiederum beliebige Java-Klassen sein konnen.

• Es gibt zwei Arten von beliefs:• Einfache single-fact beliefs und• beliefsets.

• Jadex unterstutzt OQL-ahnliche Anfragen an diebeliefbase.

• Anderungen an der beliefbase konnen plans oder goalsautomatisch triggern.

• Es gibt keine (logikbasierte) Inferenz in der beliefbase.

Page 15: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Goals

• Goals sind konkrete momentane Wunsche des Agenten.

• Der Agent wahlt (fruher oder spater) fur jedes goalgeeignete Aktionen aus, solange bis

• das goal erreicht wurde,• das goal als unerreichbar gilt oder• das goal nicht langer aktuell ist.

• Goals mussen nicht zueinander konsistent sein.

• Jedes goal ist in einem der Zustande:• option – angenommen, aber derzeit nicht verfolgt• active – aktuell verfolgt• suspended – Kontextbedingungen derzeit nicht erfullt

• Es gibt vier Goal-Typen:• perform goals – geben zu erledigende Tatigkeiten an• achieve goals – beschreiben abstrakten Zielzustand• query goals – geben zu erlangende Informationen an• maintain goals – geben beizubehaltenen Zustand an

Page 16: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 17: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 18: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Capabilities in Jadex

• Agenten ohne Schlussfolgerungsprozess• aus beliefs, goals und plans bestehend• konnen weitere subcapabilities enthalten• werden eingesetzt um Funktionalitat wiederzuverwenden• Spezifikation analog zu Agenten (in der XML-Datei:<capability> statt <agent>)

Beispiel: Agent nutzt capabilities<agent ...> ...

<capabilities><capability name="mysubcap"file="MyCapability.capability.xml"/><capability name="dfcap"file="jadex.planlib.DF"/>

</capabilities> ...</agent>

Page 19: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Capabilities in Jadex

• Agenten ohne Schlussfolgerungsprozess• aus beliefs, goals und plans bestehend• konnen weitere subcapabilities enthalten• werden eingesetzt um Funktionalitat wiederzuverwenden• Spezifikation analog zu Agenten (in der XML-Datei:<capability> statt <agent>)

Beispiel: Agent nutzt capabilities<agent ...> ...

<capabilities><capability name="mysubcap"file="MyCapability.capability.xml"/><capability name="dfcap"file="jadex.planlib.DF"/>

</capabilities> ...</agent>

Page 20: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Sichtbarkeit

• Sichtbarkeit standardmaßig lokal

• wenn Zugriff von außerer capability erfolgen soll:exported="true" in <belief> etc. in innerer capability

• Referenz in außerer capability

Beispiel: Innere Capability (Auszug)

<belief name="ex" exported="true" class="MyFact"/>

Beispiel: Außere Capability (Auszug)

<beliefref name="mysubbelief"><concrete ref="mysubcap.ex"/>

</beliefref>

Page 21: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Sichtbarkeit

• Sichtbarkeit standardmaßig lokal

• wenn Zugriff von außerer capability erfolgen soll:exported="true" in <belief> etc. in innerer capability

• Referenz in außerer capability

Beispiel: Innere Capability (Auszug)

<belief name="ex" exported="true" class="MyFact"/>

Beispiel: Außere Capability (Auszug)

<beliefref name="mysubbelief"><concrete ref="mysubcap.ex"/>

</beliefref>

Page 22: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Sichtbarkeit

• Sichtbarkeit standardmaßig lokal

• wenn Zugriff von außerer capability erfolgen soll:exported="true" in <belief> etc. in innerer capability

• Referenz in außerer capability

Beispiel: Innere Capability (Auszug)

<belief name="ex" exported="true" class="MyFact"/>

Beispiel: Außere Capability (Auszug)

<beliefref name="mysubbelief"><concrete ref="mysubcap.ex"/>

</beliefref>

Page 23: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Abstrakte Elemente

• Element hat keine Implementierung und muss von außerercapability zugewiesen werden

• Definition abstrakter Elementreferenz:<beliefref ...><abstract/></beliefref>

• Implementierung muss nicht erfolgen, wenn<abstract required="false">

• außere Capability implementiert Element (direkt oder uberandere Referenz); Zuweisung mittels <assignto>

Beispiel: Innere Capability (Auszug)

<beliefref name="abs" exported="true" class="MyF"><abstract/> </beliefref>

Beispiel: Außere Capability (Auszug)

<belief name="mybelief" class="MyF"><assignto ref="mysubcap.abs"> </belief>

Page 24: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Abstrakte Elemente

• Element hat keine Implementierung und muss von außerercapability zugewiesen werden

• Definition abstrakter Elementreferenz:<beliefref ...><abstract/></beliefref>

• Implementierung muss nicht erfolgen, wenn<abstract required="false">

• außere Capability implementiert Element (direkt oder uberandere Referenz); Zuweisung mittels <assignto>

Beispiel: Innere Capability (Auszug)

<beliefref name="abs" exported="true" class="MyF"><abstract/> </beliefref>

Beispiel: Außere Capability (Auszug)

<belief name="mybelief" class="MyF"><assignto ref="mysubcap.abs"> </belief>

Page 25: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Abstrakte Elemente

• Element hat keine Implementierung und muss von außerercapability zugewiesen werden

• Definition abstrakter Elementreferenz:<beliefref ...><abstract/></beliefref>

• Implementierung muss nicht erfolgen, wenn<abstract required="false">

• außere Capability implementiert Element (direkt oder uberandere Referenz); Zuweisung mittels <assignto>

Beispiel: Innere Capability (Auszug)

<beliefref name="abs" exported="true" class="MyF"><abstract/> </beliefref>

Beispiel: Außere Capability (Auszug)

<belief name="mybelief" class="MyF"><assignto ref="mysubcap.abs"> </belief>

Page 26: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 27: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Spezifikation im ADF

• belief spezifiziert im ADF, Aufruf und Anderung durchplans

• einleitender Tag fur beliefs bzw. beliefsets ist <belief>bzw. <beliefset>

• <belief> und <beliefset> haben zwei Attribute:• name – um an anderer Stelle Bezug auf die im belief

enthaltenen Fakten zu nehmen• class – Angabe der Java-Klasse, welche die Fakten realisiert

• direkte Angabe initialer Fakten inmitten <fact></fact>

• bei initialen Fakten unbekannter Anzahl:<facts></facts>

Page 28: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel zur Spezifikation im ADF

<beliefs><belief name="my_location" class="Location"><fact>new Location("Hamburg")</fact>

</belief><beliefset name="my_friends" class="String"><fact>"Alex"</fact><fact>"Blandi"</fact><fact>"Charly"</fact>

</beliefset><beliefset name="my_opponents" class="String"><facts>Database.getOpponents()</facts>

</beliefset></beliefs>

Page 29: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel zur Spezifikation im ADF

<beliefs><belief name="my_location" class="Location"><fact>new Location("Hamburg")</fact>

</belief><beliefset name="my_friends" class="String"><fact>"Alex"</fact><fact>"Blandi"</fact><fact>"Charly"</fact>

</beliefset><beliefset name="my_opponents" class="String"><facts>Database.getOpponents()</facts>

</beliefset></beliefs>

Page 30: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel zur Spezifikation im ADF

<beliefs><belief name="my_location" class="Location"><fact>new Location("Hamburg")</fact>

</belief><beliefset name="my_friends" class="String"><fact>"Alex"</fact><fact>"Blandi"</fact><fact>"Charly"</fact>

</beliefset><beliefset name="my_opponents" class="String"><facts>Database.getOpponents()</facts>

</beliefset></beliefs>

Page 31: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel zur Spezifikation im ADF

<beliefs><belief name="my_location" class="Location"><fact>new Location("Hamburg")</fact>

</belief><beliefset name="my_friends" class="String"><fact>"Alex"</fact><fact>"Blandi"</fact><fact>"Charly"</fact>

</beliefset><beliefset name="my_opponents" class="String"><facts>Database.getOpponents()</facts>

</beliefset></beliefs>

Page 32: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Zugriff auf Beliefs aus Plans

• getBeliefbase() liefert beliefbase (IBeliefbase)

• IBeliefbase.getBelief(String name) bzw..getBeliefSet(String name) liefert beliefs (KlasseIBelief) bzw. beliefsets (Klasse IBeliefSet)

• Zugriff auf die Fakten mittels IBelief.getFact() bzw.IBeliefSet.getFacts()

• weiterhin: containsFact(), setFact(),addFact(fact), removeFact(fact), updateFact()

Beispiel

public void body { ...IBelief h = getBeliefbase().getBelief("hungry");h.setFact(new Boolean(true)); ...Food[] food = (Food[])getBeliefbase()

.getBeliefSet("food").getFacts(); ... }

Page 33: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Zugriff auf Beliefs aus Plans

• getBeliefbase() liefert beliefbase (IBeliefbase)

• IBeliefbase.getBelief(String name) bzw..getBeliefSet(String name) liefert beliefs (KlasseIBelief) bzw. beliefsets (Klasse IBeliefSet)

• Zugriff auf die Fakten mittels IBelief.getFact() bzw.IBeliefSet.getFacts()

• weiterhin: containsFact(), setFact(),addFact(fact), removeFact(fact), updateFact()

Beispiel

public void body { ...IBelief h = getBeliefbase().getBelief("hungry");h.setFact(new Boolean(true)); ...Food[] food = (Food[])getBeliefbase()

.getBeliefSet("food").getFacts(); ... }

Page 34: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Auswertung und Propagation

Auswertung initialer Fakten nur beim Start des Agenten, es seidenn explizite Angabe von:

• <fact evaluationmode="dynamic"> – Auswertung beijedem Zugriff

• <belief updaterate="n"> – Auswertung zusatzlich allen Sekunden

Propagation von Belief-Anderungen:

• Beliefs konnen als Bedingungen dienen, z. B. fur goals.

• Anderungen an beliefs mussen deshalb propagiert werden.• Propagation in einfachen Fallen automatisch, z. B. bei

Zuweisung neuen Faktums zum belief oder Anderungendurch Belief-Abhangigkeiten

• bei Anderungen eines komplexen Fakt-Objektes explizitesFeuern von events

Page 35: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Auswertung und Propagation

Auswertung initialer Fakten nur beim Start des Agenten, es seidenn explizite Angabe von:

• <fact evaluationmode="dynamic"> – Auswertung beijedem Zugriff

• <belief updaterate="n"> – Auswertung zusatzlich allen Sekunden

Propagation von Belief-Anderungen:

• Beliefs konnen als Bedingungen dienen, z. B. fur goals.

• Anderungen an beliefs mussen deshalb propagiert werden.• Propagation in einfachen Fallen automatisch, z. B. bei

Zuweisung neuen Faktums zum belief oder Anderungendurch Belief-Abhangigkeiten

• bei Anderungen eines komplexen Fakt-Objektes explizitesFeuern von events

Page 36: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 37: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Allgemeines und Spezifikation 1/2

• bereits erwahnt: perform goals, achieve goals, query goals,maintain goals

• zusatzlich: meta-level goals, z. B.”finde einen

auszufuhrenden plan“

• Unterscheidung zwischen:• top-level goals – zu Beginn verfugbar oder spater

angenommen• subgoals – nur von laufenden plans dispatcht

• Spezifikation von goals im ADF

• Goals konnen Parameter haben (Spezifikation ahnlichbeliefs).

• Attribut direction ∈ {in, out, inout}• Attribut optional – Parameter ist optional• Parameterwert mittels <value> oder <bindingoptions>

Page 38: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Allgemeines und Spezifikation 2/2

• <unique/> – Es wird nur eine Goal-Instanz gleichen Typsund gleicher Parameter instantiiert.

• <exclude> kann angeben, welche Parameter dabei nichtverglichen werden sollen.

• autom. Instantiierung durch <creationcondition>

• autom. Suspendierung durch <contextcondition>• Terminiere alle zum goal gehorenden plans und subgoals.• Sind die Kontext-Bedingungen wieder erfullt: Instantiiere

neue plans und subgoals.

• autom. Verwurf durch <dropcondition>• Verworfene goals konnen nicht reaktiviert werden.

Page 39: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

BDI-Flags

• Attribute von Elementen (hier: goals)• Spezifikation im ADF in <goal> oder fur einzelne

Goal-Instanzen mittels set-Methode

Name Default mogliche Werte

retry true {true, false}retrydelay 0 positive long valueexclude "w. t." {"when tried"

"when succeeded""when failed""never"}

posttoall false {true,false}randomselection false {true,false}metalevelreasoning true {true,false}

Tabelle: allen Goal-Typen gemeine BDI-Flags

Page 40: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

BDI-Flags

• Attribute von Elementen (hier: goals)• Spezifikation im ADF in <goal> oder fur einzelne

Goal-Instanzen mittels set-Methode

Name Default mogliche Werte

retry true {true, false}retrydelay 0 positive long valueexclude "w. t." {"when tried"

"when succeeded""when failed""never"}

posttoall false {true,false}randomselection false {true,false}metalevelreasoning true {true,false}

Tabelle: allen Goal-Typen gemeine BDI-Flags

Page 41: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Spezielle Bedingungen

Achieve Goals:

• <targetcondition> – gibt an, wann goal erreicht ist

• <failurecondition> – gibt an, wann goal fehlschlagt

• wenn nicht angegeben: Erfolg der plans bestimmt Erfolgdes goals

Query Goals:

• implizite Zielbedingungen:• alle Parameter mit direction=out 6= null• parametersets verfugen uber mindestens einen Wert

Maintain Goals:

• <maintaincondition> (verpflichtend) – gibt zuerhaltenden Zustand an

• <targetcondition> – Zielzustand bei Verletzung der<maintaincondition>

Page 42: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Spezielle Bedingungen

Achieve Goals:

• <targetcondition> – gibt an, wann goal erreicht ist

• <failurecondition> – gibt an, wann goal fehlschlagt

• wenn nicht angegeben: Erfolg der plans bestimmt Erfolgdes goals

Query Goals:

• implizite Zielbedingungen:• alle Parameter mit direction=out 6= null• parametersets verfugen uber mindestens einen Wert

Maintain Goals:

• <maintaincondition> (verpflichtend) – gibt zuerhaltenden Zustand an

• <targetcondition> – Zielzustand bei Verletzung der<maintaincondition>

Page 43: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Spezielle Bedingungen

Achieve Goals:

• <targetcondition> – gibt an, wann goal erreicht ist

• <failurecondition> – gibt an, wann goal fehlschlagt

• wenn nicht angegeben: Erfolg der plans bestimmt Erfolgdes goals

Query Goals:

• implizite Zielbedingungen:• alle Parameter mit direction=out 6= null• parametersets verfugen uber mindestens einen Wert

Maintain Goals:

• <maintaincondition> (verpflichtend) – gibt zuerhaltenden Zustand an

• <targetcondition> – Zielzustand bei Verletzung der<maintaincondition>

Page 44: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiele 1/3

Perform Goal<performgoal name="patrol" retry="true"exclude="never"><contextcondition>

!$beliefbase.is_loading &amp;&amp;!$beliefbase.daytime

<contextcondition></performgoal>

Achieve Goal<achievegoal name="moveto">

<parameter name="loc" class="Location"/><targetcondition>

$beliefbase.my_loc.isNear($goal.loc)</targetcondition>

</achievegoal>

Page 45: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiele 1/3

Perform Goal<performgoal name="patrol" retry="true"exclude="never"><contextcondition>

!$beliefbase.is_loading &amp;&amp;!$beliefbase.daytime

<contextcondition></performgoal>

Achieve Goal<achievegoal name="moveto">

<parameter name="loc" class="Location"/><targetcondition>

$beliefbase.my_loc.isNear($goal.loc)</targetcondition>

</achievegoal>

Page 46: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiele 2/3

Query Goal

<querygoal name="qw" exclude="never" retry="true"><parameter name="result" class="Wastebin"direction="out"><value evaluationmode="dynamic">

select one $wastebinfrom $beliefbase.wastebinswhere !$wastebin.isFull()order by $beliefbase.my_location

.getDistance($wastebin.getLocation())</value>

</parameter></querygoal>

Page 47: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiele 3/3

Maintain Goal<maintaingoal name="battery_loaded">

<maintaincondition>$beliefbase.my_chargestate &gt; 0.2

</maintaincondition><targetcondition>

$beliefbase.my_chargestate == 1.0</targetcondition>

</maintaingoal>

Page 48: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Easy Deliberation

• paralleles Verfolgen aller derzeitig moglichen goals nichtimmer sinnvoll ⇒ Sperrbeziehungen festlegen

• <deliberation cardinality="n"> – nur n Instanzengleichen Goal-Typs zulassen

• <inhibits ref="gn"> (innerhalb von<deliberation></deliberation>) – goal sperrt

”gn“

• Attribut inhibit="when in process" – Sperrung nurwenn goal gerade verarbeitet wird

Beispiel

<maintaingoal name="maintainbatteryloaded"> ...<deliberation>

<inhibits ref="performpatrol"inhibit="when_in_process"/>

</deliberation> ...</maintaingoal>

Page 49: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Easy Deliberation

• paralleles Verfolgen aller derzeitig moglichen goals nichtimmer sinnvoll ⇒ Sperrbeziehungen festlegen

• <deliberation cardinality="n"> – nur n Instanzengleichen Goal-Typs zulassen

• <inhibits ref="gn"> (innerhalb von<deliberation></deliberation>) – goal sperrt

”gn“

• Attribut inhibit="when in process" – Sperrung nurwenn goal gerade verarbeitet wird

Beispiel

<maintaingoal name="maintainbatteryloaded"> ...<deliberation>

<inhibits ref="performpatrol"inhibit="when_in_process"/>

</deliberation> ...</maintaingoal>

Page 50: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Meta-Level Goals

• falls mehrere passende Plane zur Behandlung eines goals(oder events) bereitstehen ⇒ Plan-Auswahl durchmeta-level reasoning

• Erzeugung von meta-level goal fur aufgetretenes goal(oder event)

• Ausfuhrung von meta-level plans fur meta-level goal

• danach Ergebnis (tatsachlich auszufuhrende plans) imParameter result des meta-level goals

• <metagoal> muss <trigger> haben

• <metagoal> muss mindestens in-Parameter"applicables" und out-Parameter "result" (beidevom Typ jadex.runtime.ICandidateInfo) haben

Page 51: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 52: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Trigger und Bedingungen

• <trigger> gibt an, wann eine neue Plan-Instanz erzeugtwerden soll

• eventgetrieben: <internalevent>, <messageevent>,<goal>

• Verfeinerung durch <parameter> moglich• Ubereinstimmung aller angegebenen Parameter

• datengetrieben: <condition>, <beliefchange>,<beliefsetchange>, <factadded>, <factremoved>

• Vorbedingungen: <precondition>

• Kontextbedingungen: <contextcondition>

Beispiel: Reparaturplan

<trigger><condition> $beliefbase.out_of_order</condition></trigger><contextcondition> $beliefbase.repairable</contextcondition>

Page 53: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Trigger und Bedingungen

• <trigger> gibt an, wann eine neue Plan-Instanz erzeugtwerden soll

• eventgetrieben: <internalevent>, <messageevent>,<goal>

• Verfeinerung durch <parameter> moglich• Ubereinstimmung aller angegebenen Parameter

• datengetrieben: <condition>, <beliefchange>,<beliefsetchange>, <factadded>, <factremoved>

• Vorbedingungen: <precondition>

• Kontextbedingungen: <contextcondition>

Beispiel: Reparaturplan

<trigger><condition> $beliefbase.out_of_order</condition></trigger><contextcondition> $beliefbase.repairable</contextcondition>

Page 54: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Waitqueue und Cleanup

Waitqueue:

• Zeitverzogerung zwischen Eventauslosung und Ausfuhrungdes dadurch ausgelosten Planschrittes moglich

• in der Zwischenzeit ausgelostes Event, das erst nachAusfuhrung des Planschrittes relevant ist, wird nichtweitergegeben

• Losung: Spezifiziere, welche Events in die waitqueue solleninnerhalb von <waitqueue></waitqueue> oder ubergetWaitqueue() im body.

Cleanup:

• Plan erfolgreich, wenn Beendigung ohne exception;Spezifikation des Aufraumcodes mittels passed()

• Plan fehlgeschlagen, z. B. wenn exception geworfen;Spezifikation des Aufraumcodes mittels failed()

• Plan abgebrochen, z. B. wenn goal nicht mehr aktuell;Spezifikation des Aufraumcodes mittels aborted()

Page 55: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Waitqueue und Cleanup

Waitqueue:

• Zeitverzogerung zwischen Eventauslosung und Ausfuhrungdes dadurch ausgelosten Planschrittes moglich

• in der Zwischenzeit ausgelostes Event, das erst nachAusfuhrung des Planschrittes relevant ist, wird nichtweitergegeben

• Losung: Spezifiziere, welche Events in die waitqueue solleninnerhalb von <waitqueue></waitqueue> oder ubergetWaitqueue() im body.

Cleanup:

• Plan erfolgreich, wenn Beendigung ohne exception;Spezifikation des Aufraumcodes mittels passed()

• Plan fehlgeschlagen, z. B. wenn exception geworfen;Spezifikation des Aufraumcodes mittels failed()

• Plan abgebrochen, z. B. wenn goal nicht mehr aktuell;Spezifikation des Aufraumcodes mittels aborted()

Page 56: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 57: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Events in Jadex

• Jadex ist eventbasiert; nichts geschieht ohne event.

• <goalevent> – wird automatisch ausgelost• process event – active goal soll verfolgt werden• info event – Verarbeitung des goals beendet

• <internalevent> – explizite Einwege-Kommunikationinnerhalb des Agenten

• <messageevent> – Nachricht von/nach außen

• <parameter> bzw. <parameterset> moglich• Attribut direction ∈ {in, out, inout}

• alle events haben Attribute posttoall,metalevelreasoning, randomselection

• weitere benutzertransparente events (z. B. wenn beliefsplans auslosen)

Page 58: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel: Internal Event

Auszug aus ADF<events>

<internalevent name="gui_update"><parameter name="content" class="String">

</internalevent></events>

Auszug aus planpublic void body() {

String update_info; ...IInternalEvent event =

createInternalEvent("gui_update");event.getParameter("content")

.setValue(update_info);dispatchInternalEvent(event); ...

}

Page 59: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel: Internal Event

Auszug aus ADF<events>

<internalevent name="gui_update"><parameter name="content" class="String">

</internalevent></events>

Auszug aus planpublic void body() {

String update_info; ...IInternalEvent event =

createInternalEvent("gui_update");event.getParameter("content")

.setValue(update_info);dispatchInternalEvent(event); ...

}

Page 60: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Message Events

• Spezifikation aller zu sendenden und zu empfangendenmessage event types im ADF notwendig

• direction ∈ {send, receive, send receive}• Nachrichtentyp (Attribut type von <event>) gibt

mogliche Parameter an; derzeit nur FIPA1 moglich• message event type nur lokal bekannt, Vorgehensweise bei

eintreffender Nachricht?• Parametervergleich: Nachricht ⇔ message event type• nur Berucksichtigung wenn direction="fixed"

• Erzeugung: createMessageEvent(String type)• Emfanger: jadex.adapter.fipa.AgentIdentifier• Setze Nachrichteninhalt: setContent(Object content)• Senden: sendMessage(IMessageEvent me)• nutze Parameter conversion-id oder reply-with zur

Zuordnung von Antworten• direkte Antwort mit createReply()1Foundation for Intelligent Physical Agents

Page 61: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel: Message Event

<events><messageevent name="request_carry" type="fipa"direction="send"><parameter name="performative"class="String" direction="fixed"><value>SFipa.REQUEST</value>

</parameter><parameter name="reply-with" class="String">

<value>SFipa.createUniqueId(...)</value></parameter>

</messageevent>...

</events>

Page 62: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel: Message Event

<events><messageevent name="request_carry" type="fipa"direction="send"><parameter name="performative"class="String" direction="fixed"><value>SFipa.REQUEST</value>

</parameter><parameter name="reply-with" class="String">

<value>SFipa.createUniqueId(...)</value></parameter>

</messageevent>...

</events>

Page 63: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel: Message Event

<events><messageevent name="request_carry" type="fipa"direction="send"><parameter name="performative"class="String" direction="fixed"><value>SFipa.REQUEST</value>

</parameter><parameter name="reply-with" class="String">

<value>SFipa.createUniqueId(...)</value></parameter>

</messageevent>...

</events>

Page 64: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beispiel: Message Event

<events><messageevent name="request_carry" type="fipa"direction="send"><parameter name="performative"class="String" direction="fixed"><value>SFipa.REQUEST</value>

</parameter><parameter name="reply-with" class="String">

<value>SFipa.createUniqueId(...)</value></parameter>

</messageevent>...

</events>

Page 65: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Literatur

I Alexander Pokahr, Lars Braubach, Andrzej Walczak. JadexUser Guide (Release 0.941). Internet:http://tinyurl.com/r4dly, 2005 (Stand: 2006–03–25).

I Lars Braubach, Alexander Pokahr, Andrzej Walczak. JadexTutorial (Release 0.941). Internet:http://tinyurl.com/h657v, 2005 (Stand: 2006–03–25).

I Diverse Autoren. Software-Agent. Internet:http://de.wikipedia.org/wiki/Software-Agent(Stand: 2006–03–25).

Page 66: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 67: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 68: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 1/4

TranslationB1.agent.xml<agent ...><plans><plan name="egtrans"><body>new EGTPlB1()</body><waitqueue><messageevent ref="req_t"/>

</waitqueue></plan>

</plans><events><messageevent name="req_t"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed">

Page 69: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 1/4

TranslationB1.agent.xml<agent ...><plans><plan name="egtrans"><body>new EGTPlB1()</body><waitqueue><messageevent ref="req_t"/>

</waitqueue></plan>

</plans><events><messageevent name="req_t"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed">

Page 70: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 1/4

TranslationB1.agent.xml<agent ...><plans><plan name="egtrans"><body>new EGTPlB1()</body><waitqueue><messageevent ref="req_t"/>

</waitqueue></plan>

</plans><events><messageevent name="req_t"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed">

Page 71: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 2/4

<value>jadex.adapter.fipa.SFipa.REQUEST

</value></parameter>

</messageevent></events><initialstates><initialstate name="default"><plans><initialplan ref="egtrans"/>

</plans></initialstate>

</initialstates></agent>

Page 72: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 2/4

<value>jadex.adapter.fipa.SFipa.REQUEST

</value></parameter>

</messageevent></events><initialstates><initialstate name="default"><plans><initialplan ref="egtrans"/>

</plans></initialstate>

</initialstates></agent>

Page 73: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 2/4

<value>jadex.adapter.fipa.SFipa.REQUEST

</value></parameter>

</messageevent></events><initialstates><initialstate name="default"><plans><initialplan ref="egtrans"/>

</plans></initialstate>

</initialstates></agent>

Page 74: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 3/4

EGTPlB1.javaimport java.util.*;import jadex.runtime.*;

public class EGTPlB1 extends Plan {HashMap h = new HashMap();public EGTPlB1() {h.put("firefly","Gluehwuermchen");h.put("serenity","Gelassenheit");

}

public void body() {while(true) {IMessageEvent me

= waitForMessageEvent("req_t");

Page 75: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 3/4

EGTPlB1.javaimport java.util.*;import jadex.runtime.*;

public class EGTPlB1 extends Plan {HashMap h = new HashMap();public EGTPlB1() {h.put("firefly","Gluehwuermchen");h.put("serenity","Gelassenheit");

}

public void body() {while(true) {IMessageEvent me

= waitForMessageEvent("req_t");

Page 76: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 3/4

EGTPlB1.javaimport java.util.*;import jadex.runtime.*;

public class EGTPlB1 extends Plan {HashMap h = new HashMap();public EGTPlB1() {h.put("firefly","Gluehwuermchen");h.put("serenity","Gelassenheit");

}

public void body() {while(true) {IMessageEvent me

= waitForMessageEvent("req_t");

Page 77: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 3/4

EGTPlB1.javaimport java.util.*;import jadex.runtime.*;

public class EGTPlB1 extends Plan {HashMap h = new HashMap();public EGTPlB1() {h.put("firefly","Gluehwuermchen");h.put("serenity","Gelassenheit");

}

public void body() {while(true) {IMessageEvent me

= waitForMessageEvent("req_t");

Page 78: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Service Plan 4/4

String eword = (String)me.getContent();if (h.containsKey(eword)==true) {String gword = (String)h.get(eword);System.out.println(eword+" - "+gword);

}else {System.out.println("Not in database");

}}

}}

Page 79: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Passive Plan 1/2

TranslationB2.agent.xml

TranslationB1.agent.xml mit folgenden Anderungen:

• kein <initialstates></initalstates>

• <trigger> statt <waitqueue>, also:

<plans><plan name="egtrans"><body>new EGTPlB2()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

</plans>

Page 80: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Passive Plan 1/2

TranslationB2.agent.xml

TranslationB1.agent.xml mit folgenden Anderungen:

• kein <initialstates></initalstates>

• <trigger> statt <waitqueue>, also:

<plans><plan name="egtrans"><body>new EGTPlB2()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

</plans>

Page 81: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Passive Plan 2/2

EGTPlB2.java

EGTPlB1.java mit folgenden Anderungen:

• Wegfall der while(true)-Schleife

• IMessageEvent me =(IMessageEvent)getInitialEvent();

stattIMessageEvent me =waitForMessageEvent("req t");

Page 82: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Plan-Auswahl 1/2

EGTPlB3.java

EGTPlB2.java zzgl. public boolean containsWord(...)

TranslationB3.agent.xml

TranslationB2.agent.xml mit folgenden Anderungen:

• <precondition> fur plan”egtrans“:

<precondition>EGTPlB3.containsWord((String)$event.getContent())</precondition>

• Definition neuen plans zur Online-Suche:

<plan name="searchonline" priority="-1"><body>new SearchOnline()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

Page 83: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Plan-Auswahl 1/2

EGTPlB3.java

EGTPlB2.java zzgl. public boolean containsWord(...)

TranslationB3.agent.xml

TranslationB2.agent.xml mit folgenden Anderungen:

• <precondition> fur plan”egtrans“:

<precondition>EGTPlB3.containsWord((String)$event.getContent())</precondition>

• Definition neuen plans zur Online-Suche:

<plan name="searchonline" priority="-1"><body>new SearchOnline()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

Page 84: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Plan-Auswahl 1/2

EGTPlB3.java

EGTPlB2.java zzgl. public boolean containsWord(...)

TranslationB3.agent.xml

TranslationB2.agent.xml mit folgenden Anderungen:

• <precondition> fur plan”egtrans“:

<precondition>EGTPlB3.containsWord((String)$event.getContent())</precondition>

• Definition neuen plans zur Online-Suche:

<plan name="searchonline" priority="-1"><body>new SearchOnline()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

Page 85: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Plan-Auswahl 2/2

SearchOnline.java

public void body() {IMessageEvent me =

(IMessageEvent)getInitialEvent();String eword = (String)me.getContent();try {URL dict = new URL("http://wolfram.

schneider.org/dict/dict.cgi?query="+eword);BufferedReader in = new BufferedReader

(new InputStreamReader(dict.openStream()));// Bearbeite in und gibt Uebersetzung aus

}catch (Exception e) {}

}

Page 86: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Plan-Auswahl 2/2

SearchOnline.java

public void body() {IMessageEvent me =

(IMessageEvent)getInitialEvent();String eword = (String)me.getContent();try {URL dict = new URL("http://wolfram.

schneider.org/dict/dict.cgi?query="+eword);BufferedReader in = new BufferedReader

(new InputStreamReader(dict.openStream()));// Bearbeite in und gibt Uebersetzung aus

}catch (Exception e) {}

}

Page 87: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Plan-Auswahl 2/2

SearchOnline.java

public void body() {IMessageEvent me =

(IMessageEvent)getInitialEvent();String eword = (String)me.getContent();try {URL dict = new URL("http://wolfram.

schneider.org/dict/dict.cgi?query="+eword);BufferedReader in = new BufferedReader

(new InputStreamReader(dict.openStream()));// Bearbeite in und gibt Uebersetzung aus

}catch (Exception e) {}

}

Page 88: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Plan-Auswahl 2/2

SearchOnline.java

public void body() {IMessageEvent me =

(IMessageEvent)getInitialEvent();String eword = (String)me.getContent();try {URL dict = new URL("http://wolfram.

schneider.org/dict/dict.cgi?query="+eword);BufferedReader in = new BufferedReader

(new InputStreamReader(dict.openStream()));// Bearbeite in und gibt Uebersetzung aus

}catch (Exception e) {}

}

Page 89: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 90: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 1/4

• neues Nachrichtenformat: <action> <language(s)><content>, also z. B.

”translate english german

doughnut“ oder”add english german doughnut

Berliner“• Worterbuch nun als belief realisiert

TranslationC1.agent.xml

<agent ...><beliefs><belief name="egw" class="Map"><fact>EGTPlC1.getDictionary()</fact>

</belief></beliefs><plans><plan name="addword"><body>new EGAddPlC1()</body>

Page 91: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 1/4

• neues Nachrichtenformat: <action> <language(s)><content>, also z. B.

”translate english german

doughnut“ oder”add english german doughnut

Berliner“• Worterbuch nun als belief realisiert

TranslationC1.agent.xml

<agent ...><beliefs><belief name="egw" class="Map"><fact>EGTPlC1.getDictionary()</fact>

</belief></beliefs><plans><plan name="addword"><body>new EGAddPlC1()</body>

Page 92: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 1/4

• neues Nachrichtenformat: <action> <language(s)><content>, also z. B.

”translate english german

doughnut“ oder”add english german doughnut

Berliner“• Worterbuch nun als belief realisiert

TranslationC1.agent.xml

<agent ...><beliefs><belief name="egw" class="Map"><fact>EGTPlC1.getDictionary()</fact>

</belief></beliefs><plans><plan name="addword"><body>new EGAddPlC1()</body>

Page 93: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 1/4

• neues Nachrichtenformat: <action> <language(s)><content>, also z. B.

”translate english german

doughnut“ oder”add english german doughnut

Berliner“• Worterbuch nun als belief realisiert

TranslationC1.agent.xml

<agent ...><beliefs><belief name="egw" class="Map"><fact>EGTPlC1.getDictionary()</fact>

</belief></beliefs><plans><plan name="addword"><body>new EGAddPlC1()</body>

Page 94: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 2/4

<trigger><messageevent ref="req_add"/>

</trigger></plan><plan name="egtrans"><body>new EGTPlC1()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

</plans><events><messageevent name="req_add"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed">

Page 95: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 2/4

<trigger><messageevent ref="req_add"/>

</trigger></plan><plan name="egtrans"><body>new EGTPlC1()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

</plans><events><messageevent name="req_add"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed">

Page 96: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 2/4

<trigger><messageevent ref="req_add"/>

</trigger></plan><plan name="egtrans"><body>new EGTPlC1()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

</plans><events><messageevent name="req_add"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed">

Page 97: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 2/4

<trigger><messageevent ref="req_add"/>

</trigger></plan><plan name="egtrans"><body>new EGTPlC1()</body><trigger><messageevent ref="req_t"/>

</trigger></plan>

</plans><events><messageevent name="req_add"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed">

Page 98: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 3/4

<value>SFipa.REQUEST</value></parameter><parameter name="content-start"class="String" direction="fixed"><value>"add english_german"</value>

</parameter></messageevent><messageevent name="req_t"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed"><value>jadex.adapter.fipa.SFipa.REQUEST

</value></parameter>

Page 99: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 3/4

<value>SFipa.REQUEST</value></parameter><parameter name="content-start"class="String" direction="fixed"><value>"add english_german"</value>

</parameter></messageevent><messageevent name="req_t"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed"><value>jadex.adapter.fipa.SFipa.REQUEST

</value></parameter>

Page 100: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 3/4

<value>SFipa.REQUEST</value></parameter><parameter name="content-start"class="String" direction="fixed"><value>"add english_german"</value>

</parameter></messageevent><messageevent name="req_t"direction="receive" type="fipa"><parameter name="performative"class="String" direction="fixed"><value>jadex.adapter.fipa.SFipa.REQUEST

</value></parameter>

Page 101: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 4/4<parameter name="content-start"class="String" direction="fixed"><value>"translate english_german"

</value></parameter>

</messageevent></events>

</agent>

EGTPlC1.java / EGAddPlC1.java

• EGTPlC1.java ahnlich EGTPlB2.java

• statische Methode getDictionary() liefert Map

• Zugriff auf belief durch Map wordtable = (Map)getBeliefbase().getBelief("egw").getFact();

• Auswahl des Wortes durch StringTokenizer

Page 102: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief 4/4<parameter name="content-start"class="String" direction="fixed"><value>"translate english_german"

</value></parameter>

</messageevent></events>

</agent>

EGTPlC1.java / EGAddPlC1.java

• EGTPlC1.java ahnlich EGTPlB2.java

• statische Methode getDictionary() liefert Map

• Zugriff auf belief durch Map wordtable = (Map)getBeliefbase().getBelief("egw").getFact();

• Auswahl des Wortes durch StringTokenizer

Page 103: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefset 1/2

TranslationC2.agent.xml

TranslationC1.agent.xml mit folgenden Anderungen:

<beliefs><beliefset name="egw" class="Tuple"><fact>new Tuple("scope", "Weite")</fact><fact>new Tuple("tranquility", "Ruhe")</fact>

</beliefset></beliefs><expressions>

<expression name="query_egw">select one $wordpair.get(1)from Tuple $wordpair in $beliefbase.egwwhere $wordpair.get(0).equals($eword)<parameter name="$eword" class="String"/>

</expression></expressions>

Page 104: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefset 1/2

TranslationC2.agent.xml

TranslationC1.agent.xml mit folgenden Anderungen:

<beliefs><beliefset name="egw" class="Tuple"><fact>new Tuple("scope", "Weite")</fact><fact>new Tuple("tranquility", "Ruhe")</fact>

</beliefset></beliefs><expressions>

<expression name="query_egw">select one $wordpair.get(1)from Tuple $wordpair in $beliefbase.egwwhere $wordpair.get(0).equals($eword)<parameter name="$eword" class="String"/>

</expression></expressions>

Page 105: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefset 1/2

TranslationC2.agent.xml

TranslationC1.agent.xml mit folgenden Anderungen:

<beliefs><beliefset name="egw" class="Tuple"><fact>new Tuple("scope", "Weite")</fact><fact>new Tuple("tranquility", "Ruhe")</fact>

</beliefset></beliefs><expressions>

<expression name="query_egw">select one $wordpair.get(1)from Tuple $wordpair in $beliefbase.egwwhere $wordpair.get(0).equals($eword)<parameter name="$eword" class="String"/>

</expression></expressions>

Page 106: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefset 2/2EGTPlC2.javaimport java.util.*; import jadex.runtime.*;public class EGTPlC2 extends Plan {protected IExpression queryword;public EGTPl2() {this.queryword = getExpression("query_egw");

}public void body() {MessageEvent me =

(IMessageEvent)getInitialEvent();StringTokenizer stok =

new StringTokenizer((String)me.getContent());stok.nextToken(); stok.nextToken();String eword = stok.nextToken();String gword =(String)queryword.execute("$eword", eword);

...

Page 107: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefset 2/2EGTPlC2.javaimport java.util.*; import jadex.runtime.*;public class EGTPlC2 extends Plan {protected IExpression queryword;public EGTPl2() {this.queryword = getExpression("query_egw");

}public void body() {MessageEvent me =

(IMessageEvent)getInitialEvent();StringTokenizer stok =

new StringTokenizer((String)me.getContent());stok.nextToken(); stok.nextToken();String eword = stok.nextToken();String gword =(String)queryword.execute("$eword", eword);

...

Page 108: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefset 2/2EGTPlC2.javaimport java.util.*; import jadex.runtime.*;public class EGTPlC2 extends Plan {protected IExpression queryword;public EGTPl2() {this.queryword = getExpression("query_egw");

}public void body() {MessageEvent me =

(IMessageEvent)getInitialEvent();StringTokenizer stok =

new StringTokenizer((String)me.getContent());stok.nextToken(); stok.nextToken();String eword = stok.nextToken();String gword =(String)queryword.execute("$eword", eword);

...

Page 109: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Beliefset 2/2EGTPlC2.javaimport java.util.*; import jadex.runtime.*;public class EGTPlC2 extends Plan {protected IExpression queryword;public EGTPl2() {this.queryword = getExpression("query_egw");

}public void body() {MessageEvent me =

(IMessageEvent)getInitialEvent();StringTokenizer stok =

new StringTokenizer((String)me.getContent());stok.nextToken(); stok.nextToken();String eword = stok.nextToken();String gword =(String)queryword.execute("$eword", eword);

...

Page 110: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief Condition 1/2

Gratuliere jedem 10. Anfrager!

TranslationC3.agent.xml

TranslationC2.agent.xml mit folgenden Erganzungen inden jeweiligen Sektionen:

<belief name="transcnt" class="int"><fact>0</fact> </belief>

<plan name="thankyou"><body>new ThankYouPlanC3()</body><trigger><condition>$beliefbase.transcnt>0 &amp;&amp;$beliefbase.transcnt%10==0

</condition></trigger></plan>

Page 111: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief Condition 1/2

Gratuliere jedem 10. Anfrager!

TranslationC3.agent.xml

TranslationC2.agent.xml mit folgenden Erganzungen inden jeweiligen Sektionen:

<belief name="transcnt" class="int"><fact>0</fact> </belief>

<plan name="thankyou"><body>new ThankYouPlanC3()</body><trigger><condition>$beliefbase.transcnt>0 &amp;&amp;$beliefbase.transcnt%10==0

</condition></trigger></plan>

Page 112: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief Condition 1/2

Gratuliere jedem 10. Anfrager!

TranslationC3.agent.xml

TranslationC2.agent.xml mit folgenden Erganzungen inden jeweiligen Sektionen:

<belief name="transcnt" class="int"><fact>0</fact> </belief>

<plan name="thankyou"><body>new ThankYouPlanC3()</body><trigger><condition>$beliefbase.transcnt>0 &amp;&amp;$beliefbase.transcnt%10==0

</condition></trigger></plan>

Page 113: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief Condition 2/2

EGTPlC3.java

EGTPlC2.java mit folgender Erganzung:

int cnt = ((Integer)getBeliefbase().getBelief("transcnt").getFact()).intValue();

getBeliefbase().getBelief("transcnt").setFact(new Integer(cnt+1));

ThankYouPlanC3.java

Gib Gratulationsnachricht aus!

Page 114: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Belief Condition 2/2

EGTPlC3.java

EGTPlC2.java mit folgender Erganzung:

int cnt = ((Integer)getBeliefbase().getBelief("transcnt").getFact()).intValue();

getBeliefbase().getBelief("transcnt").setFact(new Integer(cnt+1));

ThankYouPlanC3.java

Gib Gratulationsnachricht aus!

Page 115: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Uberblick

1 Einfuhrung

2 KomponentenCapabilitiesBeliefsGoalsPlansEvents

3 Anhang: BeispielePlansBeliefsGoals

Page 116: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 1/5

• Zusatzliche Ubersetzungsrichtung Englisch → Franzosisch

• neuer Plan ProcessT soll Ubersetzungsanfragenentgegennehmen und goals dispatchen

TranslationE1.agent.xml

basiert auf TranslationC2.agent.xml mit Anderungen:

<goals><achievegoal name="translate"><parameter name="direction" class="String"/><parameter name="word" class="String"/><parameter name="result" class="String"direction="out"/>

</achievegoal></goals>

Page 117: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 1/5

• Zusatzliche Ubersetzungsrichtung Englisch → Franzosisch

• neuer Plan ProcessT soll Ubersetzungsanfragenentgegennehmen und goals dispatchen

TranslationE1.agent.xml

basiert auf TranslationC2.agent.xml mit Anderungen:

<goals><achievegoal name="translate"><parameter name="direction" class="String"/><parameter name="word" class="String"/><parameter name="result" class="String"direction="out"/>

</achievegoal></goals>

Page 118: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 2/5

<plans><plan name="process"><body>new ProcessT()

</body><waitqueue><messageevent ref="req_t"/>

</waitqueue></plan><plan name="egtrans"><parameter name="word" class="String"><goalmapping ref="translate.word"/>

</parameter><parameter name="result" class="String"><goalmapping ref="translate.result"/>

</parameter>

Page 119: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 2/5

<plans><plan name="process"><body>new ProcessT()

</body><waitqueue><messageevent ref="req_t"/>

</waitqueue></plan><plan name="egtrans"><parameter name="word" class="String"><goalmapping ref="translate.word"/>

</parameter><parameter name="result" class="String"><goalmapping ref="translate.result"/>

</parameter>

Page 120: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 2/5

<plans><plan name="process"><body>new ProcessT()

</body><waitqueue><messageevent ref="req_t"/>

</waitqueue></plan><plan name="egtrans"><parameter name="word" class="String"><goalmapping ref="translate.word"/>

</parameter><parameter name="result" class="String"><goalmapping ref="translate.result"/>

</parameter>

Page 121: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 3/5

<body>new EGTPlE1()</body><trigger><goal ref="translate"><parameter ref="direction"><value>"english_german"</value>

</parameter></goal>

</trigger></plan> <!-- Franzoesisch analog -->

</plans><initialstates>

<!-- Starte service plan ProcessT wie inTranslationB1.agent.xml -->

</initialstates>

Page 122: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 3/5

<body>new EGTPlE1()</body><trigger><goal ref="translate"><parameter ref="direction"><value>"english_german"</value>

</parameter></goal>

</trigger></plan> <!-- Franzoesisch analog -->

</plans><initialstates>

<!-- Starte service plan ProcessT wie inTranslationB1.agent.xml -->

</initialstates>

Page 123: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 3/5

<body>new EGTPlE1()</body><trigger><goal ref="translate"><parameter ref="direction"><value>"english_german"</value>

</parameter></goal>

</trigger></plan> <!-- Franzoesisch analog -->

</plans><initialstates>

<!-- Starte service plan ProcessT wie inTranslationB1.agent.xml -->

</initialstates>

Page 124: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 4/5

ProcessT.java (Auszug)

while (true) {// hole Nachricht und zerlege sie in action,// dir und word mittels StringTokenizerIGoal goal = createGoal("translate");goal.getParameter("direction").setValue(dir);goal.getParameter("word").setValue(word);try {

dispatchSubgoalAndWait(goal);System.out.println(goal.getParameter("result").getValue());}

catch(GoalFailureException e) {System.out.println("Word not in database!")

};}

Page 125: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 4/5

ProcessT.java (Auszug)

while (true) {// hole Nachricht und zerlege sie in action,// dir und word mittels StringTokenizerIGoal goal = createGoal("translate");goal.getParameter("direction").setValue(dir);goal.getParameter("word").setValue(word);try {

dispatchSubgoalAndWait(goal);System.out.println(goal.getParameter("result").getValue());}

catch(GoalFailureException e) {System.out.println("Word not in database!")

};}

Page 126: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 4/5

ProcessT.java (Auszug)

while (true) {// hole Nachricht und zerlege sie in action,// dir und word mittels StringTokenizerIGoal goal = createGoal("translate");goal.getParameter("direction").setValue(dir);goal.getParameter("word").setValue(word);try {

dispatchSubgoalAndWait(goal);System.out.println(goal.getParameter("result").getValue());}

catch(GoalFailureException e) {System.out.println("Word not in database!")

};}

Page 127: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 4/5

ProcessT.java (Auszug)

while (true) {// hole Nachricht und zerlege sie in action,// dir und word mittels StringTokenizerIGoal goal = createGoal("translate");goal.getParameter("direction").setValue(dir);goal.getParameter("word").setValue(word);try {

dispatchSubgoalAndWait(goal);System.out.println(goal.getParameter("result").getValue());}

catch(GoalFailureException e) {System.out.println("Word not in database!")

};}

Page 128: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 4/5

ProcessT.java (Auszug)

while (true) {// hole Nachricht und zerlege sie in action,// dir und word mittels StringTokenizerIGoal goal = createGoal("translate");goal.getParameter("direction").setValue(dir);goal.getParameter("word").setValue(word);try {

dispatchSubgoalAndWait(goal);System.out.println(goal.getParameter("result").getValue());}

catch(GoalFailureException e) {System.out.println("Word not in database!")

};}

Page 129: Einführung in das Jadex-System fileBeliefs Goals Was ist Jadex? Was ist Jadex? ” Jadex is an agent-oriented reasoning engine for writing rational agents with XML and the Java programming

Einfuhrung indas

Jadex-System

Stefan Tittel

Einfuhrung

Komponenten

Capabilities

Beliefs

Goals

Plans

Events

Anhang:Beispiele

Plans

Beliefs

Goals

Achieve Goal 5/5

EGTPlE1.java

• grundsatzlich analog zu EGTPlC2.java

• Anfrage wird nicht mehr durch StringTokenizer zerlegt,sondern liegt als Parameter vor, also:

String eword =(String)getParameter("word").getValue();

• Ausgabe findet nun durch ProcessT statt, EGTPlC2 setztdaher Ergebnis als Ruckgabeparameter:

getParameter("result").setValue(gword);

• wirf exception, wenn keine Ubersetzung gefunden:

throw new PlanFailureException();