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 :
- 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
- 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 :
- une suite d'APIs qui facilitent la composition, l'envoi et la réception
des messages de ACL
- 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.
- 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.
|