KQML Eine Programmiersprache fr Agenten Seminar Software Agenten

  • Slides: 19
Download presentation
KQML – Eine Programmiersprache für Agenten Seminar „Software Agenten“ Carsten Grosch 31. 10. 01

KQML – Eine Programmiersprache für Agenten Seminar „Software Agenten“ Carsten Grosch 31. 10. 01

Überblick • • Motivation Grundlagen der Kommunikation Das KSE - Konsortium KQML • Aufbau

Ü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 •

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

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

Agenten Kommunikation • Anforderungen: • Gemeinsame Sprache • Gemeinsames Verständnis (Ontologie) • Fähigkeit zum Austausch von Nachrichten

Ontologie • Philosophie : „Lehre vom Seienden“ • Informatik: „Vereinbarung über das • •

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,

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

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 •

KQML - Aufbau Kommunikation Nachrichten • • Inhalt Grundlegende Kommunikationsparameter Kern von KQML • Inhalt der • • Identität von. Nachricht 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 msg 498

KQML - Beispiel (tell : sender Felix : receiver Felix_Persona : in-reply-to msg 498 : ontology Genealogy : language Prolog : content „father(John, Eve)“)

KQML – Syntax (vereinfacht) • Syntax Performatives (performative-keyword paramter 1 parameter 2. . .

KQML – Syntax (vereinfacht) • Syntax Performatives (performative-keyword paramter 1 parameter 2. . . ) • Syntax Parameter : parameter-keyword <Wert> (tell : sender Felix : receiver Felix_Persona : in-reply-to msg 498 : 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,

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 :

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 :

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

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)

KQML - Dialoge F ask(X) A B tell(X)

KQML - Dialoge Subscribe(ask(X)) A F tell(X) B

KQML - Dialoge Subscribe(ask(X)) A F tell(X) B

KQML - Dialoge recommend(ask(X)) F advertise(ask(X)) reply(B) A B ask(X) tell(X)

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

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