1. Introduction aux agents et systèmes multi-agents
1.1 Agents et systèmes multi-agents

1.2.4 Langages de communication inter-agents

L'intérêt des langages d'interaction entre agents est de réduire les communications en évitant une description exhaustive des messages ad hoc et une gamme inutilement étendue de protocoles. Ces langages se focalisent essentiellement sur la manière de décrire exhaustivement des actes de communication d'un point de vue syntaxique et sémantique supportant un langage de représentation des connaissances. Toutefois, l'aspect ontologique et l'utilisation de conventions garantissant un comportement collectif cohérent du système et l'aspect conversationnel n'est pas facile à garantir. Plusieurs tentatives de normalisation de la communication inter-agents ont été effectuées au sein de la communauté multi-agents ces dernières années.

Langage de communication KQML

Aux Etats-Unis, un standard de fait de langage de communication de haut niveau appelé KQML “ Knowledge Query and Manipulation Language ” (Labrou et Finin, 1997) a été développé. Ce dernier est fondé sur la théorie des actes de langage dans le but de permettre aux agents cognitifs de coopérer. Il est basé sur le fait de pouvoir coder explicitement dans les messages des actes illocutoires en terme de type de message ou “ performatives ” et repose sur les états mentaux des agents. Le contenu du message échangé est une expression spécifiée en KIF (Knowledge Interchange Format) qui utilise le formalisme de la logique de premier ordre.

KQML est un langage de communication et un protocole de haut niveau pour l'échange de l'information, orienté messages et indépendant de la syntaxe du contenu et de l'ontologie applicable.

Une ontologie est une spécification ou une vue simplifié et abstraite du domaine qui sera représenté. En d'autres termes, une ontologie définit le vocabulaire dans un domaine donné pour que les agents puissent se comprendre.

En plus, KQML est indépendant du mécanisme de transport (TCP/IP, SMTP, IIOP ou autre), indépendant du langage du contenu échangé (KIF, SQL, Prolog ou autre) et indépendant de l'ontologie utilisé.

Conceptuellement, nous pouvons identifier trois couches dans un message de KQML :  contenu, communication et message.

·        la couche “ contenu ” comporte la teneur réelle du message utilisant un langage de représentation propre au système. KQML peut supporter n'importe quel langage de représentation, y compris des langages exprimés en ASCII et ceux exprimés en utilisant la numération binaire.

·        la couche de “communication ” code un ensemble de dispositifs au message qui décrivent les paramètres de communication les plus bas, tels que l'identité de l'expéditeur et du destinataire et un identifiant unique associé à la communication.

·         la couche “ message ”, qui code un message qu'une application voudrait transmettre à une autre, est le noyau de KQML.  Cette couche détermine les genres d'interactions au sein des agents dialoguant via KQML. La fonction de la couche message est d'identifier l'acte du langage ou la performative que l'expéditeur attache au contenu.  Cet acte de langage indique si le message est une affirmation, une question, une commande ou tout autre d'un ensemble de performatives connus (types de messages primitifs). En outre, puisque le contenu est opaque à KQML, le message inclut également les options qui décrivent le langage du contenu, l'ontologie qu'il suppose utiliser et une certaine description du contenu, tel qu'un descripteur appelant une matière dans l'ontologie. Ces dispositifs permettent une analyse correcte des messages sans avoir à accéder au contenu.

Les messages de KQML ne concernent pas seulement des phrases dans un langage quelconque, mais sont enrichis d'une attitude sur le contenu (affirmation, désengagement, requête, question, etc.).

Ce langage propose une description d'un nombre important de performatives permettant les conversations entre agents mais manque de spécifications et de formalisation (cf. les critiques de Cohen et Levesque, 1995).

Langage de communication FIPA-ACL

Récemment, la collaboration internationale des membres d'organisations universitaires et industrielles regroupées au sein de FIPA (Foundation for Intelligent Physical Agents) a permis de spécifier des standards dans la technologie agent et vise à favoriser l'interopérabilité des applications, des services et des équipements informatiques basés sur le paradigme agent. Ils ont défini un certain nombre de spécifications principales d'agents. Notamment, un standard de langage de communication agent ACL (Agent Communication Language) (FIPA, 97) a été proposé et spécifié. Comme KQML, ce dernier est basé sur la théorie des actes de langage :  les messages sont des actions ou des actes communicatifs, car ils sont prévus pour effectuer une certaine action en vertu de l'envoi.  Les spécifications de FIPA-ACL se composent d'un ensemble de types de message et de la description de leur pragmatique qu'est, des effets sur les attitudes mentales des agents (expéditeur et récepteur). Les spécifications décrivent chaque acte communicatif avec une forme narrative et une sémantique formelle basés sur la logique modale.

Elles fournissent également la description normative d'un ensemble de protocoles d'interaction de haut niveau, y compris la demande d'action, l'établissement de contrat (contract net) et plusieurs genres de ventes aux enchères.

FIPA-ACL est superficiellement semblable à KQML. Sa syntaxe est identique à celle de KQML excepté différents noms pour quelques primitifs réservés.  Ainsi, il maintient l'approche de KQML de distinguer le langage externe du langage interne. Le langage externe définit la signification prévue du message; le langage interne ou le contenu, dénote l'expression à laquelle s'appliquent les croyances, les désirs, et les intentions des interlocuteurs.

Les différentes approches développées à ce jour respectent partiellement les bases de la théorie des actes de langage (Searle, 1969). Elles considèrent que l'interaction est basée sur des actions communicatives mutuellement échangées entre les agents et qui sont initiées par des intentions, ce qui justifie l'utilisation d'une logique pour raisonner sur les intentions.

L'enchaînement des actes de communication de telle sorte à produire une "discussion" cohérente entre les agents nécessite une formalisation non seulement au niveau de ses composantes, c'est-à-dire les actes de communication. La logique et la sémantique des actes doivent alors être étendues pour la problématique de l'enchaînement par la notion de protocole.

Les documents de référence de FIPA-ACL et de KQML ne spécifient aucune implantation par l'utilisation d'un langage de programmation ni de plate-forme particulière. Ce champ de développement est particulièrement propre à chaque équipe désirant implanter un tel langage. La seule obligation est que l'implantation doit être conforme aux spécifications du langage.

Toutefois, il existe plusieurs efforts d'implantation, dont les principaux sont JATLite, KAPI et COBALT proposé par l'équipe IRIT/SIERA de Toulouse.

Question: Quelles sont les suppositions qu'on fait sur l’environnement par une telle définition de la fonction env?

Cliquer ici pour voir la réponse

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

Politechnica University of Bucharest - 2002