4. Communication dans les Systèmes Multi-Agents
4.4 Langage de communication KQML
4.4.1 Présentation générale
"Knowledge Query and Manipulation Language" (KQML) est un langage
"extérieur" de haut niveau pour les agents, orienté
sur l'échange des messages, indépendant de la syntaxe et
de l'ontologie du contenu des messages.
Le langage KQML est indépendant aussi du mécanisme de transport
(TCP/IP, e-mail, objets CORBA etc.) et du langage utilisé pour
coder le contenu des messages (e.g. Prolog, STEP, SQL, KIF etc.).
Le langage KQML spécifie le format des messages échangés
par les agents, sans être concerné par le format de l'information
transportée. Un message KQML peut être vu comme un objet,
défini par l'information clé, la 'performative', (la classe)
et un nombre variable d'attributs :
(<performative>
: <attribut_1> <valeur_1>
: <attribut_2> <valeur_2>
. . .
: <attribut_n> <valeur_n>
)
On peut prendre comme premier exemple de message KQML, le message d'un
agent E (émetteur) qui demande aux autres agents récepteurs
(R) quel est le prix d'une imprimante à jet d'encre (la question
est placée dans le contenu du message)
(ask-all
:content (PRIX JET ?prix)
:sender Ag1
:reply-with prixJet
:ontology imprimantes
:language LPROLOG
)
La 'performative' est ask-all qui signifie que l'agent
E désire que tous les agents R répondent à sa question.
.
Les attributs des cette performative sont :
- content - le contenu du message (l'information transportée
par la performative)
- reply-with - identificateur unique du message, en vue d'une référence
ultérieur
- ontology - précise le nom de l'ontologie utilisé dans
conten
- language - le nom du langage utilisé dans le contenu du message
(content)
D'autres attributs, largement utilisés, sont:
- sender - identifie l'agent émetteur (le nom de l'agent qui
envoie la performative)
- receiver - identifie le destinataire du message (nom de l'agent qui
reçoit la performative)
- in-reply-to - référence à un message auquel l'agent
est entrain de répondre (dans une réponse c'est le symbole
précisé par l'attribut reply-with de l'émetteur)
- force - l'émetteur ne contredira jamais le contenu du message
|
Question: Soit le message KQML :
(tell
:receiver A
:sender B
:ontology et-book
:language PROLOG
:content "price(ISBN 973-31-1096-5)"
)
Identifier les composants du message. Combien d'actes de langage
représente-t-il ?
|
Cliquer
ici pour voir la réponse.
|