Biblographie
par Elena Ivankina
DEA I3 |
Le WEB regorge
des sites consacrées aux langages de communication et d'échanges d'information
entre les agents, nous sommes loin des les avoir tous visités et n'avons
pas la prétention de tous les recenser, néanmoins une partie de ces sites
n'a pas pu échapper à notre attention et c'est cette parie que nous allons
essayer de présenter. On précise au passage que la partie francophone
est totalement inexistante dans ce domaine tous les sites recensés seront
donc anglophones .
Dans cette bibliographie nous somme resté dans un registre assez large
et nous allons présenter un ensemble de sites ou de pages particulières
dont le sujet sont les ACL ce qui englobe généralement les notions comme
KIF, KQML, OIL, DAML etc. La bibliographie s'organise de la façon suivante.
En premier lieu on fait une courte et générale présentation du domaine.
Elle ne présentera pas de sujets spécifiques tels que ontologie ou sémantique
de différents langages, mais seulement les termes et les concepts généraux
qui permettront d'introduire le sujet et d'intéresser (peut-être) le lecteur.
En suite on présentera la bibliographie elle même classée par thèmes,
avec quelques commentaires pour la plupart des pages recensées.
Les agents ont besoin d'interagir et de communiquer les uns avec les autres
et leur environnement doit leur permettre de coopérer et de partager la
connaissance. Pour cela un langage commun ou compréhensible par tous est
nécessaire. Il n'existe pas de langage commun reconnu, en revanche pour
pouvoir répondre à ces besoins un langage doit procéder certaines caractéristiques.
En particulier il est important de faire la distinction entre les langages
de communication qui expriment les actes de communication et les langages
à contenu qui expriment une information à propos d'un domaine.
Ainsi le concept de logiciels basés sur la communication des agents soulève
un certain nombre de questions:
· Quel est le langage de communication approprié
· Comment construire les agents capables de communiquer dans ce langage
· Quelle est l'architecture propice à la communication
On compare souvent l'ingénierie de logiciels basées sur les agents à la
programmation orientée objet. Comme des objets les agents fournissent
une interface basée sur les messages, indépendante de la structure interne
de base de données. Mais dans un système orienté objet le sens des messages
peut varier d'un objet à un autre (c'est la propriété de polymorphisme),
alors que dans un système multi-agent les agents utilisent un langage
commun avec des sémantiques indépendantes de l'agent (le même message
aura toujours le même sens indépendamment du contexte)
Le langage de l'implémentation, l'architecture et l'application ont une
influence sur le design de ACL. Quand une application multi-agent est
complexe elle doit fournir une représentation de son environnement, l'historique,
les buts puisqu'un agent doit agir de façon autonome ce que un ACL leur
permet de faire.
Il existe deux approches pour la création d'un ACL, l'approche procedurale
et déclarative. L'approche procedurale est basée sur l'idée de communication
doit être représentée comme un échange de directives procedurales, les
langages de scripte (TCL, JavaScript, AppleEvents etc.) sont basés sur
cette approche. Ils permettent au programmes de transmettre non seulement
de simples commandes individuelles, mais des programmes entiers. Par contre
les scriptes proceduraux sont difficiles à fusionner, il est difficile
de créer un grand script qui a des différents buts à la fois.
L'approche déclarative sur laquelle on va se baser, part du principe que
la communication est mieux représentée par un échange des déclarations
(définitions, suppositions, affirmations, axiomes etc.)
Pour être utilisable un langage déclaratif doit posséder certaines caractéristiques
· Il doit être suffisamment expressif pour conduire l'information de types
très variés
· Etre compact et concis (dans la mesure de raisonnable)
· Assurer la communication avec d'autre langages sans trop monter en charges
Pour répondre à ses besoins le ARPA Knowladge Sharing Effort a défini
les composantes du langage de communication entre les agents (ACL). Le
Knowladge Sharing Effort est un consortium pour le développement et les
améliorations de bases de connaissances partagées et réutilisables, et
des systèmes basés sur la connaissance. Et c'est avec le KSE que l'histoire
des ACL commence.
Le KSL a été crée dans les années 1990 par l'Agence de Recherches Avancées
dans la Défense du Ministère de la Défense Américain, dans lequel participait
une douzaine de chercheurs aussi bien universitaires que industriels.
Le but de cette organisation était de développer une technologie, une
méthodologie et des outils logiciels pour une connaissance partagée et
réutilisable dans le design, l'implementation, et l'exécution. Le KSE
est parti de l'idée que pour partager la connaissance il faut un langage
commun et s'est centré sur la définition d'un tel langage. Dans le model
KSE un système est une base de connaissances virtuelle qui échange les
propositions utilisant un langage qui exprime des attitudes variées et
complexes et le terme d'origine était des " attitudes propositionnelles
" . Ces attitudes étaient composé de relation entre trois entités :
· Un agent
· Une proposition orientée contenu (par ex. " il pleut ")
· Et un ensemble fini des attitudes qu'un agent peut avoir (croire, espérer,
déclarer etc.)
De plus le terme d'agent n'était pas celui d'origine, mais s'y applique.
Avec le temps ses concepts ont été développées et de nouvelles caractéristiques
s'y sont rajoutées.
Ainsi un ACL standard inclue un vocabulaire de messagerie, un "langage
logique" interne et un langage "linguistique" externe.
Un ACL standard d'ARPA KSE contient trois parties:
· Un vocabulaire à partir duquel les messages sont composés
· Un langage logique interne utilisant le vocabulaire, ce langage interne
est connu sous le nom de KIF (Knowledge Inerchange Format)
· Un langage externe dans lesquels le formalisme du langage interne est
traduit, ce langage s'appelle KQML (Knowlage Query and Manipulation Language)
La distinction entre le langage interne et externe reflète la nature du
langage humain. Nos déclarations ont une forme logique mentalement non
ambigu et indépendante du contexte, ce qui est en suite transcrit en forme
linguistique. Cette forme est concise, ambiguë et dépendante du contexte.
Ainsi un message ACL est l'expression KQML dont les arguments sont des
termes de KIF est composé des mots du vocabulaire ACL. Le vocabulaire
d'ACL est listé dans un dictionnaire avec les mots appropriés pour les
applications courantes. Chaque mot a une description en anglais et une
annotation formelle (écrite en KIF). Mais ce dictionnaire n'oppose pas
une seule manière de description, il contient des ontologies pour chaque
domaine.
En ce qui concerne le Knowledge Inerchange Format, c'est une version de
FOPC (First Order Predicate Calculus) avec de différentes extensions pour
étendre son expressivité. Alors que le Knowlage Query and Manipulation
Langage sert à préciser la syntaxe KIF qui a besoin de connaissances implicites
et contextuelles. Le KQML a été développé comme partie de KSE.
ACL fournit une couche linguistique ou l'information contextuelle est
implicitement définie, elle devient explicite après la traduction en KIF.
Le critère de validité de l'agent est comportemental. Une entité est un
agent uniquement s'il communique correctement dans un langage de communication
des agents. Cela veut dire qu'il doit être capable de lire et écrire des
messages ACL et ce qui veut dire que l'entité en question doit respecter
les contraintes comportementales implicites dans le sens de ces messages.
Les contraintes spécifiques associées aux messages dérivent du contenu
du message et les principes généraux du comportement des agents. Ces principes
sont la vérité (un agent doit toujours dire la vérité), autonomie, engagement
etc.
Et enfin l'architecture des système multi-agent est souvent constitué
des groupes d'agents la communication s'effectuant entre les groupes,
et non pas directement entre les agents. Chaque groupe possède un facilitator,
donc au lieu de discuter les uns avec les autres les agents communiquent
avec leur facilitator local, à l'aide de leurs documents ACL. Si le logiciel
n'est pas basé sur cette architecture on implémente une couche logicielle
avec un traducteur qui traduira les messages sortants du logiciel classique
en ACL et vice versa. Une autre possibilité consiste à implémenter une
couche de wrappeur qui transforme le code source du programme afin qu'il
puisse convenir au système multi-agents.
Il faut remarquer que le concept de facilitators et de communication entre
entité distinctes n'est pas neuf . Par exemple les programmes d'assistance
aux répertoires facilitent l'interoperation entre les logiciels, en fournissant
au programmes la possibilité de savoir lequel d'entre eux peut rediriger
une requête et lequel serait intéressé par une information donnée. Les
gestionnaires des objets distribuées (CORBA, OLE, DSOM) fournissent une
transparence de localisation pour les systèmes orientées objet, routent
les messages sans que l'expéditeur sache l'emplacement de l'objet destinataire.
Les borkers automatiques (Publish et Subscribe, DDE, BMS, Tooltalk etc.)
en plus de calculer un programme approprié pour recevoir un message, mais
font suivre ce message, gèrent les erreurs qui apparaissent, et quand
cela est nécessaire retourne la réponse à celui qui l'a envoyé. Mais l'approche
plus sophistiquée des systèmes basées sur les agents vient des facilitators.
Les agents utilisant les ACL peuvent mieux exprimer leurs besoins et leurs
capacités. Pour gérer les incompatibilités d'écriture les facilitators
peuvent traduire un message d'un vocabulaire à l'autre. Pour cela ils
décomposent les messages en sous messages et les envoient aux différents
agents. Quand cela est nécessaire ils peuvent combiner plusieurs messages.
Pour avoir de telles capacités les facilitators actuels prennent un sérieux
avantage par rapport aux technologies de raisonnement automatique développés
en Intelligence Artificielle ou Bases de Données .
Beaucoup de sites web ont une approche généraliste de systèmes multi-agent
Par exemple : http://agents.umbc.edu/
est un site où l'on peut trouver toutes les informations nécessaires sur
les agents, et particulièrement les agents web. Précisément certaines
parties traitent de FIPA, KQML et on peut y trouver des articles plus
aux moins récents sur le sujet et obtenir des informations sur tout les
domaines liés aux agents.
On voudrait attirer attention sur un article recensé sur ce site à l'adresse
suivante : http://www.csee.umbc.edu/~jklabrou/publications/ieeeIntelligentSystems1999.pdf
Agent Communication Languages : The Current Landscape, par Yannis Labrou,
Tim Finin, et Yun Peng, University of Maryland, Baltimore County, 1999
Cet article fait un très bon résumé de la problématique de systèmes multi-agents
et plus particulièrement leur communication, on peut y trouver également
un peu de historique, de comparaisons entre langages différents (KQML
et FIPA ACL) les projections vers l'avenir des ACL, ainsi une description
relativement détaillée et présentée de façon très pédagogique des KIF,
KQML etc.
A l'adresse http://piano.stanford.edu/concur/language/
on trouve une description assez brève de langages de communication entre
les agents Dans le même registre l'article Software Agents écrit par Michael
R. Geneserth Logic Group Computer Science Departement Stanford University
et Steven P. Ketchpel Computer Science Departement Stanford University
présenté sur http://logic.stanford.edu/sharing/papers/agents.ps
traite très bien du sujet de communication en décrivant les piliers qui
nous sont connu : KQML, KIF etc.
Sur
le site http://www.timestocome.com/javaai/aicommunication.html
on trouve des informations supplémentaires sur les systèmes multi-agents,
mais aussi un certains nombre de liens vers quelques sites de référence
dans le domaine que nous allons présenter ici en partie.
Sur le site http://www.firstmonday.dk/issues/issue2_3/ch_123/
on trouve l'article de Björn Hernmans, Intelligent Software Agents on
the Internet où est présenté un inventaire des agents web, l'histoire,
la communication, leur perspectives, les logiciels commercialisés, l'architecture
à adopter etc. Ainsi qu'une bibliographie WEB très complète.
Le lien http://www.infoloom.com/gcaconfs/WEB/ts1273/tp1273.HTM
présente des renvois vers les documents consacrés au KIF, ACL, KQML, et
FIPA ACL
Pour d'autres informations sur les ACL : http://infoeng.ee.ic.ac.uk/~malikz/surprise2001/kt197/article2/main.html
LES ORGANISMES DE STANDARDISATION
Nous avons déjà cité le ARPA Knowladge Sharing Effort qui a participé
au développement des ACL, mais on pourrait également parler de FIPA (Foundation
for Intelligent Physical Agent) qui standardise et développe la technologie
basée sur les agents, son site web officiel se trouve à l'adresse http://www.fipa.org/
mais on retrouve les références et les articles sur cette organisation
sur la plupart des sites consacrées aux systèmes multi-agent.
En ce qui concerne le KSE on trouvera des informations dessus sur http://www-ksl.stanford.edu/knowlege-sharing/README.html
, ainsi qu'un recueil des articles et des liens consacrés au partage de
connaissances http://www-ksl.stanford.edu/knowledge-sharing/papers/index.html
KQML
Le KQML est de facto un standard dans les ACL, un langage et protocole
d'échange d'information et de connaissances. C'est en même temps un format
de messages et un protocole de redirection de celles-ci, on peut trouver
de l'informations à ce sujet sur http://www.cs.umbc.edu/kqml
, à voir également un article de James Mayfield, Yannis Labrou, Tim Finin,
Processings on the IJCAI Workshop on Intelligent Agents II : Agent Theories,
Architectures, and Language, Evaluation of KQML as an Agent Communication
Language (1996) sur http://citeseer.nj.nec.com/mayfield96evaluation.html
ou l'on peut également trouver tous les articles relatifs à cet article
et aussi globalement sur la question de KQML
KIF
Le KIF est un format syntaxique particulier semblable à LISP, basé sur
le calcul de prédicat de première ordre. On peut y définir les objets,
fonctions relations, règles etc., mais ce n'est pas un langage de programmation,
pour en savoir plus
http://www.cs.umbc.edu/kse/kif/ , http://logic.stanford.edu/kif/
, sur chacune de ses pages on peut trouver d'autre liens sur les articles
et projets relatifs à ce sujet
AUTRES LANGAGES ET PROTOCOLES
En plus de ce que l'on a pu dire sur les ACL on peut rajouter que FIPA
a développé sa propre spécification de ACL le FIPA ACL on peut trouver
la totalité des descriptions et de spécification de ce langage en version
2 sur le site de FIPA à l'adresse suivante : http://www.fipa.org/specs/fipa00003/OC00003A.html,
bien que cette version soir obsolète, le document fourni une bonne présentation
de ce langage.
Parmi les protocoles de communication entre le agents on remarque le SACP
(Simple Agent Communication Protocol), qui a pour but de permettre une
implémentation et compréhension rapide, et inclus toutes les fonctionnalités
classiques de ce types de protocoles (requêtes, messages etc.), tous les
langages de requêtes peuvent y être incorporés et cela va de SQL à KQML,
à visiter sur http://davidreilly.com/sacp/overview.html
En ce qui concerne les langages de contenu pour la communication entre
les agents on utilise souvent le XML et toutes ses dérivées et particulièrement
ses extensions tels que DAML ou OIL ou DAML+OIL, toutes les informations
OIL sont disponibles à l'adresse http://www.ontoknowledge.org/oil/
, les informations sur DAML sont disponibles sur le site officiel http://www.daml.org.
Sur ces deux sites sont disponibles des informations sur l'architecture,
la sémantique, l'ontologies et autres caractéristiques de ses langages,
ainsi que de nombreux liens sur les articles de recherches etc. par exemple
sur le site de DAML on trouve un article sur toutes les spécifications
de DAML+OIL sur http://www.daml.org/2001/03/reference.html
Dans un autre registre sur le site http://www.cs.ruu.nl/people/rogier/files/atal2000.pdf
on peut trouver un article sur la communication inter agent, Generaliased
Object-Oriented Concepts for Inter-Agent Communication, de Rogier M. van
Eijk, Franc S. de BOER, Wiebe van der Hoek et John-Jules CH. Meyer de
Utrecht University, Department of Comuter Science
APPLICTIONS COMMERCIALES
Parmi les applications commerciales, les ACL sont utilisés dans l'environnement
distribué, on constate également un grand nombre de projets web dans ce
domaine et particulièrement dans le secteur de commerce électronique ainsi
qu'un certain rapprochement avec les technologies objet par exemple le
site de jFIPA propose des solutions de communication entre les agents
basés sur la technologie Java http://www.jfipa.org
, un projet commercial CommerceNet est également développé par l'université
de Stanford, on peut trouver à l'adresse http://cit.stanford.edu/cit/commercenet.html
une description par Arthur M. Keller de l'architecture et plus généralement
de la technologie (multi-agent) qui est utilisée pour la partie catalogue
de ce projet.
Un autre document sur le même sujet se trouve sur http://www-db.stanford.edu/pub/keller/1994/cnet-cat-arch.pdf
toujours par Arthur M. Keller, mais aussi Michael R. Geneserth, Narinder
P. Singh, Mustafa A. Syed, mais l'information plus complete à ce sujet
est disponible sur http://www.commerce.net
Une autre vision de la communication entre les agents est disponible sur
le site http://www.webdevelopersjournal.com/articles/agent_communication.html
Les recherches dans le domaine des ACL se fait également par les entreprises
par exemple par Emorphia, sur le site http://www.emorphia.com/index.htm
Dans cette bibliographie nous avons essayé de présenter une introduction
générique du domaine des langages de communication entre les agents, en
suite nous avons présenté une bibliographique qui s'y réfère, en sachant
que quasiment chacun de ses sites comporte sa propre bibliographie qui
compléterait sans doute notre approche.
|
 |