4 Communication dans les Systèmes Multi-Agents
4.5 Le langage de communication agent FIPA-ACL

4.6 Similitudes et différences entre KQML et FIPA-ACL

KQML et FIPA-ACL sont presque identiques en ce qui concerne leurs concepts de base et les principes qu'ils observent. Les deux langages diffèrent principalement dans les détails de leurs cadres sémantiques. Dans un sens, cette différence est substantielle :

  1. il n'est pas possible de proposer une traduction systématique entre les performatives de KQML et celles complètement équivalentes de FIPA, ou vice-versa
  2. les différences inéluctables pourraient avoir peu d'importance pour les programmeurs d'agents intelligents, si leurs agents ne sont pas de véritables agents BDI.

Les deux langages ont la même syntaxe. C'est-à-dire, un message de KQML et un message de FIPA-ACL sont syntaxiquement identique excepté, naturellement, dans leurs différence sur les noms des primitives de communication.

Les deux langages n'impliquent aucun engagement de base vis-à-vis d'un langage pour le contenu. Cependant, dans le cas de FIPA-ACL, comme nous l'avons mentionné, il est nécessaire de doter les agents d'une capacité de compréhension de $SL$ pour traiter correctement un message reçu.

Sémantiquement, les deux langages diffèrent au niveau de ce qui constitue la description de la sémantique :

  • pré-conditions, post-conditions, et conditions d'accomplissement pour KQML
  • pré-conditions de faisabilité et effets rationnels pour FIPA-ACL

Ils diffèrent également au niveau du choix et des définitions des modalités qu'ils utilisent (le langage employé pour décrire les états des agents).

Une autre différence entre les deux ACL est dans la gestion des agents (enregistrement dans le système, localisation, appartenance à un groupe,...). Dans KQML, ces tâches sont associées aux performatives que le langage traite en tant que propositions de premier ordre. FIPA-ACL, prévu pour être un ACL pur, ne considère pas ces tâches individuellement comme des actes de communication. Au lieu de cela, il les traite en tant qu'actions rattachées à la primitive "request" et définit ainsi une gamme d'actions réservées qui couvrent les tâches de gestion dans le cycle de vie des agents telles que la tâche d'enregistrement. Dans cette approche, les actions réservées n'ont pas été formellement définies et le sont en termes de descriptions en langage naturel.

Enfin, tout système qui doit utiliser KQML ou FIPA-ACL ou tout autre ACL doit fournir les éléments suivants :

  1. une suite d'APIs qui facilitent la composition, l'envoi et la réception des messages de ACL
  2. une infrastructure des services qui aident la gestion des agents comme l'enregistrement, l'identification, la recherche d'agents, déclaration des services offerts, etc.
  3. un code pour chaque type de message réservé (acte communicatif ou performative) qui prend en charge la sémantique des actions relatives à un domaine d'application

Idéalement, un programmeur devrait seulement fournir le point 3.
Les points 1 et 2 devraient être des composants réutilisables que l'on peut intégrer dans le code de l'application.

Les spécifications des langages FIPA-ACL et de KQML n'imposent aucune condition sur le langage de programmation ni sur la plate-forme utilisée pour l'implantation, pour autant que l'implantation soit conforme aux spécifications du langage.

Sur Internet on peut remarquer plusieurs efforts d'implantation des ces langages, dont les plus connus sont JADE, JATLite, KAPI et COBALT proposé par l'équipe IRIT/SIERA de Toulouse.

 

Question: Faites une comparaison entre les Langages de Communication entre Agents (ACL) et les technologies similaires au Remote Method Invocation (RMI) de Java, en indiquant les deux principales différences.


Cliquer ici pour voir la réponse.

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

Politechnica University of Bucharest - 2002