kqml – eine programmiersprache für agenten

19
KQML – KQML – Eine Programmiersprache Eine Programmiersprache für Agenten für Agenten Seminar „Software Agenten“ Seminar „Software Agenten“ Carsten Grosch Carsten Grosch 31.10.01 31.10.01

Upload: odakota-ledesma

Post on 30-Dec-2015

23 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: KQML –  Eine Programmiersprache für Agenten

KQML – KQML – Eine ProgrammierspracheEine Programmiersprache

für Agentenfür Agenten Seminar „Software Agenten“Seminar „Software Agenten“

Carsten GroschCarsten Grosch31.10.0131.10.01

Page 2: KQML –  Eine Programmiersprache für Agenten

ÜberblickÜberblick

• MotivationMotivation

• Grundlagen der KommunikationGrundlagen der Kommunikation

• Das KSE - KonsortiumDas KSE - Konsortium

• KQML KQML •Aufbau und SyntaxAufbau und Syntax

•KommunikationsbeispieleKommunikationsbeispiele

•DialogformenDialogformen

• AusblickAusblick

Page 3: KQML –  Eine Programmiersprache für Agenten

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

Page 4: KQML –  Eine Programmiersprache für Agenten

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 !“

Page 5: KQML –  Eine Programmiersprache für Agenten

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

Page 6: KQML –  Eine Programmiersprache für Agenten

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

Page 7: KQML –  Eine Programmiersprache für Agenten

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)

Page 8: KQML –  Eine Programmiersprache für Agenten

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.)

Page 9: KQML –  Eine Programmiersprache für Agenten

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)"

Page 10: KQML –  Eine Programmiersprache für Agenten

KQML - BeispielKQML - Beispiel

(tell

: sender Felix

: receiver Felix_Persona

: in-reply-to msg498

: ontology Genealogy

: languageProlog

: content „father(John, Eve)“)

Page 11: KQML –  Eine Programmiersprache für Agenten

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>

Page 12: KQML –  Eine Programmiersprache für Agenten

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

Page 13: KQML –  Eine Programmiersprache für Agenten

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)

Page 14: KQML –  Eine Programmiersprache für Agenten

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))

Page 15: KQML –  Eine Programmiersprache für Agenten

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

Page 16: KQML –  Eine Programmiersprache für Agenten

KQML - DialogeKQML - Dialoge

AA BB

FF

ask(X)

tell(X)

Page 17: KQML –  Eine Programmiersprache für Agenten

KQML - DialogeKQML - Dialoge

AA BB

FF

tell(X)

tell(X)

Subscribe(ask(X))

Page 18: KQML –  Eine Programmiersprache für Agenten

KQML - DialogeKQML - Dialoge

AA BB

FF advertise(ask(X))

reply(B)

ask(X)

tell(X)

recommend(ask(X))

Page 19: KQML –  Eine Programmiersprache für Agenten

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