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 :


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 :

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 :

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 :
Ces remarques ont été partiellement prises en compte dans la deuxième version de KQML :

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 :

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-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