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.

<< Section précédente Table de matières Section suivante >>

Politechnica University of Bucharest - 2002