• Aucun résultat trouvé

Chapitre I : Les agents & les systèmes multi-agents …

2. Système multi-agents

2.4 La communication enter agents

2.4.3 Langages de communication

Pour communiquer, des agents doivent connaître, comprendre et utiliser un langage commun, appelé langage de communication d’agents (ACL, i.e. Agent Communication Language).

Dans les SMAs cognitifs, l'hypothèse la plus répandue est que la communication inter-agent sera plus fructueuse si elle se fait par l'intermédiaire d'un langage de communication

explicite [40]. La propriété essentielle qui rend le langage utile, c'est que le sens de ses signes soit partagé. À cet effet, un tel langage doit avoir :

1. Une syntaxe : on définit la structure des symboles. 2. Une sémantique : on définit le sens de ces symboles.

3. Une pragmatique : on définit la manière dont ils devront être utilisés.

Les langages de communication agent, notés ACL [Agent Communication Language] adressent le niveau intentionnel et social des agents. Ils se différencient donc des mécanismes de la théorie de l'information non seulement par leur structure et leur syntaxe plus complexe, mais aussi par leurs spécifications génériques et précises. Leur puissance expressive, héritée de la théorie des actes de langagepermet d’envisager et de développer des SMAs théoriquement hétérogènes et ouverts. Les deux ACLs le plus connus sont KQML et FIPA-ACL. Voyons en quoi ils consistent.

4.3.3.1 KQML [Knowledge Query and Manipulation Language]

Le langage KQML [32] a été proposé pour supporter la communication inter agents. Il est issu d'un projet de la DARPA, le KSE [Knowledge Sharing Initiative], initialement prévu comme moyen d'échange d'informations entre programmes à base de connaissances. Cependant, sa structure orientée message et la généricité de ses primitives lui permet d'être utilisé comme ACL.

C'est l'ACL le plus utilisé (et implémenté) dans la communauté SMA. Le développement de KQML n'est pas centralisé et ainsi plusieurs variantes incompatibles sont nées.

Ce langage définit un ensemble de types de messages (appelés performatifs) et des règles qui définissent les comportements suggérés pour les agents qui reçoivent ces messages. Premier apparu, KQML fourni un ensemble d'actes de langage standard et utiles. Le langage est structuré selon trois niveaux enchâssés :

1. La couche de communication : renseigne la communication (identité du récepteur, de l'émetteur et nature de la communication). Elle est minimale car KQML ne prend pas en charge le transport lui-même (TCP/IP, SMTP, IIOP ou autres).

2. la couche message : donne des indications sur le contenu du message (langage et ontologie utilisé pour le contenu, type d'acte de langage attaché au contenu). C'est la couche centrale de KQML qui définit le type d'interaction que les agents KQML peuvent avoir. La couche de contenu : contenu du message exprimé en KIF [Knowledge Interchange Format], Prolog, KQML ou autre. Notons que KQML ne

traite pas cette couche si ce n'est pour savoir où le contenu commence et se termine. Comme le contenu du message est opaque, c'est à la couche message de le renseigner.

Les primitives de KQML sont appelées performatifs même si elles ne sont pas des actes performatifs au sens linguistique du terme. Cette appellation qui prête à confusion a d'ailleurs été critiquée. Les performatifs KQML sont divisés en trois catégories :

1. 7 performatifs de régulation de conversation traitent quelques cas particuliers (sorry, error) et permettent quelques variantes de la conversation (standby, ready, next, rest, discard).

2. 17 performatifs de discours permettent l'échange d'informations et de connaissances (ask-if, tell, deny, stream-all,...).

3. 11 Performatifs d'assistance et de réseau pour étendre la conversation à plus de deux agents (forward, broker-all,...).

4.3.3.2 FIPA-ACL

C'est le seul effort réellement organisé pour créer un ACL standard. Ce langage a été proposé par la corporation de chercheurs [33] FIPA (Foundation for Intelligent Physical Agent), organisation à but non lucratif, crée en 1996 et qui propose des standards pour l’interopérabilité des agents logiciels.

Il a été conçu pour palier aux faiblesses des différentes versions de KQML.

FIPA-ACL diffère de KQML en ce qu'il a été directement doté d'une sémantique. En effet, la version originale de KQML ne décrivait que la syntaxe de ses messages et rien n'était dit sur leur sens précis (indépendamment qu'ils correspondaient grossièrement à différents types d'actes de langage). Ce n'est que plus tard, qu'une sémantique a été proposée pour KQML.

La sémantique d’un message FIPA-ACL est définie dans [41]. Un message FIPA-ACL est constitué d’une liste non ordonnée de 14 champs dont nous précisons ici le sens.

Un message FIPA-ACL comporte 2 champs relatifs à la communication. sender et receiver correspondent respectivement à l’agent émetteur et à l’agent récepteur du message.

Un message FIPA-ACL comporte 4 champs relatifs au contenu.

• Le langage d’encodage du contenu est spécifié par le champ encoding. Ce contenu doit être une expression bien formée du langage de représentation spécifié par le champ language.

• Les constantes du contenu propositionnel doivent être définies dans une ontologie spécifiée par le champ ontology.

• L’enchaînement des messages, appelé conversation, est géré à l’aide de cinq champs.

• Protocole fait référence à l’un des onze protocoles proposés (par exemple, le protocole Contract Net [42]; conversation-id comporte l’identifiant de la conversation à laquelle appartient ce message ; reply-with comprend l’identifiant de ce message auquel il pourra être fait référence par la suite ; in-reply-to englobe l’identifiant du message auquel celui-ci repond et reply-by renferme la date butoire de réponse.

La pragmatique des messages FIPA-ACL, i.e., la sémantique des performatifs est formulée en termes d’états mentaux. On parle alors d’approche mentale.

La sémantique de ces performatifs est spécifiée non seulement en langage naturel mais également de manière formelle en SL (Semantic Language). La FIPA propose dans [43] une bibliothèque de 22 performatifs.

Documents relatifs