acl
DESCRIPTION
ACL. Roger Nkambou. Pourquoi la communication est-elle importante ? La COMMUNICATION est un élément important dans la coopération. Une société peut accomplir des tâches qu’auqu’un agent (individu) seul ne saurait faire. La diversité dans une société introduit l’hétérogéniété - PowerPoint PPT PresentationTRANSCRIPT
Pourquoi la communication est-elle importante ?
La COMMUNICATION est un élément important dans la coopération.
-Une société peut accomplir des tâches qu’auqu’un agent (individu) seul ne saurait faire.
-La diversité dans une société introduit l’hétérogéniété
-Les agents qui se communiquent n’ont besoin que de comprendre ou de parler un langage commun
Communication entre agents
-La communication inter-agent est fondamentale à la réalisation du paradigme agent, tout comme le développement du langage humain était la clé du développement de l’intelligence humaine et des sociétés.
-Pour échanger les informations et les connaissances, les agents utilisent des ACL (Agent Communication Language).
-Selon Genesereth (CACM, 1992), un agent logiciel = tout système utilisant un ACL pour l’échange de l’information.
Évolution ACL
?
Partage deK
Partage d’objet
Partage desintentions
-> Partage des objets, des appels de procédure et de SDD (CORBA, RPC, RMI, …)
-> Partage des connaissances (faits, règles, contraintes, procédures, …) KIF, Ontolinguia, KQML, FIPA, Aglets….
-> Partage des intentions (croyances, plans, buts, intentions) => Niveau intentionnel Théorie BDI-> Que peut-on partager d’autre ? Expériences, Stratégies…
Le niveau intentionnel: BDI, Acte de langage et ACL
- Les actes du langage = Description de niveau intentionnel d’un agent => croyances, désires, intentions et autres.une description intentionnelle
-Le modèle BDI permet de décrire le comportement d’un agent, y compris le comportement communicatif en tenant compte des états mentaux (B, D , et I).
-Les agents ont des « attitudes propositionnelles » qui sont des relations tertiaires impliquant:
- Un agent- Un contenu- Un ensemble fini d’attitudes: croire, avoir peur, espérer, se demander, accepter, …
Exemple : <a, fear, raining (Tnow)>
Le modèle BDI et la communication
B + D => II => A
Communication (1) Revéler à l’autre l’état de no croyances, désires et intentions (2) Essayer d’influencer l’état des croyances, désires et intentions de l’autre.
Noter la récursivité: Un agent a des croyances sur le monde (son environnment), sur les croyances des autres agents, sur les croyances des autres agents, sur les croyances qu’ont les autres agents sur lui ou sur ses croyances …
Critiques du BDI
- Est-il nécessaire d’avoir les 3 modalités (B, D et I) ?
- En d’autres termes, ces 3 modalités sont-elles -Suffisantes-Insuffisantes-En a-t-on vraiment besoin des 3 ?
–Il reste encore plusieurs questionnements sur l’utilité du BDI dans la pratique. Il y a donc un écart important entre la théorie et la pratique.
Théorie des actes de langage
-Théorie relative à l’usage du langage pour les actions de communication (Austin 1962)
-Toute communication est faite avec l’objectif de satisfaire un but ou une intention.
Ex: « il pleut! », « ferme la porte, s’il te plait .»
-3 types d’actes:- locutoire-Illocutoire-Perlocutoire.
Identification des actes de langage
Acte locutoire:Production d’une suite de signes selon les règles
syntaxiques d’un langage donné => mode de production de l’acteActe illocutoire: Acte accompli en produisant cette suite de signes dans un contexte donné, exprimant une intention => Intention du locuteur (ordre, conseille, …)Acte perlocutoire: Résultat d’un acte illocutoire. => Effet sur l’allocutaireExemple: « Ferme la porte »
-locution : qui parle ? à qui ? quelle porte ?-Illocution: le locuteur veut que l’allocutaire ferme la porte-Perlocution: L’allocutaire ferme la porte
Actes illocutoires
Acte de langage = Force illocutoire (composante intentionnelle) + contenu propositionnel.Actes illocutoires = Performatives5 classes de Performatives: Assertifs Directifs Commissifs Déclaratifs Expressifs.
Mise en œuvre dans les SMA
De nombres langages de communications entre agents (ACL) se réclament des actes de langage.Des standards se sont développés KQML (93, 97) FIPA-ACL (97, 99, 2000)
Knowledge Sharing Effort
• Initié par DARPA (Defense Advanced Research Projects Agency) en 1990•Sponsorisé par DARPA, NSF, AFOSR•Participation de plusieurs chercheurs universitaires et de plusieurs industries
• Objectif: Développer des techniques, méthodologies et outils de développement pour le partage et la réutilisation des connaissances.
• Le partage et la réutilisation des connaissances peuvent survenir aussi bien au moment de la conception qu’au moment de l’implémentation ou de l’exécution.
Partage de connaissances
-Le partage de connaissances nécessite une communication qui requiert un langage commun-Langage => Syntaxe + Sémantique + Pragmatique-Quelques composantes pouvant être utilisées indépendamment:
- KIF (Knowledge Interchange Format) => Syntaxe-Ontolingua: un langage pour la définition d’ontologies partageables => Semantique-KQML (Knowledge Query and Manipulation Language) Un langage la communication de haut-niveau => pragmatique
Syntaxe commune avec KIF
KIF permet de mettre en relation des systèmes hétérogènes (du point de vue base de connaissance) Il s’agit d’une version préfixée du calcul des prédicats du premier ordre avec quelques extensions: Codage de tuples Codage de procédures …
Exemple de code KIF:(forall ?x (=> (P ?x) (Q ?x)))(exists ?person (mother mary ?person))(=> (apple ?x) (red ?x))(<<= (father ?x ?y) (and (child ?x ?y) (male ?x))
Système 1
KB en lang 1
KIF <-> traducteur lang 1
Système 3
KB en lang 3
KIF <-> traducteur lang 3
Système 2
KB en lang 2
KIF <-> traducteur lang 2
KB en KIF
BIBLIOTHÈQUE
KIF
Logiciel KIFPlusieurs systèmes de raisonnement KIF en LIPS disponibles à Stanford (Ex: EPILOG)Le moteur de raisonnement de ABE (Agent Building Environment de IBM) utilise KIF comme langage externeLe système Ontolingua (voir plus loin) de Stanford utilise KIF comme langage interneDes traducteur existe pour plusieurs langages: Prolog, CLIPS …Il existe des interpreteurs et des analyseurs qui acceptent des chaînes KIF dans les objets C++ ou Java.
Questions - Défis
Définition d’un « mappage » KIF-XML (peut donner lieu à un outils plus intéressant pour l’interopérabilité de SBC).
Sémantique commune et partageable avec Ontolingua
Ontologie = Spécification des objets, des concepts et des relations dans un domaine particulier.Analogue à un schéma conceptuel de BD, Taxinomie de classe-sous-classe, …Ontolingua est un langage pour la construction, la publication et le partage d’ontologies. Il offre une interface Web Les ontologies peuvent être automatiquement traduites
dans d’autres langages de description de contenu comme KIF, Prolog, CLIPS …
Le langage offre des primitives pour la combinaison d’ontologies.
Sémantique commune et partageable avec Ontolingua
Les systèmes qui communiquent doivent partager une ontologieL’ontologie partagée peut être implicite ou explicite.Une ontologie implicite est généralement représentée par des procédures seulement.Une ontologie explicite est donnée par une représentation déclarative dans un langage de représentation de connaissance.
ExempleBD (une table)139 74.50140 77.60… …
Schema de la BD: Table Prix*Quantité: integer; cout: float
Conceptual Schema:Un schéma conceptuel spécifie le sens (la signification) des concepts
utilisés dans la BDprix(x, y) => Exist (x’, y’) [auto_part(x’) & part_no(x’) = x
& retail_price(x’, y’, Value-Inc) & magnitude(y’, US_dollars) = y].
=> Ontologie implicite
Ontologie des produits d’auto
Ontologie des unités etDes mesures
Ontologie des produits
Langage de representation de K = Logique + Ontology
Un formalisme de logique avec Une syntaxe pour les formules bien formées Un vocabulaire des symboles logiques (et, ou…) Des sémantiques pour l’interprétation des
symboles logiques.
+ une ontologie comprenant Un vocabulaire des symboles non logiques
(éléments du domaine) Une définition des symbole Des axiomes pour contraindre l’interprétation
des symboles primitifs.
Pragmatique commune avec KQML
KQML = langage et protocole de communication de haut-niveau et orienté message, indépendant de la syntaxe et de la sémantique (ontologie) du contenu.Il est aussi indépendant Du mécanisme de transport des messages
(ex: TCP/IP, SMTP, IIOP, HTTP …) Du protocole de haut niveau (ex: Contract Net
…)
Message KQML
Chaque message KQML représente un seul acte de langage (acte illocutoire) - Ex: ask, tell, achieve … - auquel sont associés une une sémantique (sémantique de la performative) et un protocole.3 niveaux dans un message KQML La performative Des informations utiles pour l’interprétation de
message (:ontology, :langage) et celles utiles pour le routage du message (:sender, :receiver, :reply-with …)
Le contenu du message (:content).
Un message KQML(tell :sender bhkAgent
:receiver fininBot:in-reply-to id7.24.97.45391:ontology ecbk12:language Prolog:content “price(ISBN3429459,24.95)”)
Sémantique du tell de KQML décrite avec FIPA-SL:Opérateurs du langage sémantique (FIPA-SL) :
-Bip “i (implicitement) croit (que) p” - Bif i p-Uip “i est incertain sur p mais croit que p est plausible que non p” – Uif i p-Cip “i désire que p”-Fp = préconditions de faisabilité-Re = effet rationnel sur l’environnement
Ex: tell( i,j, B i ) = fp [B i B i B i ( Bif j B i Uif j B i )] re [B j B i f] ...Problème: i veut informer j qu’il croit que Précondition: i croit qu’il croit que et ne croit pas ou a des doutes que j croit qu’il croit Effets rationnels: j croit que i croit
Quelques exemples(ask-one : sender Joe : content (price ibm ? Price) : receiver stock-server : reply-with ibm-stock : language LPROLOG : ontology NYSE-TICKS)
(tell
: sender Stock-server
: content (price ibm 14)
: receiver Joe
: in-reply-to ibm-stock
: language LPROLOG
: ontology NYSE-TICKS)(ask-all
: sender Stock-server
: content (ibm, (Price, Time))
: receiver Joe
: reply-with ibm-stock
: language LPROLOG
: ontology NYSE-TICKS)
Request
Promise
Meta
Reply
Query
Inform
Facilitation
Goal
NetworkBasic
Inform
DB
Cursor
Stream
Basic
Tell, Untell
Broadcast Forward
Achieve, Unachieve
Broker-oneRecom.-oneRecruit-oneBroker-allRecom.-allRecruit-all
AdvertiseUnadv.
DenySubscribe
SreamEos
StandbyReadyNextRest, Discard
EosStream
Ask-ifAsk-oneAsk-all
Insert, UninsertDelete-one, Del-all,Undel
PerformativesKQML
Services de renseignement (Facilitation services)
Les agents de renseignement Contiennent des méta-connaissances sur les autres
agents Fournissent des services de communication tels que:
La diffusion des messages et le « faire-suivre » L’appariement des demandes et des offres de service …
Des performatives dédiés à ces agents: Advertise, broker, recruit, recommend, forward,
broadcast …
Les agents de renseignement peuvent être intelligents ou non Ceux qui sont intelligents utiliseront les connaissances du
domaine pour l’appariement des offres et des demandes de service
Sémantique de quelques performatives: Requête simple
A B
A B
Ask-one , Ask-all
Ask-if, Stream-all
Ask-one(X)
Tell(X)
Scène: A voudrait connaître la vérité sur l’action X que B détient dans sa BC1- Connexion directe
Performatives de renseignement
A F B
A F B
A F B
Broker (Le fac. soumet la req. à l’agent approprié et transmet la rép. à A)
Recruit (Le fac. recruite un agent qui répond directement à A)
Recommend
2. A ne sait pas que X est dans B : Il faut passer par un facilitateur
Broker(ask(X))
Tell(X)
Advertise(ask(X))
Ask(X)
Advertise(ask(X))
Ask(X)Recruit(Ask(X))
Tell(X)
Recommand(ask(X))
Reply(B)
Advertise(ask(X))
Ask(X)
Tell(X)
(le facilitateur recommande un agent approprié à A)
Extensibilité
KQML peut être étendu : Ajout de nouvelles performatives Ajouts de nouveaux paramètres
(attributs) Création de nouvelles ontologies
ACL FIPA
KQML = Premier essai de standardisation d’un ACL mais il n’offre pas d’infrastructure pour la gestion des agents.En 1996, création de la FIPA (Foundation for Intelligent Physical Agents), une association à but non lucratif regroupant: Universités et instituts de recherche + Entreprises: Alcatel, BT, DT, FT, Hitatchi,
Hewlett Packard, IBM, Intel, Lucent, NEC, Nortel, Siemens etc.
Mode de travail de la FIPA
Travaux annuels sur les spécifications. Première spécification FIPA97 (http://drogo.cselt.stet.it/fipa)FIPA97 compremait 7 comités techniques (TCs) TC1: Agent Management TC2: Agent Communication Language TC3: Agent/Software Interaction TC4-TC7: Specification of Applications
Spec actuelle: FIPA2000
TC2: FIPA ACL
Basé sur des actes de langageLes messages sont des actions de communication (Communicative action (CA))Les actes de communication sont décrits sous forme narrative et sous forme de sémantiques formelles basées sur la logique modaleLa syntaxe est similaire à celle de KQMLLa spécification fournie une description normative des protocoles d’interaction de haut-niveau.
Caractéristiques essentielles de FIPA ACLLes primitives de gestion et de renseignement (register, broker, recruit, etc.) ne font pas partie de l’ACL FIPADes primitives peuvent être définies par composition de primitives de base.Utilise un langage puissant pour définir les états des agents (le langage SL (Semantique Language))Les sématiques sont basés sur les attitudes mentales (croyance, intention etc.)Le sens des primitives est donné en terme de préconditions de faisabilité (Feasibility Preconditions (FP)) et d’effet rationnel (Rational Effect (RE)).
Catégorie de performatives FIPA
Information (contenu: proposition) Query_if, query_ref, sunscribe, inform, inform_if,
inform_ref, confirm, disconfirm, not_understood
Distribution de tâches (contenu: action) Request, request_whenever, cancel, agree,
refuse, failure
Négociation (contenu: action et proposition) Cfp (Call for proposal), propose,
accept_proposal, reject_proposal
Sémantique et FIPA ACLExemple: Performative Inform<i, inform( j, )>
FP: B i B i ( Bif j Uif j f) (i croit que et i ne croit pas que j croit ou il en a des doutes)RE: B j j croit que
Exemple: L’agent i informe l’agent j qu’il (est vrai que) va pleuvoir aujourd’hui:
(inform:sender i:receiver j:content "weather(today,raining)"
:language Prolog
:ontology weather42).
Sémantique et FIPA ACL L’agent i demande à j de l’informer si Lannion est en Normandie. (request
:sender i:receiver j:content(inform-if
:sender j:receiver i:content "in( lannion, normandie)":language Prolog):language FIPA-SL)
A l’agent j de répondre que non: (inform:sender j:receiver i
:content"\+ in( lannion, normandie )":language Prolog)
Comparaison de Tell(KQML) et Inform(FIPA ACL)
Les deux messages sont syntaxiquement identiquesLa différence est uniquement au niveau de la sémantique et ce à 2 niveaux: La façon de décrire la primitive. Ex: pre-,
post- pour les conditions dans KQML et FP et RE pour FIPA ACL
Langage différent pour la description des attitudes propositionelles (mentales). Ex: les opérateurs bel et B (resp.) de KQML et de FIPA ACL n’ont pas la même signification.
Sémantique de Tell (KQML)TELL(A,B,X)
A informe B qu’il (A) croit que X est vrai (pour lui) bel(A,X) Pre(A): bel(A,X) know(A,want(B,know(B,S))) where S
may be bel(B,X) or NOT(bel(B,X)) Pre(B): intend(B,know(B,S)) Post(A): know(A,know(B,bel(A,X))) Post(B): know(B,bel(A,X)) Completion: know(B,bel(A,X))
La condition de complétion et les post-conditions doivent s’apparier à moins qu’un SORRY ou un ERROR soit émis (exception) pour indiquer que B ne peut traiter proprement ce message.
Méthodologie de développement
4 phases pour le développement de SMA: Collecter et construire les ontologies nécessaires
Utiliser les standard, les ontotologies publiées si possible Développer et publier de nouvelles composantes au besoin Utiliser les outils commun (Ex: Ontologuia, Zeus Onto. Edit)
Choisir un langage de représentation commun Exemple: KIF
Utiliser un ACL (ex: KQML) comme langage de communication Au besoin, l’étendre avec de nouvelles performatives et de
nouveaux protocoles Identifier et définir des protocoles de haut-niveau
Ex: pour la négociation, pour l’achat, pour le cataloguage …