KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

Post on 05-Apr-2015

106 views 0 download

Transcript of KQML – Eine Programmiersprache für Agenten Seminar Software Agenten Carsten Grosch 31.10.01.

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