Langages de communication pour agents (ACL)
Un ACL est un langage permettant à plusieurs agents cognitifs
de communiquer entre eux. Cette page présente un panorama des propositions
existantes et se veut un point de départ pour l'étude des
ACL. Nous nous intéresserons tout d'abord à la théorie
des actes de langages, sur laquelle ils se basent. Puis nous présenterons
les travaux liés au Knowledge Sharing effort, ceux de la FIPA et
enfin les initiatives actuelles, destinées au web.
La théorie des actes de langage
Les travaux sur les langages de communication pour les agents se fondent
principalement sur la théorie linguistique des actes de langage.
Cette théorie est due principalement à
Austin
et Searle
. On en trouvera une description détaillée dans :
- Un article de la Routledge Encyclopedia of Philosophy, écrit
par Kent Bach (
html
).
- Une présentation plus complète, par Keith Allan (
html
).
Le Knowledge Sharing Effort (
KSE
)
Cette initiative, financée par l'agence américaine
DARPA
, a vu le jour au début des années 90. Elle s'est attelée
à définir (1) un langage permettant à des agents
de communiquer (KQML
) (2) un format permettant l'échange informatique de ces connaissances
(KIF
) et (3) des outils pour construire des ontologies partagées (
Ontolingua
). On en trouvera une présentation centrée sur les aspects
de communications entre agents, dans :
- Genesereth, M. R., Ketchpel, S. P.: ``Software Agents'', Communications
of the Association for Computing Machinery, July 1994, pp 48-53 (
ps
).
Knowledge Query and Manipulation Language (
KQML
)
KQML, qui est véritablement l'ACL de l'initiative KSE, a
été proposé en 1993 par
Finin
et al. Une présentation de ce langage a été publiée
dans l'article :
- T. Finin et.al.: "KQML as an Agent Communication Language ", 3rd International
Conference on Information and Knowledge Management (CIKM94), ACM Press,
December 1994 (
pdf
).
Au moment de sa parution, KQML était sans contexte le travail le
plus élaboré visant à définir un ACL. Il a cependant
été contesté, principalement par
Cohen
et Levesque
, pour l'imprécision de sa sémantique, dans :
- Cohen, P.R. and H.J. Levesque [1995]. "Communicative Actions for Artificial
Agents," Proceedings of the International Conference on Multi-Agent Systems,
AAAI Press, San Francisco, June, 1995 (
ps
).
Ces remarques ont été partiellement prises en compte dans
la deuxième version de KQML :
- A Proposal for a new KQML Specification, Yannis Labrou and Tim Finin,
TR CS-97-03, February 1997, Computer Science and Electrical Engineering Department,
University of Maryland Baltimore County, Baltimore, MD 21250 (
pdf
).
L'ACL de la FIPA
La Foundation for Intelligent Physical Agents (
FIPA
) est un organisme de standardisation qui produit régulièrement
des spécifications visant à une meilleure interopérabilité
entre agents logiciels hétérogènes. En 1997, elle publie
la spécification FIPA 97, dont la seconde partie spécifie un
ACL (pdf
).
Les auteurs de KQML
réagissent
à la parution de cette spécification, en critiquant principalement
le comportement d'agent rationnel qu'elle suppose, qui selon eux
est trop limitatif et pour lequel il n'existe pas de modélisation consensuelle
Cette première spécification, aujourd'hui obsolète,
a été continuellement augmentée et améliorée,
notamment pour prendre en compte l'apparition de nouveaux standards et de
nouvelles contraintes liés au web, tels que :
- XML pour la représentation des messages entre agents,
- RDF pour la représentation des ontologies,
- Un couche de transport basée sur le protocole HTTP,
- La prise en compte de contenu multimédia,
- La sécurité et la confidentialité.
Autant d'aspects qui representent chacun une partie de la dernière spécification
publiée, FIPA 2000 .
Les ACL dans le contexte du web
DAML
La préoccupation initiale des ACL, qui était de permettre
la communication entre agents hétérogènes, peut quasiment
s'identifier aujourd'hui à la vision du
web sémantique
. Même si le vocable d'agent est peu utilisé, il s'agit bien
de faire collaborer entre eux des programmes autonomes et hétérogènes.
L'initative la plus importante à cet égard est sans doute
DAML
, Darpa Agent Markup Language. A ce jour, les langages définis
sont les suivants :
- DAML+OIL
(Ontology inference Layer), permet de représenter des ontologies,
en utilisant une syntaxe basée sur
RDF
. Le formalisme logique est une variante des logiques de description et
permet une forme limitée d'inférence, essentiellement basée
sur des tests de subsomption entre classes. C'est en quelque sorte le successeur
de KIF. Une traduction de l'ACL FIPA en DAML+OIL
existe
.
- DAML-S
(Services) définit une ontologie pour les services web. Le langage
permet en outre la description des actions que peut accomplir chaque agent,
dans les termes d'une ontologie DAML+OIL, et la décomposition de tâches
complexes en sous-tâches élémentaires.
DAML-S n'est pas à proprement parler un ACL, car il ne s'agit pas
véritablement d'un langage, au sens d'Austin et Searle. Mais il permet
à chaque agent d'offrir un certain nombre d'opérations aux autres
agents, et de comprendre la sémantique des opérations proposées
par ses pairs, grâce à des ontologies de référence.
Autres travaux
La thèse d'Erika Valencia
traite de l'hétogénéité sémantique entre agents
et propose une approche basée sur le raisonnement par cas. Le langage de
communication entre agents est basé sur les logiques de description.
SACP
(Simple Agent Communication Protocol) est un protocole simple de communication
entre agents. Il se place au niveau applicatif et ne constitue pas véritablement
un ACL