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
|