kqml – eine programmiersprache für agenten
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
KQML – KQML – Eine ProgrammierspracheEine Programmiersprache
für Agentenfür Agenten Seminar „Software Agenten“Seminar „Software Agenten“
Carsten GroschCarsten Grosch31.10.0131.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
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
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 !“
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
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
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)
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.)
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)"
KQML - BeispielKQML - Beispiel
(tell
: sender Felix
: receiver Felix_Persona
: in-reply-to msg498
: ontology Genealogy
: languageProlog
: content „father(John, Eve)“)
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>
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
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)
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))
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
KQML - DialogeKQML - Dialoge
AA BB
FF
ask(X)
tell(X)
KQML - DialogeKQML - Dialoge
AA BB
FF
tell(X)
tell(X)
Subscribe(ask(X))
KQML - DialogeKQML - Dialoge
AA BB
FF advertise(ask(X))
reply(B)
ask(X)
tell(X)
recommend(ask(X))
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