KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

19
KQML – KQML – Eine Programmiersprache Eine Programmiersprache für Agenten für Agenten Seminar „Software Agenten“ Seminar „Software Agenten“ Carsten Grosch Carsten Grosch 31.10.01 31.10.01

Transcript of KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

Page 1: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML – KQML – Eine ProgrammierspracheEine Programmiersprache

für Agentenfür Agenten Seminar „Software Agenten“Seminar „Software Agenten“

Carsten GroschCarsten Grosch31.10.0131.10.01

Page 2: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

ÜberblickÜberblick

• MotivationMotivation

• Grundlagen der KommunikationGrundlagen der Kommunikation

• Das KSE - KonsortiumDas KSE - Konsortium

• KQML KQML •Aufbau und SyntaxAufbau und Syntax

•KommunikationsbeispieleKommunikationsbeispiele

•DialogformenDialogformen

• AusblickAusblick

Page 3: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

MotivationMotivation

• Nachrichtenübermittlung Nachrichtenübermittlung zwischen Agentenzwischen Agenten

• KQML – Knowledge Query and KQML – Knowledge Query and Manipulation LanguageManipulation Language• In Anlehnung an In Anlehnung an

Sprachwissenschaftliche ErgebnisseSprachwissenschaftliche Ergebnisse

Page 4: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

SprechakttheorieSprechakttheorie

• Loktionärer AktLoktionärer Akt•Physikalische Äußerung Physikalische Äußerung

• Illuktionärer AktIlluktionärer Akt•Verwendung des Gesagten in einer Verwendung des Gesagten in einer

bestimmten Weise (z.B. Frage, bestimmten Weise (z.B. Frage, Feststellung, Behauptung)Feststellung, Behauptung)

• Perluktionärer AktPerluktionärer Akt•Auslösen einer Wirkung des GesagtenAuslösen einer Wirkung des Gesagten

• Beispiel: „Schließe die Tür !“Beispiel: „Schließe die Tür !“

Page 5: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

Agenten Agenten KommunikationKommunikation

• Anforderungen:Anforderungen:•Gemeinsame SpracheGemeinsame Sprache

•Gemeinsames Verständnis Gemeinsames Verständnis (Ontologie)(Ontologie)

•Fähigkeit zum Austausch von Fähigkeit zum Austausch von NachrichtenNachrichten

Page 6: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

OntologieOntologie

• Philosophie : „Lehre vom Philosophie : „Lehre vom Seienden“Seienden“

• Informatik: „Vereinbarung über Informatik: „Vereinbarung über das benutzte Vokabular und das benutzte Vokabular und dessen Anwendung“dessen Anwendung“

• Beispiel „Jaguar“Beispiel „Jaguar“

• Anmerkung: Konsistenz - nicht Anmerkung: Konsistenz - nicht VollständigkeitVollständigkeit

Page 7: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

Das KSE-KonsortiumDas KSE-Konsortium

• Ziel: Technische Infrastruktur zur Ziel: Technische Infrastruktur zur Unterstützung von WissensteilungUnterstützung von Wissensteilung

• Geldgeber: ARPA, ASOFR, NRI, NSFGeldgeber: ARPA, ASOFR, NRI, NSF

• ArbeitsgruppenArbeitsgruppen• Interlingua (Knowledge Interface Interlingua (Knowledge Interface

Format: KIF)Format: KIF)

•Shared Resusable Knowledge Bases Shared Resusable Knowledge Bases (SRKB)(SRKB)

•External Interfaces (KQML)External Interfaces (KQML)

Page 8: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML EigenschaftenKQML Eigenschaften

• Beinhaltet Protokoll und Sprache Beinhaltet Protokoll und Sprache zur Formulierung verschiedener zur Formulierung verschiedener NachrichtentypenNachrichtentypen

• Kapselung von Kapselung von NachrichteninhaltenNachrichteninhalten

• Kern: Performatives (Kern: Performatives (telltell, , askask, , etc.)etc.)

Page 9: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

Kommunikation

• Grundlegende Kommunikationsparameter

• Identität von Sender und Empfänger

• Eindeutige Kennung der Kommunikation

KQML - AufbauKQML - Aufbau

Nachrichten

• Kern von KQML

• Identifizierung des Protokolls

• Performatives

• Inhaltssprache, Ontologie, "Schlagwort"

Inhalt

• Inhalt der Nachricht

• In beliebiger Programmiersprache

• Prolog: "father(John, Eve)"

Page 10: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML - BeispielKQML - Beispiel

(tell

: sender Felix

: receiver Felix_Persona

: in-reply-to msg498

: ontology Genealogy

: languageProlog

: content „father(John, Eve)“)

Page 11: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML – Syntax KQML – Syntax (vereinfacht)(vereinfacht)

(tell : sender Felix

: receiver Felix_Persona

: in-reply-tomsg498

: ontologyGenealogy

: language Prolog

: content „father(John, Eve)“)

• Syntax Performatives

(performative-keyword paramter1 parameter2 ...)

• Syntax Parameter

:parameter-keyword <Wert>

Page 12: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML - PerformativesKQML - Performatives

Kategorie Name

Basis-Anfrage evaluate, ask-if, ask-about, ask-one, ask-all

Mehrfach-Antwort (Anfrage) stream-about, stream-all, eos

Antwort reply, sorry

Allgemeine Information tell, achieve, cancel, untell, unachieve

Impulsgeber standby, ready, next, rest, discard, generator

Fähigkeiten advertise, subscribe, monitor, import, export

Netzwerke register, unregister, forward, broadcast, route

Page 13: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

Kommunikation (1)Kommunikation (1)

(ask-one : sender joe: content (PRICE IBM ?price): receiver stock-server: in-reply-to ibm-stock: language LPROLOG: ontology NYSE-TICKS)

(tell : sender stock-server: content (PRICE IBM 118): receiver joe: in-reply-to ibm-stock: language LPROLOG: ontology NYSE-TICKS)

Page 14: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

Kommunikation (2)Kommunikation (2)

(advertise : sender stock-server: receiver joe: in-reply-to ibm-stock: language LPROLOG: ontology NYSE-TICKS: content (stream-all : content

(PRICE ?x ?y)))

(stream-all : sender joe: receiver stock-server: language LPROLOG: ontology NYSE-TICKS: content (PRICE ?VL ?price))

Page 15: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

FaciliatorsFaciliators

• Agent zur Unterstützung der Agent zur Unterstützung der KommunikationKommunikation

• UnterstützungsfunktionenUnterstützungsfunktionen•Zusammenführen von Zusammenführen von

Informationsanbietern und Informationsanbietern und NachfragernNachfragern

• KQML entwickelt, um solche KQML entwickelt, um solche Agenten-Architekturen zu Agenten-Architekturen zu unterstützenunterstützen

Page 16: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML - DialogeKQML - Dialoge

AA BB

FF

ask(X)

tell(X)

Page 17: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML - DialogeKQML - Dialoge

AA BB

FF

tell(X)

tell(X)

Subscribe(ask(X))

Page 18: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

KQML - DialogeKQML - Dialoge

AA BB

FF advertise(ask(X))

reply(B)

ask(X)

tell(X)

recommend(ask(X))

Page 19: KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

AusblickAusblick

• KQML bisher nur in Prototyp-KQML bisher nur in Prototyp-Systemen (verbreitet) eingesetztSystemen (verbreitet) eingesetzt

• FIPA entwickelt ebenfalls ACLFIPA entwickelt ebenfalls ACL

• KSE-Gruppe hält KQML für KSE-Gruppe hält KQML für geeignet, ein Standard für geeignet, ein Standard für Agenten-Kommunikation zu Agenten-Kommunikation zu werdenwerden