Title: ACL
1ACL
- Roger Nkambou
- Daniel Dubois
2- 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 quauquun
agent (individu) seul ne saurait faire. - La diversité dans une société introduit
lhétérogéniété - Les agents qui se communiquent nont besoin que
de comprendre ou de parler un langage commun
3Communication 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 lintelligence 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
linformation.
4Évolution ACL
Partage dobjet
-gt Partage des objets, des appels de procédure
et de SDD (CORBA, RPC, RMI, ) -gt Partage des
connaissances (faits, règles, contraintes,
procédures, ) KIF, Ontolinguia, KQML, FIPA,
Aglets. -gt Partage des intentions (croyances,
plans, buts, intentions) gt Niveau
intentionnel Théorie BDI -gt Que peut-on
partager dautre ? Expériences, Stratégies
Partage de K
Partage des intentions
?
5Le niveau intentionnel BDI, Acte de langage et
ACL
- - Les actes du langage Description de niveau
intentionnel dun agent gt croyances, désires,
intentions et autres. - une description intentionnelle
- Le modèle BDI permet de décrire le comportement
dun 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 dattitudes croire, avoir
peur, espérer, se demander, accepter, - Exemple lta, fear, raining (Tnow)gt
-
6Le modèle BDI et la communication
B D gt I I gt A (action) Communication ?
(1) Revéler à lautre létat de nos croyances,
désires et intentions (2) Essayer
dinfluencer létat des croyances, désires et
intentions de lautre. Noter la récursivité
Un agent a des croyances sur le monde (son
environnment), sur les croyances des autres
agents, sur les croyances quont les autres
agents sur lui ou sur ses croyances
7Critiques du BDI
- Est-il nécessaire davoir les 3 modalités (B, D
et I) ? - En dautres termes, ces 3 modalités sont-elles
- Suffisantes
- Insuffisantes
- En a-t-on vraiment besoin des 3 ?
- Il reste encore plusieurs questionnements sur
lutilité du BDI dans la pratique. Il y a donc un
écart important entre la théorie et la pratique.
8Théorie des actes de langage
- Théorie relative à lusage du langage pour les
actions de communication (Austin 1962) - -Toute communication est faite avec lobjectif de
satisfaire un but ou une intention. - Ex il pleut! , ferme la porte, sil te
plait . - 3 types dactes
- locutoire
- Illocutoire
- Perlocutoire.
9Identification des actes de langage
- Acte locutoire
- Production dune suite de signes selon les
règles - syntaxiques dun langage donné
- gt mode de production de lacte
- Acte illocutoire
- Acte accompli en produisant cette
suite de signes dans - un contexte donné, exprimant une
intention - gt Intention du locuteur (ordre,
conseille, ) - Acte perlocutoire
- Résultat dun acte illocutoire.
- gt Effet sur lallocutaire
- Exemple Ferme la porte
- locution qui parle ? à qui ? quelle porte ?
- Illocution le locuteur veut que lallocutaire
ferme la porte - Perlocution Lallocutaire ferme la porte
10Actes illocutoires
- Acte de langage Force illocutoire (composante
intentionnelle) contenu propositionnel. - Actes illocutoires Performatives
- 5 classes de Performatives
- Assertifs
- Directifs
- Commissifs
- Déclaratifs
- Expressifs.
11Mise 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)
12Knowledge 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 quau moment de
limplémentation ou de lexécution.
13Partage de connaissances
- Le partage de connaissances nécessite une
communication qui - requiert un langage commun
- Langage gt Syntaxe Sémantique Pragmatique
- Quelques composantes pouvant être utilisées
indépendamment - KIF (Knowledge Interchange Format) gt Syntaxe
- Ontolingua un langage pour la définition
dontologies - partageables gt Semantique
- KQML (Knowledge Query and Manipulation Language)
- Un langage pour la communication de
haut-niveau gt pragmatique
14Syntaxe commune avec KIF
- KIF permet de mettre en relation des systèmes
hétérogènes (du point de vue base de
connaissance) - Il sagit dune 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 (gt (P ?x) (Q ?x)))
- (exists ?person (mother mary ?person))
- (gt (apple ?x) (red ?x))
- (ltlt (father ?x ?y) (and (child ?x ?y) (male ?x))
15KIF
KB en KIF
BIBLIOTHÈQUE
16Logiciel 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.
17Questions - Défis
- Définition dun mappage KIF-XML (peut donner
lieu à un outils plus intéressant pour
linteropérabilité de SBC).
18Sé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 dontologies. - Il offre une interface Web
- Les ontologies peuvent être automatiquement
traduites dans dautres langages de description
de contenu comme KIF, Prolog, CLIPS - Le langage offre des primitives pour la
combinaison dontologies.
19Sémantique commune et partageable avec Ontolingua
- Les systèmes qui communiquent doivent partager
une ontologie - Lontologie 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.
20Exemple
- 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) gt
- Exist (x, y) auto_part(x)
- part_no(x) x
- retail_price(x, y,
Value-Inc) - magnitude(y, US_dollars) y.
- gt Ontologie implicite
Ontologie des produits dauto
Ontologie des produits
Ontologie des unités et Des mesures
21Exemple 2 Ontologie explicite
fruit
citrus
pear
apple
orange
lemon
lime
22Langage 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 linterpré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 linterprétation des
symboles primitifs.
23Pragmatique 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 )
24Message 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 linterprétation de
message (ontology, langage) et celles utiles
pour le routage du message (sender, receiver,
reply-with ) - Le contenu du message (content).
25Un 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 lenvironnement
- 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 quil croit que f
- Précondition i croit quil croit que f et ne
croit pas ou a des doutes que j croit quil croit
f
26Quelques 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)
27Inform
Insert, Uninsert Delete-one, Del-all, Undel
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
Promise
Cursor
Sream Eos
Meta
Standby Ready Next Rest, Discard
Advertise Unadv.
Deny Subscribe
28Services 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
- Lappariement 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 lappariement des
offres et des demandes de service
29Sémantique de quelques performatives Requête
simple
Scène A voudrait connaître la vérité sur
laction 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
30Performatives de renseignement
2. A ne sait pas que X est dans B Il faut
passer par un facilitateur
Broker (Le fac. soumet la req. à lagent
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
B
Advertise(ask(X))
A
Recruit(Ask(X))
Ask(X)
Recommend
(le facilitateur recommande un agent approprié à
A)
Recommand(ask(X))
F
B
Advertise(ask(X))
A
Reply(B)
Ask(X)
Tell(X)
31Extensibilité
- KQML peut être étendu
- Ajout de nouvelles performatives
- Ajouts de nouveaux paramètres (attributs)
- Création de nouvelles ontologies
32ACL FIPA
- KQML Premier essai de standardisation dun ACL
mais il noffre pas dinfrastructure 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.
33Mode 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
34TC2 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 dinteraction de
haut-niveau.
35Caractéristiques essentielles de FIPA ACL
- Les primitives de gestion et de renseignement
(register, broker, recruit, etc.) ne font pas
partie de lACL 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 deffet rationnel
(Rational Effect (RE)).
36Caté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_when, request_whenever, cancel,
agree, refuse, failure - Négociation (contenu action et proposition)
- Cfp (Call for proposal), propose,
accept_proposal, reject_proposal
37FIPA-ACL Les 20 performatives
38Sémantique et FIPA ACL
- Exemple Performative Inform
- lti, inform( j, f)gt
- 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 Lagent i informe lagent j quil (est
vrai que) va pleuvoir aujourdhui - (inform
- sender i
- receiver j
- content "weather(today,raining)"
- language Prolog
- ontology weather42).
39Sémantique et FIPA ACL
- Lagent i demande à j de linformer 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 lagent j de répondre que non
- (inform
- sender j
- receiver i
- content"\ in( lannion, normandie )"
- language Prolog)
40Sémantique et FIPA ACL
- Une requête de lagent facilator1 a lagent
database-agent1. - (query-ref
- sender
- (agent-identifier
- name facilitator1)
- receiver
- (agent-identifier
- name database-agent1)
- language FIPA-KIF
- ontology ec-ontology
- content
- (kappa (?make ?door ?price)
- (and (car ?car) (make ?car ?make)
- (doors ?car ?doors) (price ?car ?price))))
- Réponse de database-agent1.
- (inform
- sender
- (agent-identifier
- name database-agent1)
- receiver
- (agent-identifier
- name facilitator1)
- language FIPA-KIF
- ontology ec-ontology
- content
- ( (kappa (?make ?door ?price)
- (and (car ?car) (make ?car ?make)
- (doors ?car ?doors) (price ?car ?price)))
- '((Mercedes 4 100,000) (Honda 2 20,000)
(Toyota 4 25,000))))
41Comparaison 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 nont pas la même signification.
42Sémantique de Tell (KQML)
- TELL(A,B,X)
- A informe B quil (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 sapparier à moins quun SORRY ou un
ERROR soit émis (exception) pour indiquer que B
ne peut traiter proprement ce message.
43Mé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 lachat, pour le
catalogage