KQML – Eine Agenten- Kommunikationssprache

Download Report

Transcript KQML – Eine Agenten- Kommunikationssprache

KQML –
Eine Programmiersprache
für Agenten
Seminar „Software Agenten“
Carsten Grosch
31.10.01
Überblick
•
•
•
•
Motivation
Grundlagen der Kommunikation
Das KSE - Konsortium
KQML
• Aufbau und Syntax
• Kommunikationsbeispiele
• Dialogformen
• Ausblick
Motivation
• Nachrichtenübermittlung zwischen Agenten
• KQML – Knowledge Query and
Manipulation Language
• In Anlehnung an Sprachwissenschaftliche
Ergebnisse
Sprechakttheorie
• Loktionärer Akt
• Physikalische Äußerung
• Illuktionärer Akt
• Verwendung des Gesagten in einer bestimmten
Weise (z.B. Frage, Feststellung, Behauptung)
• Perluktionärer Akt
• Auslösen einer Wirkung des Gesagten
• Beispiel: „Schließe die Tür !“
Agenten Kommunikation
• Anforderungen:
• Gemeinsame Sprache
• Gemeinsames Verständnis (Ontologie)
• Fähigkeit zum Austausch von Nachrichten
Ontologie
• Philosophie : „Lehre vom Seienden“
• Informatik: „Vereinbarung über das
benutzte Vokabular und dessen
Anwendung“
• Beispiel „Jaguar“
• Anmerkung: Konsistenz - nicht
Vollständigkeit
Das KSE-Konsortium
• Ziel: Technische Infrastruktur zur
Unterstützung von Wissensteilung
• Geldgeber: ARPA, ASOFR, NRI, NSF
• Arbeitsgruppen
• Interlingua (Knowledge Interface Format: KIF)
• Shared Resusable Knowledge Bases (SRKB)
• External Interfaces (KQML)
KQML Eigenschaften
• Beinhaltet Protokoll und Sprache zur
Formulierung verschiedener
Nachrichtentypen
• Kapselung von Nachrichteninhalten
• Kern: Performatives (tell, ask, etc.)
KQML - Aufbau
Kommunikation
Nachrichten
••Inhalt
Grundlegende
Kommunikationsparameter
Kern von KQML
• Inhalt der
••Identität
vonNachricht
Sender
und Empfänger
Identifizierung
des Protokolls
• In beliebiger
Programmiersprache
••Eindeutige
Kennung
der Kommunikation
Performatives
• Prolog: "father(John,
Eve)"
• Inhaltssprache,
Ontologie,
"Schlagwort"
•
KQML - Beispiel
(tell
: sender
Felix
: receiver
Felix_Persona
: in-reply-to
msg498
: ontology
Genealogy
: language
Prolog
: content
„father(John, Eve)“)
KQML – Syntax (vereinfacht)
• Syntax Performatives
(performative-keyword paramter1 parameter2 ...)
• Syntax Parameter
:parameter-keyword <Wert>
(tell
: sender
Felix
: receiver
Felix_Persona
: in-reply-to msg498
: ontology
Genealogy
: language
Prolog
: content
„father(John, Eve)“)
KQML - 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
Kommunikation (1)
(ask-one : sender
: content
: receiver
: in-reply-to
: language
: ontology
joe
(PRICE IBM ?price)
stock-server
ibm-stock
LPROLOG
NYSE-TICKS)
(tell
stock-server
(PRICE IBM 118)
joe
ibm-stock
LPROLOG
NYSE-TICKS)
: sender
: content
: receiver
: in-reply-to
: language
: ontology
Kommunikation (2)
(advertise
: sender
: receiver
: in-reply-to
: language
: ontology
: content
stock-server
joe
ibm-stock
LPROLOG
NYSE-TICKS
(stream-all : content (PRICE ?x ?y)))
(stream-all
: sender
: receiver
: language
: ontology
: content
joe
stock-server
LPROLOG
NYSE-TICKS
(PRICE ?VL ?price))
Faciliators
• Agent zur Unterstützung der
Kommunikation
• Unterstützungsfunktionen
• Zusammenführen von Informationsanbietern
und Nachfragern
• KQML entwickelt, um solche AgentenArchitekturen zu unterstützen
KQML - Dialoge
F
ask(X)
A
B
tell(X)
KQML - Dialoge
Subscribe(ask(X))
A
F
tell(X)
tell(X)
B
KQML - Dialoge
recommend(ask(X))
F
advertise(ask(X))
reply(B)
A
B
ask(X)
tell(X)
Ausblick
• KQML bisher nur in Prototyp-Systemen
(verbreitet) eingesetzt
• FIPA entwickelt ebenfalls ACL
• KSE-Gruppe hält KQML für geeignet, ein
Standard für Agenten-Kommunikation zu
werden