Vous êtes sur la page 1sur 21

Etude Bibliographique Master 2 Recherche

Communication entre Agents Informatiques


dans un
Environnement Virtuel

Pierre Mahot (pmahot@enib.fr)


7 février 2005

LYSIC (EA3883)
Encadrant :
Alexis Nédélec (nedelec@cerv.fr)
Table des matières
Introduction 2

1 Les Actes de Langage 3

2 Langages de Communication entre Agents 4


2.1 KQML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Implémentations . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.4 Problèmes de KQML . . . . . . . . . . . . . . . . . . . . . 7
2.2 FIPA ACL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Représentation XML . . . . . . . . . . . . . . . . . . . . . 8
2.2.3 Sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.4 Implémentations . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Problèmes des ACLs . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Langages sociaux et engagements . . . . . . . . . . . . . . . . . . 10

3 Contenu des messages ACL 10


3.1 KQML & KIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 FIPA ACL & SL . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 SL0 : sous-ensemble minimal . . . . . . . . . . . . . . . . 11
3.2.2 SL1 : logique propositionnelle . . . . . . . . . . . . . . . . 11
3.2.3 SL2 : réduction décidable . . . . . . . . . . . . . . . . . . 11
3.3 Ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 ACL & Facilitateurs 12

5 Conversations entre Agents 12


5.1 Règles de Conversation . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 Protocoles FIPA . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3 Conduites de Conversation . . . . . . . . . . . . . . . . . . . . . 14

6 Communication Humain-Agent 14
6.1 Communication verbale . . . . . . . . . . . . . . . . . . . . . . . 15
6.1.1 Communication textuelle . . . . . . . . . . . . . . . . . . 15
6.1.2 Communication par la parole . . . . . . . . . . . . . . . . 15
6.2 Communication non-verbale . . . . . . . . . . . . . . . . . . . . . 16
6.2.1 Ponctuation du discours . . . . . . . . . . . . . . . . . . . 17
6.2.2 Acte de communication . . . . . . . . . . . . . . . . . . . 17

Conclusion 18

Références 19

1
Introduction
Notre étude porte sur la communication entre les différentes entités qui
peuplent un environnement virtuel.
Le LI21 (laboratoire d’informatique de l’ENIB2 situé au CERV3 ) travaille
dans le domaine de la Réalité Virtuelle, avec pour principal axe de recherche
la création d’univers virtuels réalistes et participatifs. Dans cette optique, le
laboratoire a fait le choix de l’approche multi-agent pour satisfaire le principe
d’autonomie qui est au coeur de la problématique du réalisme des environne-
ments virtuels[18].
Les agents, qui sont des entités informatiques autonomes (ils s’éxécutent
indépendamment les uns des autres), ont généralement un fonctionnement in-
terne cyclique. Ils commencent par percevoir leur environnement, ils prennent
des décicions par rapport à ces informations et enfin ils produisent des actions
en rapport avec les décisions prises.
En Réalité Virtuelle, on cherche à créer des agents ayant des comportements
crédibles aux yeux de l’utilisateur. Ceci passe par un rendu de l’agent dans l’envi-
ronnement (expressions faciales, gestuelle,. . .), mais surtout par des interactions
avec l’utilisateur et/ou ses congénères, qui soient totalement compréhensibles.
On s’attend par exemple à des échanges de connaissances et/ou de services entres
les entités qui peuplent ces mondes virtuels, et l’utilisateur aimerait également
pouvoir communiquer avec les différents agents pour infuencer leurs comporte-
ments.
Il s’agit donc plus précisément ici de voir la communication comme une action
dans la boucle d’exécution de l’agent : l’action d’échanger des connaissances.

Problématique
Le “Multi” de Multi-Agents trouve son intérêt dans la collaboration entre
plusieurs entités, et cette collaboration naı̂t des interactions entre les agents[14].
Un agent qui n’interagit pas, n’a pas d’intérêt pour la société dans laquelle il
s’inscrit, puisqu’il n’en affecte aucunement le fonctionnement. Sa présence n’a
pas d’effet sur l’application et le fait qu’il en fasse partie ne lui apporte rien. Ce
n’est qu’en communiquant qu’il devient un membre du système, qu’il influe sur
son environnement et qu’il trouve son intérêt dans l’application.
Dans un premier temps, la communication était vue uniquement comme la
recopie d’un message d’un endroit à l’autre (Shannon 1948). Depuis, la notion de
communication c’est structurée et on est passé à des formes plus élaborées que la
simple transmission d’information. Le sens du message, l’acte de communiquer
et les effets de l’échange sont également importants à prendre en compte dans
la modélisation de la communication[14].
De plus, les modèles d’agents intelligents (ayant des croyances et intentions
explicites) sont de plus en plus largement utilisés en Réalité Virtuelle. Ils sont
issus des recherches en Intelligence Artificielle et sont souvent inspirés de la
psychologie et de la sociologie[7], ils permettent d’obtenir des comportements
1 LI2: Laboratoire d’Ingénérie Informatique (http://www.enib.fr/li2 )
2 ENIB : Ecole Nationale d’Ingénieurs de Brest (http://www.enib.fr)
3 CERV : Centre Européen de Réalité Virtuelle (http://www.cerv.fr)

2
réalistes aux yeux de l’utilisateur. Mais ils ont besoin de systèmes de communica-
tion plus flexibles que les mécanismes bas niveau courants (appels de méthodes,
sockets,. . .), qui obligent à faire beaucoup de choix au moment de la conception
et n’en laissent que peu à l’éxécution.
Enfin, l’impression pour l’utilisateur de faire partie intégrante du monde vir-
tuel qu’on lui propose est conditionnée par les interactions qu’il peut avoir avec
les autres entités qui le peuplent[18]. Ces interactions peuvent être physiques ou
visuelles mais aussi verbales.
Il s’agit donc de mettre en place une communication haut niveau faisant
abstraction du mode de transport et permettant d’échanger des informations
complexes suivant des modèles se rapprochant des échanges de connaissances
entre humains. Il s’agira plus précisément, d’implanter ces mécanismes de com-
munication dans la bibliothèque ARéVi4 développé au CERV et permettant de
réaliser des applications de Réalité Virtuelle.
Nous allons, dans cette étude bibliographique, étudier les principes de com-
munication entre agents informatiques et nous finirons cette présentation par les
problèmes posés pour établir une communication entre un utilisateur humain et
une entité virtuelle.

1 Les Actes de Langage


Les systèmes de communication entre agents sont principalement basés sur
le modèle de la théorie des actes de langage proposé par les linguistes pour
modéliser les échanges d’informations entre humains.

Fig. 1 – Communication naturelle entre deux individus

En 1962, Austin[15] pose les fondements du concept d’acte de langage dans


“Quand dire, C’est faire”. Comme son titre l’indique, il considère la communi-
cation comme une action sur l’environnement. Une demande de service revient
à la réalisation même de ce service (du moins en ce qui concerne l’état de l’envi-
ronnement). Après un travail de fondation important réalisé par Austin, Searle
et Vanderveken [17] ont formalisé cette théorie.
Au cours de ces travaux, ils extraient du langage naturel un groupe de verbes
qu’ils baptisent performatifs 5 car le fait même de les prononcer a un effet sur
l’environnement, ou plutôt sur les entités qui perçoivent le message. C’est ainsi
que l’annonce d’une tragédie va déclencher des réactions fortes par le simple fait
de son énonciation.
4 ARéVi : Atelier de Réalité Virtuelle
5 de l’anglais to perform : exécuter, faire une action

3
Ils distinguent également trois aspects dans un message : le locutoire (le
message proprement dit), l’illocutoire (l’acte que représente le message) et le
perlocutoire (les effets du message). Ainsi, le message “il neige ce matin” est le
niveau locutoire, alors que la dimension illocutoire est la prise de conscience par
le récepteur du fait qu’il neige (assertion dans sa base de connaissances), et la
dimension perlocutoire une invitation à se couvrir.
Ils séparent enfin les performatifs en cinq classes en fonction de leur but
illocutoire :
– les assertifs, ajoutent des informations sur le monde (affirmer,. . .).
– les directifs, poussent à la transformation du monde (demander, inter-
dire,. . .).
– les engageants, engagent l’émetteur (s’engager à, promettre,. . .).
– les expressifs, n’ont d’effets que sur la communication (remercier, sa-
luer,. . .).
– les déclaratifs, affectent le monde et tout les interactants (déclarer la
guerre,. . .).
C’est de cette modélisation du langage que sont issus les langages de commu-
nication entre agents (ACL6 ) que nous allons présenter dans la section suivante.

2 Langages de Communication entre Agents


Les ACLs sont donc basés sur la linguistique et principalement la théorie des
Actes de Langage. Il s’agit de permettre l’échange d’informations entre entités
“intelligentes”, mais également de faciliter l’interopérabilité entre les différentes
plateformes multi-agent. Ces langages font donc abstraction du mode de trans-
port et sont codés sous forme de chaı̂nes de caractères ASCII.
Il existe principalement deux langages spécifiés à partir de ces théories :
KQML7 et FIPA ACL8 .

2.1 KQML
KQML est un ACL développé au début des années 90, par l’équipe External
Interfaces Working Group du projet DARPA9 -KSE10 . Le but de KQML était
principalement de fournir un langage de communication basé sur les actes de
langage et indépendant des applications qui l’utilisent.
Ce langage de communication entre Agents a été spécifié par Labrou[27]. Il
défini 35 performatifs réservés, et leur sémantique.

2.1.1 Syntaxe
La Syntaxe de KQML est inspirée de celle de Common Lisp. Les performatifs
sont vu comme des foncteurs et les différents champs comme des arguments.
Les messages sont composés sur trois niveaux distincts (voir figure 3) :
– Communication : permet le bon acheminement du message et sa mise
en relation avec les autres messages d’une même conversation.
6 ACL
: Agent Communication Language
7 KQML : Knowledge Query Manipulation Language
8 FIPA : Foundation for Intelligent Physical Agents
9 DARPA : Defense Advanced Research Projects Agency
10 KSE : Knowledge-Sharing Effort

4
Fig. 2 – Echange d’informations entre agents utilisant KQML

Fig. 3 – Syntaxe du performatif tell de KQML

Ce sont les champs :sender, :receiver, :in-reply-to,. . .


– Message : contient les informations nécessaires à la bonne compréhension
de la sémantique du message.
Il est composé notamment des champs :language et :ontology, mais
aussi du performatif lui même.
– Contenu : le message proprement dit (le champ :content).
Prenons l’exemple de la figure 3. Par ce message, l’agent A fait savoir à
l’agent B que le temps est nuageux. Il lui donne également tous les éléments
pour comprendre ce contenu. Le performatif tell est un assertif, donc si le
message est accepté, son contenu devra être ajouté aux connaissances de l’agent
B. Il s’agit d’un prédicat Prolog, et le vocabulaire est celui de la Météo. Le champ
:in-reply-to met en relation ce message avec une possible question précédente,
alors que :reply-with permet au récepteur de continuer la conversation par un
acquittement ou un démenti par exemple.
L’émetteur, par l’envoi de ce message, exprime un certain état interne fonc-
tion de ses croyances et ses désirs. Il révèle sa vision du monde, mais aussi sa
volonté (besoin d’informations ou d’actions). C’est le propos de la sémantique
associée à tout message KQML.

2.1.2 Sémantique
La sémantique de KQML est définie à partir des états cognitifs des agents
qui s’échangent le message. Les états internes des agents sont représentés par
les opérateurs : Bel, Know, W ant et Intend qui signifient :

5
Bel(A, P) : l’agent A croit que la proposition P est vraie
Know(A, P) : l’agent A sais ce que vaut P ,
P est dans sa base de connaissances
Want(A, P) : l’agent A aimerait que la proposition P devienne
vraie
Intend(A, P) : l’agent A a l’intention que P se produise,
il a mis en place un plan d’actions pour y arriver
Labrou définit la sémantique de chacun de ses performatifs selon le protocole
suivant :
1. Une description intuitive en langage naturel.
2. Formalisation de cette description par une expression qui décrit l’acte
illocutoire porté par le performatif.
3. Définition à l’aide des opérateurs vu précédemment des préconditions sur
les états internes des interactants, préconditions nécessaires à l’émission
du message.
4. L’effet du message est décrit par les postconditions qui représentent l’état
des protagonistes après le transfert d’information
5. La “Completion” représente l’état qui devrait être atteint après une conver-
sation . On y retrouve l’intention de l’initiateur de l’échange.
Appliquons ce protocole à l’exemple de la section précédente où un agent A
informe un agent B que le temps est nuageux(X). Cette échange s’écrit formel-
lement : tell(A, B, X).
1. l’agent A informe l’agent B que X est vrai pour A.
2. Bel(A, X)
3. Pre(A) : Bel(A, X) ∧ Know(A, W ant(B, Know(B, Bel(A, X))))
Pre(B) : Intend(B, Know(B, X))
4. Post(A) : Know(A, Know(B, Bel(A, X)))
Post(B) : Know(B, Bel(A, X))
5. Completion : Know(B, Bel(A, X))
Pour qu’un agent A envoi un message tell à un agent B, il faut qu’il croit
que ce qu’il envoit est vrai et qu’il sache que B veut connaı̂tre l’information qu’il
lui envoit. Après l’envoi, B sait ce que pense A de l’information qu’il a reçu.
On voit ici que KQML a une sémantique qui oblige les agents souhaitant
discuter à se construire une représentation des états internes de leurs interlocu-
teurs.

2.1.3 Implémentations
KQML a donné lieu à un certain nombre d’implémentations, comme Ja-
vaAgent Template de l’université de Stanford ou Jackal de l’université du
Maryland (UMBC). Il a également donné lieu à une implémentation non diffusée
sous forme de package oRis[2], l’ancien environnement multi-agent développé
au LI2.
L’agent Conversationnel Rea[13], développé par l’équipe de Bickmore et
Cassel au MIT, est également implémenté avec KQML. Cette utilisation est
interne a son architecture[13], les différents modules s’échangent des messages
KQML générés à partir des paroles et des mouvements de l’utilisateur.

6
2.1.4 Problèmes de KQML
Dans la première version de KQML, la sémantique n’était pas définie de
manière formelle mais simplement en langage naturel. C’est ce qui lui a valu les
plus grandes critiques[28]. En effet d’après Ferber[14] cette description informelle
de la signification des performatifs en faisait un langage ambiguë et imprécis.
Comme nous l’avons vu précédemment Labrou[27] lui a ajouté cette sémantique
en 1996. Mais cette sémantique présuppose que les agents embarquent une base
de connaissances[22], et la présentation des préconditions sous-entend également
d’avoir des connaissances sur l’état interne de ses interlocuteurs, ce qui peut
rapidemement devenir une masse importante d’informations.
Les premières critiques sur KQML ont donné lieu à un certain nombre de
recherches pour obtenir des langages à sémantique formelle, dont FIPA ACL est
le principal représentant.

2.2 FIPA ACL


FIPA ACL est, comme son nom l’indique, un projet de la FIPA pour four-
nir un ACL simplifiant l’interopérabilité entre les différentes plateformes multi-
agents. La FIPA est une associaiton à but non lucratif, elle réunit de grandes
sociétés de télécommunication aussi bien américaines qu’européennes, comme :
British Telecom, France Telecom, Nortel, Siemens, etc. Les buts principaux de
cette organisation sont la promotion des applications utilisant des agents et la
mise en place de standards pour faciliter l’interopérabitilité entre les différentes
plateformes multi-agents.
La différence majeure entre FIPA ACL et KQML est sa sémantique tirée
d’ARCOL (un ACL développé chez France Télécom par David Sadek au cours
de sa thèse publiée en 1991).
FIPA défini 4 performatifs 11 de base (inform, request, confirm et disconfirm)
à partir desquels tout acte de langage doit pouvoir être exprimé par composition.
Dans sa version actelle publiée en 2000, la librairie de performatifs FIPA en
contient 22 (en comptant les 4 de base).

Fig. 4 – Echange d’informations entre agents utilisant FIPA ACL

11 plutot appelés Communicative Acts dans les spécifications FIPA

7
2.2.1 Syntaxe
La syntaxe de FIPA ACL[8] est très proche de celle de KQML. La liste de
performatifs est totalement différente, mais les messages FIPA ACL reprennent
les champs KQML auxquels sont ajoutés quelques autres comme par exemple
:conversation-id et :protocol, qui sont utilisés pour mettre le message en
relation avec son contexte (autres messages d’un même échange). Ils seront
utilisés dans les protocoles d’échanges détaillés dans la section 5.2.

2.2.2 Représentation XML


Pour simplifier le décodage des messages, des encodages plus générique ont
été mis en place.
L’équipe de Labrou propose ACML12 [5] qui est une spécification de FIPA
ACL en XML. La FIPA propose, elle, une simple spécification d’encodage en
XML[8] de sa bibliothèque de performatifs. On retrouve les mêmes champs que
dans l’encodage de base, mais avec une syntaxe décrite en XML.
Cet encodage présente l’avantage de standardiser le décodage des messages.
Cela permet d’utiliser les parseurs XML standards qui sont devenus courants et
qui sont mieux maintenus puisqu’ils sont utilisés dans un grand nombre d’ap-
plications.

2.2.3 Sémantique
La sémantique de FIPA ACL[8] est définie en SL13 [8]. Les propositions y
sont exprimées sous la forme d’états mentaux et d’une logique de l’action.
Le modèle mental d’un agent est caractérisé par les trois opérateurs de juge-
ment des propositions : B(Believe), U (Uncertain) et C(Choice) indicés du nom
d’un agent et suivis d’une proposition. Ces trois opérateurs signifient respecti-
vement : que l’agent croit la proposition vraie, qu’il n’en est pas sûr (mais que
pour lui elle est plutôt vraie) et qu’il aimerait qu’elle devienne vraie.
SL contient également une logique de l’action permettant d’exprimer les
capacités d’agir, par exemple, et un certain nombre de propriétés permettant
de raisonner autour d’un ensemble de propositions. Quelques abbréviations per-
mettent d’éviter l’explosion des formules, par exemple Bifi X signifie que l’agent
A connaı̂t la valeur de X (Bifi X équivaut à Bi (X) ∨ Bi (¬X)).
A chaque performatif est associé des préconditions de faisabilité (FP : Feasi-
bility Preconditions) et un effet rationnel (RE : Rational Effect) qui correspond
à l’effet perlocutoire de la Théorie des Actes de Language.
Prenons un exemple proche du précédent : tell en KQML devient inform
en FIPA ACL, et La syntaxe du reste du message reste inchangé.
Le modèle formel du message est le suivant :
< i, inf orm(j, temps(nuageux)) >
FP : Bi (temps(nuageux))∧
¬Bi (Bifj (temps(nuageux)) ∨ U ifj (temps(nuageux)))
RE : Bj (temps(nuageux))
Ici, les conditions d’envoi du message sont beaucoup moins strictes qu’en
KQML. En effet, A peut envoyer un inform si il sait quelque chose et qu’il ne
12 ACML : Agent Communication Markup Language
13 SL : “Semantic Langage”, le langage de contenu spécifié par FIPA

8
pense pas que que B a un avis sur ce sujet, alors que le tell de KQML avait
comme précondition supplémentaire que l’agent récepteur s’attende à recevoir
cette information (sans doute suite à une requête préalable). Il est raisonnable de
penser que l’émetteur a l’intention que les effets d’un message deviennent vrai,
mais son intention générale quant à la conversation peut-être tout autre. Elle a,
en tout cas, toutes les chances d’être découplée des intentions du destinataire.

2.2.4 Implémentations
Actuellement, de nombreuses platformes multi-agents sont FIPA Compliant,
c’est à dire qu’elles sont capables de parser un message FIPA ACL et d’y
répondre par un “not-understood” si elles ne sont pas capables de l’interpréter
(à cause d’un langage de contenu inconnu par exemple). La plupart des in-
dustriels faisant partie de la FIPA ont développé un environnement issu de
ces spécifications. Parmi ces implémentations on peut citer : FIPA OS[9],
JADE[11],. . .
Mais, par défaut, ces implémentations ne proposent pas de vérifications expli-
cites de la sémantique des messages. C’est à dire que ces platformes ne vérifient
pas les états mentaux des protagonistes, les agents fournis n’ont d’ailleurs au-
cune base de connaissances prévue à cet effet. Dans le cas de JADE, on peut
utiliser JESS[12] pour obtenir une vérification d’une partie de cette sémantique.
Sinon, la tâche de vérification de la sémantique est donc laissée aux développeurs
d’agents “intelligents”, qui auraient besoin de raisonner autour des croyances et
intentions exprimés par les messages. Les développeurs d’agents moins évolués
doivent s’efforcer d’utiliser un enchaı̂nement de messages cohérents avec la sé-
mantique spécifié par FIPA pour obtenir l’interopérabilité avec les autres agents
et les autres platformes.

2.3 Problèmes des ACLs


Bien que ce réclamant de la théorie des actes de langage, les ACLs n’en
ont retenu que certains aspects formels et terminologiques[10]. Certaines forces
illocutoires sont mal représentées : 4 performatifs de base en FIPA ACL qui
ne représentent que les assertifs et les directifs, les commissifs pouvant être
simulés[22].
Ces langages imposent de par leur sémantique d’utiliser des agents ayant des
capacités de réflexion autour de leurs croyances et leurs intentions et exigent
une sincérité des agents participants à la conversation[4]. Les différents agents
n’ont pas la possibilité de vérifier que les effets d’un message (en terme d’états
mentaux) ont été effectivement pris en compte. Les préconditions sont également
trop restrictives : impossibilité de confirmer ou de mentir.
De plus, que ce soit KQML ou FIPA ACL, les Langages de Communica-
tion entre Agents restent des langages pour faire communiquer des entitées
numériques entre elles. Le dialogue entre êtres humains reste beaucoup moins ri-
goureux et beaucoup plus complexe que les échanges entre agents informatiques.
Enfin le langage naturel offre une bien plus grande variété de performatifs que
ces langages informatiques. Ainsi “request” peut aussi bien vouloir dire exiger
que supplier.

9
2.4 Langages sociaux et engagements
Pour répondre à un certain nombre de problèmes des ACLs, Singh[22] pro-
pose l’utilisation de langages se focalisant sur la composante sociale de la com-
munication plutôt que sur son effet mental. La couche sociale étant publique,
elle est facilement vérifiable et la communication n’a plus d’éxigence en ce qui
concerne l’architecture des agents.
L’équipe de Chaı̈b-Draa[25] au laboratoire DAMAS a quant à elle réalisé un
langage à base d’engagements sociaux. Les engagements sont pris publiquement
et si ils ne sont pas respectés, les sanctions qui lui sont associées s’appliquent.
Ils définissent également des jeux de dialogue qui permettent aux agents de
négocier les engagements qu’ils prennent les uns envers les autres.

3 Contenu des messages ACL


Les ACLs prennent en charge l’acheminement d’un message et la sémantique
à lui associer, mais ils ne se préoccupent pas du sens du contenu qu’ils encap-
sulent. Ils n’ont d’ailleurs pas de préférence quant au langage choisi pour donner
du sens à ce contenu. Ainsi, on peut tout à fait choisir un langage existant comme
par exemple Prolog (voir les exemples de la section précédente) ou SQL pour
jouer ce rôle.
Les équipes qui ont développé les ACLs ont malgré tout défini des langages
pour donner du sens au contenu des messages. Les deux principaux langages de
contenu développés autour des ACLs sont : KIF et SL.

3.1 KQML & KIF


KIF14 est un langage issu du projet DARPA-KSE (comme KQML) et la
FIPA[8] en a intégré une version à ses spécifications.
L’étude de KIF avait deux buts :
1. créer un langage pour permettre à des applications intelligentes de s’échan-
ger des connaissances en minimisant les problèmes d’interopérabilité.
2. créer un langage commun de traduction pour faciliter la communication
entre des applications n’utilisant pas le même langage de contenu.
Ce langage permet d’exprimer des connaissances mais aussi des informations
sur ces connaissances, des liens logiques entre les concepts. Il permet donc de
raisonner sur l’environnement, mais aussi sur la façon de le représenter.

(forall ?x (=> (P ?x) (Q ?x)) )

Fig. 5 – Exemple d’expression KIF

La figure 5 montre un exemple d’expression KIF bien formée. Elle signifie


que pour toute variable libre x, on a P (x) => Q(x).
En revanche, KIF ne contient pas de logique de l’action, il ne permet pas
d’exprimer une demande de service ou la fin d’une tâche.
14 KIF : Knowledge Interchange Format

10
3.2 FIPA ACL & SL
Comme nous l’avons vu précédemment, SL est le langage formel de descrip-
tion de la sémantique de FIPA ACL. Ce langage peut également être utilisé
en temps que langage de contenu, pour communiquer autour d’états internes
par exemple. Il permet également de communiquer autour d’actions, la figure 6
montre comment on exprime en SL le fait qu’un agent de nom A fait l’action
“avancer” sur une longueur de “10” centimètres. Le performatif dans lequel cette
expression est inclue, détermine si il s’agis d’une information, d’une requète,. . .

(action (agent-identifier :name A) (avancer 10))

Fig. 6 – Expression d’une action de déplacement en SL

Pour en simplifier l’usage, la FIPA a défini trois sous-ensembles de SL (SL0,


SL1 et SL2). Ces sous-ensembles expriment moins de choses que SL, mais ils
sont plus simple à interprêter.
Pour utiliser ces langages, il suffit de donner la valeur fipa-slX (où X est
vide pour SL, 1 pour SL1,. . .) au champ :language du message ACL.

3.2.1 SL0 : sous-ensemble minimal


C’est le sous-ensemble minimal de SL. Ce langage de contenu permet la
représentation des actions (et de leurs terminaisons), la détermination du résul-
tat d’un terme exprimant un calcul et des propositions booléennes atomiques.
Ce niveau de communication suffit pour s’échanger des informations autour
desquelles on ne veut pas raisonner. Une demande de service, par exemple, peut
tout à fait être exprimer en SL0.

3.2.2 SL1 : logique propositionnelle


Ce sous-ensemble de SL permet de s’échanger des expressions proposition-
nelles. Il s’agit de SL0, auquel ont été ajoutés les opérateurs booléens.
Ce langage s’adresse aux agents capables de raisonner autour de propositions
logiques. Ils peuvent ainsi s’échanger des expressions complexes qu’ils devront
mettre en relation avec leurs connaissances pour en exploiter le contenu.

3.2.3 SL2 : réduction décidable


SL2 est le plus grand des sous-ensemble de SL. Il contient SL1, mais il est
plutôt défini comme étant une réduction décidable de SL. Il permet d’exprimer
tout ce qui a été vu précédement, mais aussi d’écrire des prédicats d’ordre 1,
d’utiliser des quantificateurs et d’accéder à la logique modale.
Si deux agents veulent s’échanger des avis ou des états internes, ils peuvent
le faire en SL2.

3.3 Ontologies
En fonction du langage de contenu qu’ils utiliseront, les agents pourront
s’échanger des connaissances de différents types. Mais pour les comprendre, il
leur faut aussi utiliser un vocabulaire commun représenté par les ontologies.

11
Les ontologies représentent le domaine discours. Deux agents pour pouvoir
se comprendre doivent communiquer en utilisant le même vocabulaire, ou tout
au moins des vocabulaires que chacun connaı̂t. Dans le message ACL, la valeur
du champ :ontology permet d’identifier le domaine de discours.
Pour la communication entre agents simples, cette ontologie peut tout à fait
être implicite. Le sens à associer aux informations reçues est alors embarqué
dans l’agent, il n’utilise le champ :ontology que pour s’assurer qu’il comprendra
bien le contenu. C’était le cas dans l’exemple de la partie précédente, lorsque
les agents discutaient de la météo.
En revanche, des agents plus complexes peuvent utiliser des vocabulaires
plus élaborés, dans lesquels les différents mots ont des relations d’héritage par
exemple (ex : la truite est un poisson). Il devient alors intéressant d’extraire de
l’agent cette représentation du domaine de discours pour en faire un service et
faciliter les traductions[8, 24].

4 ACL & Facilitateurs


Un échange de connaissances entre deux agents peut se faire sous différentes
formes, mais il ne se fait pas sans raison. L’agent qui commence une conversa-
tion attend quelque chose de l’interaction qu’il met en place : il a besoin d’un
service (d’une information, d’une action,. . .). Avant de contacter un agent, il
est préférable qu’il s’assure que son interlocuteur pourra lui fournir ce qu’il re-
cherche. Bien souvent d’ailleurs, il ne saura pas à qui s’adresser pour obtenir ce
dont il a besoin. Il s’adresse donc à un agent facilitateur, qui lui fournira ces
informations.
Les facilitateurs sont des agents de l’environnement qui jouent le rôle d’an-
nuaires. Ils peuvent stocker les manières d’accéder aux autres agents et alors
représenter les pages blanches d’un annuaire (localisation, protocole de commu-
nication bas niveau,. . .) ou/et maintenir le jeu de services que sont capables de
fournir les différents agents (équivalent des pages jaunes).
Contrairement à FIPA-ACL, KQML défini un certain nombre de performatifs
réservés à la communication avec ce type d’agent. Ces derniers, contrairement
aux autres performatifs KQML, n’ont pas de véritable définition formelle de leur
sémantique. Ils permettent de déléguer à un agent facilitateur le traitement d’un
performatif embarqué dans le champ :content du message.
En revanche, la FIPA considère les agents facilitateurs comme des agents nor-
maux qui délivrent un service particulier. Le “Directory Facilitator” (DF) enre-
gistre chacun des agents de l’environnement et conserve un moyen de les contac-
ter (pages blanches) alors que l’“Agent Managment System” (AMS) rend pu-
blique la liste des services que chacun des agents est prêt à fournir (pages jaunes).
Ces deux agents sont considérés comme indispensables à toute platforme FIPA
Compliant, elles doivent donc donner accès à au moins un représentant de cha-
cuns d’eux.

5 Conversations entre Agents


Un échange de connaissances ne se contente que rarement d’un seul message,
en général il est nécessaire de s’en échanger plusieurs : une question suivi d’une

12
réponse par exemple.
Une conversation entre deux agents correspond à une suite de messages qu’ils
s’échangent pour atteindre le but qui a initié le dialogue. Dans le cas d’agents
ayant des avis et intentions sur le monde qui les entourent, on pourrait laisser
ces intentions guider le choix du message à envoyer. Mais sans autres données
que la sémantique des performatifs, ce choix peut s’avérer complexe.

5.1 Règles de Conversation


Pour simplifier ce choix, Labrou spécifie “The Conversation Policies for
KQML performative”[27] pour limiter le nombre de réponses possibles à un
performatif KQML. Il définit les enchaı̂nements qui ont du sens. Par exemple,
une question doit être suivie d’une réponse ou d’une excuse, mais pas d’une
autre question. Ces règles ne sont pas obligatoires, elles apportent simplement
un cadre pour réaliser des agents moins sophistiqués communiquant par l’in-
termédiaire de messages KQML. Les agents ayant la capacité de mettre en place
des interactions plus complexes peuvent s’en affranchir.
Mais si on souhaite réaliser des agents plus simples (sans avis ni intentions),
ces rêgles ne suffisent pas, il faut définir des protocoles plus strictes spécifiant
l’essemble des conversations possibles pour atteindre un but précis.

5.2 Protocoles FIPA


La FIPA[8] propose une bibliothèque de protocoles, destiné à encadrer les
échanges dans certaines situations précises. Ces protocoles spécifient ce que
doivent s’échanger les interactants et dans quel ordre. A chaque étape du pro-
tocole, chacun des interlocuteurs sait : si c’est à lui de s’exprimer ou pas, et ce
qu’il a la possibilité d’envoyer ou ce qu’il doit s’attendre à recevoir.
La figure 7 montre la représentation du protocole “FIPA Request” dans
un formalisme inspiré du diagramme de séquence d’UML[8]. On voit que l’agent
Initiator met en place le protocole en envoyant un performatif request à l’agent
P articipant. En fonction de ses capacité à répondre à la demande qui lui est
faite, ce dernier répond par une acceptation ou un refus. Si il a accepté de
répondre à la requête, l’agent P articipant clôt la discussion quand son traite-
ment est terminé en envoyant le résultat de l’action ou la raison de l’échec si
elle n’as pas abouti.
Pour utiliser ce protocole, il suffis de donner la valeur fipa-request au
champ :protocol du performatif request qui initie la conversation. L’ensemble
des messages qui s’échangeront pendant ce dialogue devront également contenir
la même valeur non vide du champ :conversation-id pour permettre aux
participants de mettre en relation les différents messages entre eux.
Ces protocoles rendent possible la communication avec des agents peu évolués
qui n’ont pas la capacité de réfléchir sur leur façon de communiquer.
Ils permettent également de minimiser les échanges de messages pour les
interactions simples, mais leur rigueur ne leur permet pas de s’adapter à toutes
les situations.

13
Fig. 7 – Spécification du protocole “FIPA Request”

5.3 Conduites de Conversation


Les conduites de conversation se positionnent entre la liberté totale d’ex-
pression et les protocoles strictes que nous avons vu précédemment. On spécifie
des directions globales à tenir (avec des points de passage par exemple), ce qui
permet de limiter les risques d’interblocage. On autorise des variations dans
le protocole pour simplifier les interactions entre agents ayant des conceptions
différentes.
Mais, la jeunesse du domaine fait qu’il n’existe pas de modèle éprouvé, ni
même reconnu ou étudié à grande échelle[10].

6 Communication Humain-Agent
Tout ces mécanismes permettent de mettre en place des échanges de connais-
sances entre entités numériques. L’utilisateur vu, dans l’environnement virtuel,
comme un agent-avatar[18] devrait donc avoir les mêmes capacités de commu-
nication que les entités avec lesquelles il souhaite communiquer. Mais ces modes
de communication restent une simplification des échanges entre humains, même
si ils en sont inspirés. Pour permettre à un utilisateur de communiquer natu-
rellement avec des entités virtuelles, il est nécessaire de mettre en place une
interface de “traduction” entre lui et le monde virtuel.
Une communication naturelle entre un humain et une entité numérique
implique que cette dernière soit capable communiquer en langage naturel (le
générer et le comprendre) : assurer une communication verbale. Mais la crédibilité

14
du dialogue nécéssite également l’utilisation d’un certain degré de communica-
tion non-verbale[6, 26] comme les expressions faciales ou la gestuelle.
Pour mesurer la qualité d’une entité virtuelle communicante, Turing[21] a
proposé en 1950 une technique d’évaluation simple de ses capacités de conver-
sation. Il s’agit de réussir à faire passer le programme pour un utilisateur réel.
Le testeur doit déterminer si l’entité avec qui il communique est une machine
ou un humain, le but étant de tromper le testeur en réussissant à lui faire croire
qu’une machine a des capacités de communication équivalentes à un humain.
Nous allons donc étudier ces deux modes de communication naturelle : ver-
bale et non-verbale et voir leurs influences sur la crédibilité du dialogue.

6.1 Communication verbale


On peut distinguer deux grands groupes d’agents utilisant la communication
verbale : ceux utilisant une interface textuelle et ceux utilisant la voix.

6.1.1 Communication textuelle


Les premiers exemples d’entités informatiques utilisant la communication
verbale sont apparus sous la forme d’interfaces textuelles. L’utilisateur commu-
nique avec la machine en tapant ses messages dans une interface de type logiciel
de chat, et la machine répond par des messages textuels.
Eliza[19] se voulait être une thérapeute virtuelle, ayant le même genre de
réaction qu’un psychologue réel. Mais elle ne conserve que très peu d’informa-
tions sur ce qui c’est dit et elle cherche à poser des questions autour de ce qu’on
vient de lui dire. Elle ne sait pas véritablement répondre, elle extrait du mes-
sage des mots ou expressions ayant du sens pour les replacer dans les questions
suivantes. Le dialogue devient rapidement un dialogue de sourds et le Test de
Turing échou. Des applications comme HAL[3] (créé par Artificial Intelligence)
ont des capacités de communication bien plus importantes, notamment grâce
à une base de connaissances permettant à l’utilisateur de former l’agent en le
corrigeant lorsqu’il ne répond pas bien.
Les diverses techniques de Traitement Automatique du Langage (TAL) ont
été mises à profit pour permettre à la machine de comprendre et générer des
structures de texte plus complexes. Par exemple, dans Autotutor[1], les mes-
sages sont classés par types d’actes de langage par un réseau de neurones.
Enfin, l’utilisation d’architectures basées sur les désirs et les intentions pour
la modélisation de ce genre d’agents leur a donné des réactions plus proches
de celles d’êtres humains, et la prise en compte du contexte de conversation
rend la discussion plus naturelle. Ainsi, le gérant du rayon location de vidéo
virtuel, réalisé au laboratoire MAGMA15 de Grenoble par Chicoisne[10], réussit
a conseiller aux utilisateurs un film qui les intéressent.

6.1.2 Communication par la parole


Les agents utilisant la communication vocale permettent à l’utilisateur de
communiquer directement par la parole. Il s’agit donc d’ajouter une interface
15 MAGMA : Modélisation d’AGents Autonomes en univers Multi-Agents

(http://leibniz.imag.fr/MAGMA )

15
supplémentaire entre l’utilisateur et l’agent, pour traduire la voix de l’utilisateur
en texte(reconnaissance vocale) et le texte produit par l’agent en paroles.
Dans un premier temps, les systèmes utilisant la communication vocale
étaient basés sur des listes de phrases qu’ils pouvaient légèrement moduler.
Par exemple STEVE[16] connaı̂t des morceaux de phrases qu’on lui a fourni
à la création de la leçon. Il les insère ensuite dans des structures toutes faites
en fonction de la situation. La reconnaissance vocale de cet environnement est
également assez simpliste, puisque l’utilisateur n’a que quelques phrases à sa
disposition (“Why ?”, “Let me finish !”,. . .), le système d’analyse vocale ne fait
que reconnaı̂tre ces phrases dans les paroles de l’utilisateur.
Puis, les agents utilisant la communication vocale ont intégré les techniques
de compréhension et de génération du langage naturel (et les programmes tex-
tuels ont intégré des interfaces vocales), et les moteurs de décisions basés sur les
désirs et les intentions (comme le modèle BDI[7]). Dans Rea[13], le module de
reconnaissance vocale génère des performatifs KQML que les différents modules
interprêtent. SPUD[23], le module de génération de langage naturel de Rea,
construit des phrases à partir des messages KQML qu’il reçoit.

Fig. 8 – Utilisateur communiquant avec Rea

6.2 Communication non-verbale


Cependant la mise en place d’une communication naturelle entre un agent
informatique et l’utilisateur d’un environnement virtuel ne se limite pas à la
complexité de mise en oeuvre de la communication verbale. En effet, la ges-
tuelle et les expressions faciales y tiennent également une place importante, et
la synchronisation entre les parties verbale et non-verbale de la communication
est essentielle à la crédibilité de l’échange.
La communication non-verbale corespond à l’ensemble des messages qui
s’échangent entre deux individus en parallèle du message en langue naturelle.
Ce sont les gestes, les mimiques du visage ou les intonations de voix.
Ce mode de communication permet de ponctuer son discours en exprimant
des émotions par exemple, mais il sert également de canal de communication

16
lorsque la parole ne peut être utilisé (si l’interlocuteur a la parole). On peut
exprimer un avis ou un désir de prise de parole par exemple.

6.2.1 Ponctuation du discours


Cette partie de la communication non-verbale s’éloigne un peu du contexte
de cette étude bibliograhique, puisque qu’il ne s’agit pas vraiment d’échanger
des connaissances. On cherche plutôt à mettre en valeur des informations qui
s’échangent par l’intermédiaire du canal verbal et à rendre crédible l’entité vir-
tuelle en lui donnant des comportements humains.

6.2.2 Acte de communication


En revanche, les échanges non-verbaux peuvent représenter des actes de com-
munication à part entière.
Pour assurer le bon déroulement d’une conversation, il est nécessaire de
mettre en place une bonne gestion de la prise de parole[20], l’utilisateur (ou
l’entité virtuelle) doit pouvoir exprimer son envie de prendre la parole (ou de
la rendre). Ceci ce fait assez naturellement par l’intermédiaire de signaux non-
verbaux (lever le doigt dans Rea[13]).
Thórisson[20] extrait du problème de la prise de parole, celui du retour d’in-
formation dans une conversation. Par exemple, pendant qu’un des intervenant
parle, il est intéressant de pouvoir exprimer une incompréhension tout en le lais-
sant continuer. Ce retour d’information est un acte de communication simple
faisant référence au sujet en cours de discussion, mais ne donnant pas automa-
tiquement lieu à une prise de parole.
Enfin, un acte non-verbal peut accompagner un acte verbal et expliciter une
référence contenue dans ce dernier. Par exemple, si l’agent dit : “Cette table est
en bois”, le fait de montrer la table dont il est question fait partie intégrante de
l’acte de communication.

17
Conclusion
Nous avons donc vu comment on peut faire communiquer des agents à l’aide
d’actes de langages. Ces échanges peuvent se faire entre des entités hétérogènes
interopérables. Ces entités doivent néanmoins partager un minimum de concepts,
pour que l’acte de communication réussise. En effet, elles doivent comprendre
le sens associé à chaque niveau du message (performatif, langage et ontolo-
gie). Il n’est d’ailleurs pas nécessaire que les agents communiquants aient les
mêmes mécanismes d’interprétation de message, cependant ils doivent en ti-
rer des conclusions équivalentes (au sens échange de connaissances) dans leur
représentation respective de l’environnement.
Il faudra donc mettre en œuvre tous ces concepts pour permettre une bonne
communication à base d’actes de langage entre agents. Ceci doit tenir compte de
l’enchainement des actes de langage au cours d’une conversation. L’aspect social
de la communication devra également être abordé pour étudier son impact sur
les échanges entre agents dans l’environnement.
Dans un environnement de Réalité Virtuelle, le passage de la communication
Agent/Agent à la communication Utilisateur/Agent devra poser le problème
sous l’angle des agents conversationnels ou de la communication Humain/Avatar.
Dans le premier cas l’approche se focalise sur le réalisme d’un agent d’un point
de vue communication verbale et non-verbale, alors que dans l’approche où l’hu-
main doit être un modèle parmi les modèles[18], il est nécessaire de se baser sur
la prise de contrôle d’un avatar, ce dernier communiquant avec les autres agents
de l’environnement par actes de langages tout comme le feraient deux agents.

18
Références
[1] A.C.Greaser et al. Autotutor : A simlation of a human tutor. Journal of
Cognitive Systems Research, 1999.
[2] A.Nédélec, P.Reignier et V.Rodin. Collaborative prototyping in distributed
virtual reality using an agent communication language. 2000.
[3] Artificial Intelligence. http://www.a-i.com.
[4] B.Chaı̈b-draa et F. Dignum. Trends in Agent Communication Language.
Computational Intelligence, 2002.
[5] B.N.Grosof et Y.Labrou. An approach to using xml and a rule-based
content langage with an agent communicaiton language. 2000.
[6] C.Pelachaud, I.Poggi. Towards believable interactive embodied agents.
2001.
[7] A.S.Rao et M.P.Georgeff. Modeling rational agents within a BDI-
architecture. In Proceedings of the 2nd International Conference on Prin-
ciples of Knowledge Representation and Reasoning (KR’91), 1991.
[8] FIPA. Spécifications FIPA, 2000. http://www.fipa.org.
[9] FIPA OS. http://fipa-os.sourceforge.net.
[10] G.Chicoisne. Dialogue entre agents naturels et angents artificiels. PhD
thesis, INPG, Grenoble, 2002.
[11] Java Agent DEvelopement Framework. http://jade.cselt.it.
[12] Java Expert System Shell. http://herzberg.ca.sandia.gov/jess.
[13] J.Cassel, T.Bickmore et al. An architecture for embodied conversational
characters. 1999.
[14] J.Ferber. Les Systèmes Multiagent : Vers une intelligence Collective. In-
terEditions, Paris, 1995.
[15] J.L.Austin. Quand dire, C’est faire. Seuil, 1962.
[16] J.Rickel et W.L.Johnson. Animated agents for procedural training in vir-
tual reality. Applied Artificial Intelligence, 1999.
[17] J.R.Searle. Speech Acts. Cambridge University Press, 1969.
[18] J.Tisseau. Réalité virtuelle, autonomie in virtuo. 2001. Habilitation à
Diriger des Recherches.
[19] J.Weizenbaum. A computer program for the study of natural language
communication between man and machine. Communications of the ACM,
1966.
[20] K.R.Thórisson. Natural turn-taking needs no manual. Multimodality in
Language and Speech Systems, 2002.
[21] M.L.Mauldin. Chatterbots, tinymuds, and the turing test : Entering the
loebner prize competition. 1994.
[22] M.P.Singh. Agent Communication Languages : Rethinking the Principles.
1998.
[23] M.Stone and C.Doran. Sentence planning as description using tree-
adjoining grammar. Proceedings of ACL, 1997.
[24] Ontoligua. http://www.ksl.stanford.edu/software/ontolingua.

19
[25] P.Pasquier et B.Chaı̈-draa. Engagements, intentions et jeux de dialogue.
In les Actes des Secondes Journées Francophones Modèles Formels de l’In-
teraction, Lille, 2003.
[26] T.Bickmore et J.Cassell. Social Dialogue with Embodied Conversational
Agents. Natural, Intelligent and Effective Interaction with Multimodal Dia-
logue Systems, 2004.
[27] Y.Labrou. Semantics for an Agent Communication Language. PhD thesis,
UMBC, 1996.
[28] Y.Labrou, T.Finin et Y.Peng. Agent communication languages : The cur-
rent landscape. Intelligent Agents, 1999.

20