KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch
Überblick Motivation Motivation Grundlagen der Kommunikation Grundlagen der Kommunikation Das KSE - Konsortium Das KSE - Konsortium KQML KQML Aufbau und Syntax Aufbau und Syntax Kommunikationsbeispiele Kommunikationsbeispiele Dialogformen Dialogformen Ausblick Ausblick
Motivation Nachrichtenübermittlung zwischen Agenten Nachrichtenübermittlung zwischen Agenten KQML – Knowledge Query and Manipulation Language KQML – Knowledge Query and Manipulation Language In Anlehnung an Sprachwissenschaftliche Ergebnisse In Anlehnung an Sprachwissenschaftliche Ergebnisse
Sprechakttheorie Loktionärer Akt Loktionärer Akt Physikalische Äußerung Physikalische Äußerung Illuktionärer Akt Illuktionärer Akt Verwendung des Gesagten in einer bestimmten Weise (z.B. Frage, Feststellung, Behauptung) Verwendung des Gesagten in einer bestimmten Weise (z.B. Frage, Feststellung, Behauptung) Perluktionärer Akt Perluktionärer Akt Auslösen einer Wirkung des Gesagten Auslösen einer Wirkung des Gesagten Beispiel: Schließe die Tür ! Beispiel: Schließe die Tür !
Agenten Kommunikation Anforderungen: Anforderungen: Gemeinsame Sprache Gemeinsame Sprache Gemeinsames Verständnis (Ontologie) Gemeinsames Verständnis (Ontologie) Fähigkeit zum Austausch von Nachrichten Fähigkeit zum Austausch von Nachrichten
Ontologie Philosophie : Lehre vom Seienden Philosophie : Lehre vom Seienden Informatik: Vereinbarung über das benutzte Vokabular und dessen Anwendung Informatik: Vereinbarung über das benutzte Vokabular und dessen Anwendung Beispiel Jaguar Beispiel Jaguar Anmerkung: Konsistenz - nicht Vollständigkeit Anmerkung: Konsistenz - nicht Vollständigkeit
Das KSE-Konsortium Ziel: Technische Infrastruktur zur Unterstützung von Wissensteilung Ziel: Technische Infrastruktur zur Unterstützung von Wissensteilung Geldgeber: ARPA, ASOFR, NRI, NSF Geldgeber: ARPA, ASOFR, NRI, NSF Arbeitsgruppen Arbeitsgruppen Interlingua (Knowledge Interface Format: KIF) Interlingua (Knowledge Interface Format: KIF) Shared Resusable Knowledge Bases (SRKB) Shared Resusable Knowledge Bases (SRKB) External Interfaces (KQML) External Interfaces (KQML)
KQML Eigenschaften Beinhaltet Protokoll und Sprache zur Formulierung verschiedener Nachrichtentypen Beinhaltet Protokoll und Sprache zur Formulierung verschiedener Nachrichtentypen Kapselung von Nachrichteninhalten Kapselung von Nachrichteninhalten Kern: Performatives (tell, ask, etc.) Kern: Performatives (tell, ask, etc.)
Kommunikation Grundlegende Kommunikationsparameter Identität von Sender und Empfänger Eindeutige Kennung der Kommunikation KQML - Aufbau Nachrichten Kern von KQML Identifizierung des Protokolls Performatives Inhaltssprache, Ontologie, "Schlagwort " Inhalt Inhalt der Nachricht In beliebiger Programmiersprache Prolog: "father(John, Eve)"
KQML - Beispiel (tell : senderFelix : receiverFelix_Persona : in-reply-tomsg498 : ontologyGenealogy : languageProlog : contentfather(John, Eve))
KQML – Syntax (vereinfacht) (tell: senderFelix : receiverFelix_Persona : in-reply-tomsg498 : ontologyGenealogy : languageProlog : contentfather(John, Eve)) Syntax Performatives (performative-keyword paramter1 parameter2...) Syntax Parameter :parameter-keyword
KQML - Performatives KategorieName Basis-Anfrageevaluate, ask-if, ask-about, ask-one, ask-all Mehrfach-Antwort (Anfrage)stream-about, stream-all, eos Antwortreply, sorry Allgemeine Informationtell, achieve, cancel, untell, unachieve Impulsgeberstandby, ready, next, rest, discard, generator Fähigkeitenadvertise, subscribe, monitor, import, export Netzwerkeregister, 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 Agent zur Unterstützung der Kommunikation Unterstützungsfunktionen Unterstützungsfunktionen Zusammenführen von Informationsanbietern und Nachfragern Zusammenführen von Informationsanbietern und Nachfragern KQML entwickelt, um solche Agenten- Architekturen zu unterstützen KQML entwickelt, um solche Agenten- Architekturen zu unterstützen
KQML - Dialoge A A B B F F ask(X) tell(X)
KQML - Dialoge A A B B F F tell(X) Subscribe(ask(X))
KQML - Dialoge A A B B F F advertise(ask(X)) reply(B) ask(X) tell(X) recommend(ask(X))
Ausblick KQML bisher nur in Prototyp-Systemen (verbreitet) eingesetzt KQML bisher nur in Prototyp-Systemen (verbreitet) eingesetzt FIPA entwickelt ebenfalls ACL FIPA entwickelt ebenfalls ACL KSE-Gruppe hält KQML für geeignet, ein Standard für Agenten-Kommunikation zu werden KSE-Gruppe hält KQML für geeignet, ein Standard für Agenten-Kommunikation zu werden