190 likes | 281 Views
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.
E N D
KQML – Eine Programmiersprachefü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.)
Nachrichten Inhalt • Kern von KQML • Identifizierung des Protokolls • Performatives • Inhaltssprache, Ontologie, "Schlagwort" • Inhalt der Nachricht • In beliebiger Programmiersprache • Prolog: "father(John, Eve)" KQML - Aufbau Kommunikation • Grundlegende Kommunikationsparameter • Identität von Sender und Empfänger • Eindeutige Kennung der Kommunikation
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 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) (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))
Faciliators • Agent zur Unterstützung der Kommunikation • Unterstützungsfunktionen • Zusammenführen von Informationsanbietern und Nachfragern • KQML entwickelt, um solche Agenten-Architekturen zu unterstützen
KQML - Dialoge F ask(X) A B tell(X)
Subscribe(ask(X)) tell(X) tell(X) KQML - Dialoge F A B
recommend(ask(X)) advertise(ask(X)) reply(B) KQML - Dialoge F 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