4. Communication dans les Systèmes Multi-Agents
4.4 Langage de communication KQML

4.4.2 Les performatives de KQML

En KQML on suppose que les agents communicants sont implémentés selon différents paradigmes, langages de programmation et selon différentes méthodes et techniques de représentation des connaissances. Pour pouvoir communiquer, tous les agents considèrent que leurs partenaires de dialogue possèdent une représentation des connaissances [Woold02]. Les connaissances attribuées par chaque agent aux autres agents sont vues en KQML comme une base virtuelle de connaissances - BVC (en anglais Virtual Knowledge Base). selon ce qui suit on va utiliser les abréviations suivantes :

E - l'agent émetteur
R - l'agent récepteur
C - le contenu du message

BVC - la base virtuelle de connaissances

Les performatifs de KQML peuvent être classifiés en trois grandes catégories :

  • discours - performatifs utilisés pour l'échange d'informations et connaissances (tel, untell, ask-if, ask-one, ask-all, stream-all, deny, insert, delete-one, delete-all, uninsert, undelete etc.)
  • interconnexion entre les agents pour faciliter l'obtention des informations et connaissances (broker-one, recommend-one, recruit-one, broker-all, recommend-all, recruit-all, broadcast, register, unregister)
  • exception - des performatifs qui modifient le flux des informations et connaissances (sorry, standby, error, ready, next, rest, discard etc.)

Table 1. Les performatives du KQML [FININ'93]

Performative

Signification

achieve

E veut que R rende quelque chose vrai dans leur environnement

advertise

E fait connaître aux autres agents les capacités disponibles dans le traitement d’une performative

ask-about

E veut connaître toutes les propositions pertinentes dans les BVC de R

ask-if

E veut savoir si la réponse à la question précisée en C se trouve dans la BVC de R

ask-one

E veut que seulement R réponde à sa question C

break

E veut que R interrompe le flux établi par pipe

broadcast

E veut que R transmette à son tour la performative á tous ses connexions

broker-all

E veut que R collecte toutes les réponses á la performative

broker-one

E veut que R l’aide à répondre à une performative

deny

la performative ne peut pas être appliquée à E

delete-all

E veut que R efface toutes les propositions qui s'apparie avec C de sa BVC

delete-one

E veut que R efface une proposition qui s'apparient avec C de sa BVC

discard

E ne veut pas le reste des réponses de R à une interrogation

eos

termine un flux de réponses (en anglais stream) à une interrogation (en anglais eos vient de ‘end of stream’)

error

E considère le message précédent de R comme mal formé

evaluate

E veut que R évalue (simplifie) C

forward

E veut que R transmette le message vers un autre agent

generator

la même signification que standby de stream-all

insert

E demande ã R d'ajouter C à sa BVC

monitor

E veut que R actualise sa réponse à un stream-all

next

E veut la réponse suivante de R à un flux d'une performative

pipe

E veut que R transmette toutes les performatives futures à un autre agent

ready

E est prêt pour répondre à la performative mentionnée précédemment par R

recommend-all

E veut tous les noms des agents qui peuvent répondre à C

recommend-one

E veut le nom d’un agent qui peut répondre à C

recruit-all

E veut que R ‘recrute’ tous les agents capables de lui répondre à C

recruit-one

E veut que R ‘recrute’ un agent capable de lui répondre à C

register

E peut transmettre des performatives à un certain agent

reply

communique une réponse attendue

rest

E veut le reste des réponses de R à une interrogation nommée précédemment

sorry

R ne peut pas fournir plus d’information

standby

E veut que R soit prêt pour répondre à une performative

stream-about

une version réponse multiple de ask-about

stream-all

une version réponse multiple de ask-all

subscribe

E veut que R actualise par la suite sa réponse

tell

E affirme au R que C est dans la BVC de E

transport-address

E associe un nom symbolique à une adresse de transport

unadvertise

l’action contraire de advertise

unregister

l’action contraire de register

untell

E affirme à R que C n'est pas dans la BVC de E


Exemples des dialogues KQML

1. L'agent A1 demande à l'agent A2 le prix de l'imprimante HP-Jet et A2 lui répond.

 (ask-one
         :sender A1
         :receiver A2
         :content (val (prix HP-Jet))
         :language KIF : ontology imprimantes
         )
(ask-one
         :sender A2
         :receiver A1
         :content (=(prix HP-Jet) (scalar 190 USD))
         :language KIF 
         : ontology imprimantes
         )

2. L'agent A1 demande à l'agent A2 toutes les informations concernant l'imprimante HP-Jet, et A2 lui répond par plusieurs messages qui se terminent avec un 'eos':

(stream-about
         :sender A1
         :receiver A2
         :reply-with hpj
         :language KIF : ontology imprimantes
         :content HP-Jet
         )
(tell
         :sender A2 :receiver A1
         :in-reply-to hpj
         :content (=(resolution HP-Jet) (scalar 300 dpi))
         :language KIF : ontology imprimantes
         )
(tell
         :sender A2 :receiver A1
         :in-reply-to hpj
         :content (=(prix HP-Jet) (scalar 190 USD))
         :language KIF : ontology imprimantes
         )
       
(eos
         :sender A2 :receiver A1
         :in-reply-to hpj
         )


Question:
1. Quelles sont les performatives KQML liées à la gestion de la Base Virtuelle de Connaissances ?
2. Nommez les performatives ayant un caractère promissif.

Cliquer ici pour voir la réponse.

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

Politechnica University of Bucharest - 2002