460 likes | 617 Views
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é
E N D
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é • 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 d’objet -> 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… Partage de K Partage des intentions ?
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 => I I => 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’acte • Acte 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’allocutaire • Exemple: « 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 = Performatives • 5 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 Système 3 Système 2 KB en lang 1 KB en lang 3 KB en lang 2 KIF <-> traducteur lang 1 KIF <-> traducteur lang 3 KIF <-> traducteur lang 2 KIF KB en KIF BIBLIOTHÈQUE
Logiciel KIF • Plusieurs 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 externe • Le système Ontolingua (voir plus loin) de Stanford utilise KIF comme langage interne • Des 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 ontologie • L’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.
BD (une table) • 139 74.50 • 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 BD • prix(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 Exemple Ontologie des produits d’auto Ontologie des produits Ontologie des unités et Des mesures
Exemple 2 : Ontologie explicite fruit citrus apple pear orange lemon lime
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).
(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 “iest incertain surpmais croit que p est plausible que non p” – Uif i p • Cip “idésire que p” • Fp = préconditions de faisabilité • Re = effet rationnel sur l’environnement • Ex:tell( i,j, B i f ) = • fp[B i B i f Ù Ø B i ( Bif j B i f Ú Uif j B i f)] • re[B j B i f] ... • Problème: i veut informer j qu’il croit que f • Précondition: i croit qu’il croit que f et ne croit pas ou a des doutes que j croit qu’il croit f • Effets rationnels: j croit que i croit f Un message KQML
Quelques exemples (tell : sender Stock-server : content (price ibm 14) : receiver Joe : in-reply-to ibm-stock : language LPROLOG : ontology NYSE-TICKS) (ask-one : sender Joe : content (price ibm ? Price) : receiver stock-server : reply-with 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)
Insert, Uninsert Delete-one, Del-all, Undel Inform Tell, Untell Basic DB Broadcast Forward Network Ask-if Ask-one Ask-all Inform Basic Achieve, Unachieve Goal Request Eos Stream Query Performatives KQML Stream Facilitation Reply Broker-one Recom.-one Recruit-one Broker-all Recom.-all Recruit-all Cursor Promise Sream Eos Meta Standby Ready Next Rest, Discard Advertise Unadv. Deny Subscribe
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 Scène: A voudrait connaître la vérité sur l’action X que B détient dans sa BC 1- Connexion directe Ask-one , Ask-all Ask-one(X) B A Tell(X) Ask-if, Stream-all B A
Performatives de renseignement 2. A ne sait pas que X est dans B : Il faut passer par un facilitateur Broker (Le fac. soumet la req. à l’agent approprié et transmet la rép. à A) Broker(ask(X)) Advertise(ask(X)) F B A Tell(X) Ask(X) Recruit (Le fac. recruite un agent qui répond directement à A) Tell(X) F Advertise(ask(X)) B A Recruit(Ask(X)) Ask(X) Recommend (le facilitateur recommande un agent approprié à A) Recommand(ask(X)) F Advertise(ask(X)) B A Reply(B) Ask(X) Tell(X)
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 langage • Les 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 modale • La syntaxe est similaire à celle de KQML • La spécification fournie une description normative des protocoles d’interaction de haut-niveau.
Caractéristiques essentielles de FIPA ACL • Les primitives de gestion et de renseignement (register, broker, recruit, etc.) ne font pas partie de l’ACL FIPA • Des 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 ACL Exemple: Performative Inform <i, inform( j, f)> FP: B i fÙ Ø B i ( Bif j fÚ Uif j f)(i croit que f et i ne croit pas que j croit f ou il en a des doutes) RE: B j f (j croit que f) 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 identiques • La 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 …