Académique Documents
Professionnel Documents
Culture Documents
LA RECHERCHE SCIENTIFIQUE
DEPARTEMENT INFORMATIQUE
I
7. Le Contexte et l’explication 16
8. Représentation du Contexte, Graphes 18
Contextuels
3 Notion d’Agent 22
1. Introduction 24
2. Concept d’agent 24
2.1. Définition 24
2.2. Caractéristiques d’un agent 25
3. Typologie d’un agent 25
3.1. Agents Réactifs 25
3.2. Agents Cognitifs 26
3.3. Comparaison entre les agents 28
réactifs et les agents cognitifs
4. Les systèmes multi agents 28
4.1. Définition 28
4.2. Caractéristiques d’un système multi 29
agent
4.3. Les modèles d’un système multi 29
agents
4.3.1. Systèmes à tableau noir 30
4.3.2. Systèmes d’acteur 30
4.3.3. Systèmes distribués 31
5. Interaction dans les systèmes multi agents 31
5.1. Définition 31
5.2. Types d’interaction 31
5.2.1. Coordination 31
5.2.2. Coopération 31
5.2.3. Communication 32
5.2.3.a) Communication par envoi de 32
II
message
5.2.3.b) Communication par partage 32
d’information
5.2.3.c) Modèle hybride 33
5.3. Langages de communication 33
5.3.1. KQML 33
5.3.2. FIPA-ACL 34
5.3.3. Autres Langages 34
4 Analyse et Conception 35
1. Introduction 37
2. Méthodologie de développement 39
2.1. Analyse 40
2.1.1. Les tâches explicatives 40
2.1.2. Identification des agents 43
2.1.3. Identification des utilisateurs 43
2.1.4. Identification des interactions 44
2.1.5. Interactions entre les agents du 44
système
2.1.6. Organisation 44
2.2. Conception 45
3. Protocoles d’interaction du système 46
3.1. Protocole de validation 46
3.2. Protocole de construction 47
3.3. Protocole de génération 48
4. Architecture générale d’un agent 48
5. Classe d’agent 50
6. Diagrammes d’activités 52
6.1. Anque 52
III
6.2. Whow-Key/Whot-Key 53
6.3. Concex 53
6.4. Genex 54
7. Conclusion 54
5 Réalisation 55
1. Introduction 57
2. Outils de développement 57
2.1. Plate-forme JADE 57
2.2. Langage de programmation Java 57
2.3. Bibliothèque JPL 58
2.4. Langage de programmation logique, 58
Prolog
3. Les agents 59
3.a) Agent User 59
3.b) Agent Anque 60
3.c) Whow-Key/Whot-Key 63
3.d) Concex 65
4. Le prototype 67
4.1. Présentation 67
4.2. Etude de Cas 69
Conclusion Générale 75
Bibliographie 77
Table des Figures 79
IV
Dédicaces
Dédicaces
Dieu, merci
VI
Introduction
Introduction
L’explication est une tâche quotidiennement effectuée par les êtres humains qui
l’utilisent pour justifier certains de leurs actes, communiquer leur savoir, ou s’en
servent pour la prise de décision. Une tâche humaine, si habituelle, n’a pas manqué de
susciter l’intérêt des chercheurs en intelligence artificielle (IA) dont certains ont
même caractérisé l’IA de « la science de l’explication fournie par le système à son
utilisateur, dans le langage de ce dernier »
• l’explication du monde: dont l’aspect intéressant est de considérer que les systèmes
de résolution de problèmes, tels que les systèmes de diagnostic par exemple,
expliquent un ensemble de données. .
• l’explication des décisions: dont l’objectif est de permettre à des programmes,
spécialement des Systèmes Experts (SE) ou Systèmes à Base de Connaissances
(SBC) d’expliquer leur propre raisonnement.
Une explication doit permettre à l’utilisateur d’un système à base de connaissances
d’assimiler de nouvelles connaissances par rapport à celles qu’il a déjà. L’utilisateur
est donc un élément essentiel à considérer lors de la production d’une explication.
Pourtant, nombreux sont les systèmes à base de connaissances dotés de capacités
explicatives qui n’impliquent pas l’utilisateur dans la construction d’une explication.
Ceux-ci n’ont pu lui être d’un apport effectif. Il est donc indispensable que
l’utilisateur participe à l’élaboration d’une explication qui est alors vue comme un
processus coopératif dont le système et l’utilisateur sont les agents. Au cours de ce
processus, l’explication est progressivement affinée par l’ajout de connaissances de la
part des deux agents. Il faut donc que ceux-ci interagissent dans le même contexte.
L’importance du contexte était déjà reconnue dans les années 80 Cependant, à
l’époque, on ne savait pas comment le prendre en compte effectivement et, par
conséquent, les recherches sur la génération d’explications piétinaient. En effet, on a
vite compris qu’il ne suffisait pas d’ajouter des connaissances supplémentaires
(connaissances explicatives) à celles utilisées dans la tâche expliquée (connaissances
du domaine, connaissances sur l’utilisateur, connaissances sur la construction
VIII
Introduction
C’est ainsi que, quelques années plus tard, et dans le cadre du développement des
systèmes intelligents, successeurs des systèmes à base de connaissances, des
recherches débutaient sur la modélisation du contexte pour des applications de taille
réelle.
Ces études ont mis en évidence la nécessité, pour expliciter le contexte, de revoir la
représentation des connaissances et du raisonnement. L’objectif était donc d’arriver à
une représentation uniforme des éléments de connaissances, de raisonnement et de
contexte.
Un cadre conceptuel cohérent a été alors proposé, qui a mené au développement d’un
logiciel —les graphes contextuels—qui a permis de rendre possible cette
représentation uniforme des éléments de connaissances, de raisonnement et de
contexte .
Le travail présenté dans le présent manuel, qui nous a été proposé dans le cadre de
notre projet de fin d’études pour l’obtention du diplôme d’ingénieur d’état en
informatique, vise justement à prendre en compte effectivement le contexte lors de la
génération d’explications par un système à base de connaissances généalogiques en
utilisant les graphes contextuels.
IX
Chapitre 01
Notion d’Explication
Notion d’Explication
1. 1. Introduction :
Nous présentons donc ici un extrait de l’étude menée par le groupe λ-1 que nous
avons tiré de [Karsenty et al 96], reprise dans [Laraba, M.E.H. 07]:
Les membres du Groupe λ-1considèrent, et conformément donc à la terminologie
de Hempel, une explication comme un énoncé constitué de trois composants :
• l’explandum, ou information à expliquer, noté p,
• l’explanans, ou contenu explicatif, noté q,
• et l’explication qui constitue le lien entre p et q.
3
Notion d’Explication
4
Notion d’Explication
[Laraba, M.E.H. 07] relève que, comme toutes les tâches et les habitudes
humaines, l’explication a été parmi les intérêts des chercheurs en intelligence artificielle
dont certains ont même caractérisé l’I.A de « la science de l’explication fournie par le
système à son utilisateur, dans le langage de ce dernier ».
Cette notion a deux interprétations en intelligence artificielle :
5
Notion d’Explication
La première recherche dit que n’est explicable que ce qui est explicite. Cette
direction dit que : « pour que le domaine devienne accessible par le module explicatif, il
faut prendre en compte l’explication depuis le début de processus de conception des
systèmes a base de connaissance [Lemaire et al 91] [Jimenez 92] [Alexiset al 96]. »
6
Notion d’Explication
• Swartout avait déjà pensé à pallier à cette limite dans son système XPLAIN
[Swartout 83]. L’approche d’explication suivie dans XPLAIN faisait appel à la programmation
automatique: le programmeur automatique, l’écrivain, construisait à partir de la base de
connaissances un programme prêt à être exécuté. Ayant lui-même construit son
programme de raisonnement, il était donc naturellement apte à justifier son raisonnement.
Avec XPLAIN, un nouveau paradigme de Systèmes à Base de Connaissances (SBC)
explicatif était né. Cependant, le bas niveau de représentation des connaissances dans ces
systèmes (règles, frames…) ne pouvait permettre l’obtention d’une explication à un haut
niveau d’abstraction.
• Chandrasekaran [Chandrasekaran et al 89] suggérait alors de décomposer le
système à expliquer en une hiérarchie de tâches contenant des connaissances explicatives de
base aux niveaux d’abstraction appropriés, chacune des tâches apportant sa contribution à
l’explication du système global.
Les travaux en intelligence artificielle sur l’explication ont fortement diminué dans
les années 80-90, parce que l’étude de l’explication a rencontré plusieurs difficultés.
7
Notion d’Explication
Une explication qualifiée performante, doit avoir les qualités listées dans
[Swartout& Moore 1993] et [Roth-Berghofer 2004] :
Par conséquent, les explications doivent être basées sur la même connaissance que
le système emploie pour le raisonnement.
La coopération avec l’utilisateur était aussi très rare dans les systèmes développés,
mais certain systèmes prennent en charge cette approche pour construire une explication
performante, même ces systèmes n’ont pas arrivé à ce but car l’utilisateur doit interagir
avec le système par la saisie de commandes très complexes et parfois c’est difficile pour
des utilisateurs novices.
8
Chapitre 02
Notion de Contexte
Notion de Contexte
2.1. Introduction :
Le mot contexte est de plus en plus employé de nos jours. En 1997, seulement 5%
des pages web contenaient le mot contexte. En 2004, il y en avait 15 %, bien que ce mot
ne soit pas toujours bien employé. Depuis 10 ans, le nombre de pages web contenant ce
mot a crû exponentiellement.
2. 2. Contexte en psychologie :
Il existe plusieurs notions en psychologies qui sont considérées comme des notions
très proches à la notion du contexte, telles que les notions de Situation et du Champ
(par exemple dans la théorie WITKIN sur styles cognitifs2), la notion du Milieu (en
psychologie animale), la notion de Distracteur (dans la psychologie de perception),
1
http://en.wikipedia.org/wiki/Context_awareness
2
http://en.wikipedia.org/wiki/Cognitive_styles
11
Notion de Contexte
d’Arrière-plan (par exemple dans la théorie de GESTALT3). Toutes ces notions sont
considérées comme faisant partie du contexte stimulus immédiat.
Bastien, C. (1999) distingue deux points de vue opposés sur le rôle du contexte
dans la cognition humaine :
• Dans le second point de vue, le contexte a un rôle plus central en tant que
composante de la cognition en déterminant les conditions d'activation des connaissances
ainsi que les limites de validité des connaissances.
Ces deux points de vue opposés soulignent que le contexte peut avoir un caractère
interne ou externe :
D'une part, le contexte est un objet extérieur par rapport à un objet donné.
Ces deux points de vue opposés peuvent être conciliés dans un modèle prototype.
Ainsi, ils semblent converger à :
1- un point local qui est lié à l'environnement structurel. Le contexte est activé et
construit au cours d’interactions, car il devient pertinent.
2- une perspective globale, qui se réfère aux composants externes étant donné le
contexte.
3
La psychologie de la forme (Gestalt) est une théorie générale qui offre un cadre pour différentes
connaissances psychologiques et leur emploi. L'être humain y est compris comme un système ouvert ;
l'homme interagit activement avec son environnement.
12
Notion de Contexte
Définition :
Il n'y a pas une réelle définition consensuelle de la notion de contexte. Une telle
définition devrait dépendre de son contexte et de la discipline qui l’utilise.
4
Ensemble de d’outils indispensable pour l’extraction de l’information utile pour le traitement
statistique : http://fr.wikipedia.org/wiki/Corpus
13
Notion de Contexte
Une question associée à l'étude du contexte est la relation entre les contextes et leur
organisation. Les contextes sont liés les uns aux autres: Un contexte est défini dans un
autre contexte. Bien que les contextes sont liés les uns aux autres dans la définition de
5
Le raisonnement par cas ou Case Based Reasoning (CBR), copie ce comportement humain. Il résout
les problèmes en retrouvant des cas analogues dans sa base de connaissances et en les adaptant au
cas considéré. Cette technologie est apparue il y a une quinzaine d’années mais les travaux initiaux
sur le sujet remontent cependant aux expériences de Schank et Abelsonen 1977 à l’Université Yale.
14
Notion de Contexte
base, il y a des relations qui peuvent conduire à une gestion efficace du mouvement d'un
contexte à l'autre. Par exemple, en utilisant les règles du pont, vous pouvez localiser les
faits et le raisonnement à un contexte unique avant de passer à un autre.
Les connaissances externes sont des connaissances divers tels que la connaissance
connue de l’utilisateur mais laissée implicite selon le focus courant, la connaissance
inconnue de l’utilisateur (hors de ses compétences), la connaissance contextuelle d’autres
acteurs dans une équipe, etc.
15
Notion de Contexte
Les résultats de recherches montrent que le contexte a une dimension infinie, ce qui
implique qu'il est toujours lié à un autre contexte englobant, et 'il est difficile à le décrire
totalement.
Au début on distingue la partie du contexte qui concerne le problème à résoudre
(les connaissances contextuelles) des connaissances qui ne sont pas pertinentes (les
connaissances externes). Au cours du processus de la résolution du problème (le focus
d'attention), un sous-ensemble de connaissances contextuelles est mobilisé, situé, organisé
et structuré (le contexte procéduralisé) afin d'être utilisées dans la résolution.
On peut dire que le contexte est dynamique, cela veut dire, qu'il se change d'une
étape à une autre. Par ailleurs, il est noté que l’on ne peut connaître la frontière entre
connaissances contextuelles et externes qu’a posteriori.
16
Notion de Contexte
La recherche a arrivé à des études ne concernant que le contexte, son rôle dans les
communications (ex : LEGROS, PEMBROKE & ACUNA, 2003 ; LEGROS, 2002).
On cite par exemple, «La notion de contexte partagé dans les communications» de
[KARSENTY, 2003] où son habilitation à diriger des recherches ne porte que sur cette
notion, son importance, son rôle et ses apports à la compréhension des dialogues
explicatifs.
Aujourd’hui, la prise en compte du contexte est indispensable dans toutes études des
processus de communication. Le contexte fait partie intégrante aujourd’hui du concept
d’explication. [VERGNIOUX, 2003] Affirme : «Une explication est toujours
contextualisée»
17
Notion de Contexte
18
Notion de Contexte
Figure 1 : Exploitation des informations sur une page Web (tirée de Brézillion 2005). Les
carrés Correspondent aux actions, les cercles aux éléments contextuels : les grands cercles
aux nœuds contextuels et les petit cercles aux nœuds de recombinaison
Les tableaux 1 et 2 suivants, donnent une légende des symboles utilisés dans la
figure 1 précédente.
19
Notion de Contexte
Action Définition
A7 Fermer la fenêtre
(Les actions)
Cette figure représente l’ensemble des exploitations qui peuvent être faites d’une
page web qui est visitée (l’application est détaillée dans BREZILLLON & TIJUS,
2005), les le tableau suivant donne le contenu des symboles utilisés dans la figure 1. Le
contexte d’une action, comme l’action A6 dans cette figure, est décrit de manière statique
par un ensemble de connaissances contextuelles (CE14 et CE5 pour l’action A11) et un
ensemble d’éléments contextuels instanciés (CE1 avec la valeur <COURT>, CE2 avec
la valeur <EXPLORATION>, CE3 avec la valeur <OUI> et CE4 avec la valeur <OUI>
pour l’action A11). Notons qu’une action telle A7 apparaît plusieurs fois dans des
contextes différents dans le graphe contextuel.
20
Notion de Contexte
entre deux graphes contextuels ou deux pratiques. Les explications qui peuvent être
générées à partir de ces informations représentent aussi un challenge très au-delà de ce
que représentaient les explications dans les premiers systèmes experts. Un autre intérêt
des graphes contextuels provient du caractère transdisciplinaire des graphes contextuels.
Ce formalisme a prouvé son caractère opérationnel dans de nombreuses applications liées
à des domaines variés : la prise de décision RATP, la résolution de problèmes, le
diagnostic médical, la sécurité informatique, etc. Grâce à ce formalisme, la connaissance
est représentée d’une manière qui la rend explicable de manière efficace.
21
Chapitre 03
Notion d’Agent
Notion d’Agents
3.1. INTRODUCTION :
De nos jours, les systèmes multi-agents sont devenus une discipline d'ingénierie
dont le but est de procurer des solutions à des problèmes de la vie réelle. Ils sont
maintenant couramment utilisés en économie, en médecine, en ingénierie et dans de
nombreuses autres disciplines, et ils sont intégrés à de nombreuses applications courantes
de logiciels d'ordinateurs domestiques, aux jeux de stratégie traditionnels, comme les
échecs sur ordinateur et d'autres jeux vidéo.
Ces systèmes sont de plus en plus aptes à résoudre des problèmes très complexes
par des procédés relativement simples à mettre en œuvre et de simuler le fonctionnement
des organisations les plus complexes.
Les apports les plus importants des systèmes multi-agents sont résumés comme
suit :
3.2.1. Définition :
Plusieurs définitions ont été proposées pour la notion d’agent. D’après Ferber « Un
agent est une entité autonome, réelle ou abstraite, qui est capable d’agir sur elle-même et
sur son environnement, qui, dans un univers multi-agent, peut communiquer avec
d’autres agents, et dont le comportement est la conséquence de ses observations, de ses
connaissances et des interactions avec les autres agents » [TOUAF 05].
24
Notion d’Agents
Ou encore, « un agent est tout ce qui peut être compris comme percevant son
environnement à travers des senseurs et comme agissant sur cet environnement par
l'intermédiaire d'effecteurs » [THOMAS 05].
3.3.1. Agents réactifs : Les agents réactifs, sont des entités extrêmement simples
qui ne disposent pas presque d’une capacité de raisonnement, n’ayant pas de mémoire,
25
Notion d’Agents
sont de plus bas niveau, ils disposent d’un protocole et d’un langage de communication
réduit, et qui sont situés très localement. (Voir la figure 2.)
Les agents réactifs sont souvent qualifiés de « non-intelligents » qui perçoivent
l’environnement et sont capables d’agir sur celui-ci mais ils n’ont pas une représentation
symbolique de l’environnement ou des connaissances et ils ne possèdent pas de
croyances, pas de mécanisme d’envoi de messages. Leurs capacités répondent
uniquement au mode stimulus/action qui peut être considéré comme une forme de
communication.
3.3.2. Agents cognitifs : ils sont plus « intelligents ». Plus complexes, ils peuvent se
construire une représentation de l’environnement, ils possèdent une base de connaissances
et ils sont capables de raisonner, ils peuvent tenir compte de leur passé et ainsi anticiper
sur l’avenir pour planifier leurs actions. Ils peuvent aussi connaître les états des autres
agents.
26
Notion d’Agents
Leur structure fonctionnelle, comme l’illustre la figure 4, est axée autour de trois
fonctions principales qui sont la perception, la communication, la décision [TOUAF 05] :
27
Notion d’Agents
3.4.1. Définition :
Un système multi-agents est « un ensemble d’entités qui coordonnent leurs
connaissances, buts, expériences et plans pour agir ou résoudre des problèmes, incluant
le problème de la coordination inter-agent lui-même ». [TOUAF 05]
28
Notion d’Agents
réactifs (SMA réactifs) ou des organisations humaines quand les agents sont
cognitifs ». [MULLER 02]
il est possible, à un moment donné, d’associer une position dans E. Ces objets
sont passifs, c’est-à-dire qu’ils peuvent être perçus, créés, détruits et modifiés par les
agents.
Un ensemble A d’agents, qui sont des objets particuliers (A С O), lesquels
représentent les entités actives du système.
Un ensemble de relations R qui unissent des objets (et donc des agents) entre
eux.
Un ensemble d’opérations Op permettant aux agents de A de percevoir, produire
consommer, transformer et manipuler des objets de O.
Des opérateurs chargés de représenter l’application de ces opérations et la
réaction du monde à cette tentative de modification, que l’on appellera les lois de
l’univers.
29
Notion d’Agents
Les sources de connaissances (KS) : qui sont l’ensemble des agents du système ;
Tableau noir (blackboard) : contient une description de l’état de la résolution
sous formes d’entités appelées faits, hypothèses ou noeuds. Il sert à partager les données
entre les agents ;
Le mécanisme de contrôle : il gère les conflits d’accès où ressources contenues
dans le tableau noir entres les agents ;
3.4.3.2. Les systèmes d’acteurs : Ils sont des systèmes dont les connaissances et les
contrôles sont totalement distribués sur l’ensemble des acteurs, un acteur est un agent
actif, autonome et communiquant librement avec ses semblables pour se déléguer des
tâches et se transmettre des résultats (figure 5). Ces systèmes se caractérisent par :
Un traitement local qui veut dire qu’un agent ne peut manipuler que sa base de
connaissance locale et envoyer des messages aux autres agents qu’il connaît. De ce fait,
les connaissances des uns et des autres sont distribuées parmi les agents, qui effectuent
des tâches en parallèle et de manière indépendante.
La seule structure de contrôle dans se type de système est l’envoi de message.
30
Notion d’Agents
3.4.3.3. Les systèmes distribués : Les systèmes distribués sont composés d’agents
plus complexes que précédemment, dotés de capacités de raisonnement avancées.
Généralement, ces agents sont localisés sur des sites physiquement différents. Cela
implique la mise en œuvre de stratégies de coordinations très élaborées entres les agents.
Ces derniers doivent en effet être capables de planifier intelligemment leurs activités
locales en fonction de celles des autres.
31
Notion d’Agents
3.5.2.1. Coordination : Les résultats des travaux de certains agents (les solutions)
sont utiles pour les autres agents. Donc à un certain moment (temps) ils doivent
coordonner leurs taches. La coordination permet aux agents d’une part de traiter toutes les
tâches et d’autre part elle évite aux agents de refaire un travail qui a été fait par l’un des
agents. Elle est la colle qui lie les activités séparées des agents en un ensemble.
Il existe plusieurs modes de communications entres agents, parmi ces types on peut
citer [TOUAF 05] :
32
Notion d’Agents
La propriété essentielle des ces langages et qui les rend très utiles, c'est que le sens
de leurs signes est partagé par l’ensemble des agents
6
Une agence américaine pour la recherche militaire.
33
Notion d’Agents
3.5.3.3. Les autres langages : Il existe une multitude d’autres langages comme :
ARCOL (ARtimis Communication Language)
ICL (InterAgent Communication Language).
AOP (Agent OrientedProgramming).
MAC (Mobile Agent Communication).
34
Chapitre 04
Conception et Analyse
Conception et Analyse
4.1. Introduction :
Notre travail vise à montrer que la prise en compte explicite du contexte dans le
processus de génération d’explications, apporte un plus pour l’interlocuteur des systèmes
à base de connaissances au niveau de production des explications et le raisonnent
explicatif.
37
Conception et Analyse
Elément Définition
Contextuel
Action Définition
A1 Acquérir la requête
A2 Valider La requête
38
Conception et Analyse
39
Conception et Analyse
modèles d'organisations vont des modèles biologiques jusqu'aux modèles inspirés par les
lois sociales.
4.2.1. ANALYSE :
Les agents constituent les acteurs principaux de notre système. Pour identifier nos
agents nous devons discuter les tâches qui constituent le processus explicatif.
Notre système peut être décomposé en sept taches principales comme il est illustré
dans la figure7, chaque tâche a un rôle, des entrés et des sorties bien définies.
Nous présentons en bref chaque tâche et son rôle dans notre système explicatif.
La tâche Analque:
40
Conception et Analyse
La tâche Why-how-key:
La tâche Why-how-know:
41
Conception et Analyse
La tâche Why-not-key:
La tâche Why-not-know:
La tâche Consexp:
42
Conception et Analyse
la tâche Genexp:
Les SMA sont en effet mieux adaptés que d’autres techniques de modélisation à
générer cette sorte de phénomène émergent. En plus, avec la propriété dialogique de
ses agents, le SMA explicatif pourra interagir avec l’utilisateur, à un haut niveau
sémantique pour recevoir des requêtes et fournir des explications.
Chaque tâche précédemment citée peut être affectée à un agent, alors notre système
va être composé par l’ensemble d’agent suivant :
De plus, l’agent User, qui sera chargé de la communication directe avec l’utilisateur
par l’interface graphique. Autrement dit, c’est l’agent qui s’occupe de l’organisation du
dialogue avec l’utilisateur et le système.
43
Conception et Analyse
44
Conception et Analyse
4.2.1.6. L’ORGANISATION :
45
Conception et Analyse
4. 2.2. Conception :
La conception est une des parties importantes de notre projet, dans cette partie nous
affinons notre analyse en introduisant la structure opérationnelle des composantes de
notre système explicatif.
Dans ce qui suit, nous définirons :
L’architecture interne des agents.
Le comportement des agents;
46
Conception et Analyse
Puis l’agent Conex construit un texte explicatif initial et le transmet à l’agent Genex
47
Conception et Analyse
Une meilleure compréhension des besoins de chaque utilisateur et les agents qui
composent notre système explicatif nécessite des informations spécifiques au contexte.
Les connaissances contextuelles interviennent de façon implicite dans le processus
de génération de l’explication, ces connaissances sont élaborées au cours du raisonnement
explicatif. De plus, elles apparaissent à différents niveaux depuis la source de
connaissances nécessaires à la construction de l’explication jusqu'à la génération à
l’utilisateur final.
48
Conception et Analyse
Dans notre système, l’agent n’a pas besoin seulement d’expliciter le contexte mais
aussi le partager avec les autres agents qui coopèrent avec lui et le comprendre pour
générer une bonne explication.
Le but de l’architecture proposé par [Laraba2009] illustrer dans la figure 12 est de
permettre les agents qui composent notre système de raisonner sur le contexte et le
capturer, ainsi distribuer les connaissances contextuelles entre les agents.
Le composant linguistique :
Ce composant est chargé de faire l’analyse lexicale et syntaxique ainsi la
sémantique des requêtes de l’utilisateur vers le système, et aussi les requêtes interne du
système entre les agents qui le composent.
Le composant dialogique :
Ce composant est chargé de gérer le dialogue entre le système et l’utilisateur, et le
dialogue entre les agents qui composent notre système.
49
Conception et Analyse
Le composant de communication :
Ce composant est dédié à gérer les différents communications entre le système et
l’utilisateur, et entre les agents du système et les différents composants d’un agent.
Le composant cognitif :
Ce composant gère les différents types de connaissances d’un agent.
Le composant contexte :
Sous composant de capture du contexte:
Ce composant agit quand une nouvelle requête de l’utilisateur est reçue, pour
connaître les informations personnelles de l’utilisateur final, ses compétences, le lieu
d’intervention, l’heure ex…
Sous composant de raisonnement sur le contexte :
Créer le profil de l’utilisateur final selon les informations transmis par Sous
composant de capture du contexte, et transmet cette information au composant cognitif de
l’agent.
Une classe d'agent représente un agent ou un groupe d'agents pouvant jouer un rôle
ou avoir un comportement déterminé.
Une classe d'agent comporte :
• Description de la classe d'agent et des rôles
• Description de l'état interne
• Actions, méthodes et services fournis
• Messages échangés
Le diagramme de classes d’agents qui composent notre système est illustré dans la
figure 13.
50
Conception et Analyse
Nous allons donner plus de détails sur les classes d’agents dans le chapitre de
réalisation.
51
Conception et Analyse
52
Conception et Analyse
53
Conception et Analyse
4.7. CONCLUSION
Nous avons vu dans ce chapitre le cheminement que nous avons suivi pour
l’élaboration de notre prototype explicatif. La modélisation du raisonnement explicatif
par le formalisme des graphes contextuels, la structure du système et les différents
agents pourront intervenir et la manière dont ils coopèrent pour produire une explication.
Nous retrouvons dans notre modèle un ensemble d’agents, chaque agent est muni un
ensemble des modules pour bien accomplir sa tâche.
L’Agent Anque intercepte les requêtes des utilisateurs, il assure la validité
syntaxique et sémantique de ses requêtes puis détermine leurs types et les transmettre
aux agents Why-not-key ou Why-how-key suivant le type de la requête. Ces derniers
collectent les connaissances nécessaires pour la construction de l’explication. En suite,
vient le rôle de l’agent Concex qui construit le texte explicatif et le transmettre à l’agent
Genex qui génère le texte explicatif final aux utilisateurs.
La modélisation du contexte d’exécution du processus explicatif par le formalisme
des graphes contextuels nous a permis de mieux voir les conditions et les situations qui
54
Conception et Analyse
Dans le chapitre suivant nous verrons, entre autres, l’implémentation des agents
ainsi que l’implémentation des interactions ses agent, et les utilisateurs.
55
Chapitre 05
Réalisation
Réalisation
5.1. Introduction:
Après avoir vu, toutes les notions, les concepts ainsi que la conception que nous
venons de proposer, on arrive à la phase de réalisation. Là, où on doit présenter les outils,
le langage de programmation que nous avons jugés, pour leurs caractéristiques, à
répondre aux buts que nous avons fixés au début.
Les agents sont développés entièrement en Java, ce qui motive aussi notre
choix du langage.
Jade s’occupe de la gestion des agents depuis leurs naissances jusqu’à leurs
morts.
7
Centro Studi E Laboratori Telecomunicazioni, traduit par Centre d’Etude et Laboratoire de
Télécommunication :http://jade.cselt.it
57
Réalisation
Java est très riche, en matière de bibliothèques dont nous nous sommes servi,
par exemple : pour les interfaces graphiques, pour les expressions régulières…
Prolog est basé sur le calcul des prédicats du premier ordre ; cependant il est
restreint dans sa version initiale à n’accepter que les clauses de Horn. Une des
particularités de Prolog est que l'on peut construire une base de connaissances dans un
8
Java Runtime Machine : http://fr.wikipedia.org/wiki/Environnement_d%27ex%C3%A9cution_Java
9
Java Prolog Library : http://www.swi-prolog.org/packages/jpl/
10
http://fr.wikipedia.org/wiki/Java_Native_Interface
58
Réalisation
ordre indéterminé. Prolog peut ensuite résoudre des séries de problèmes logiques relatifs
à une telle base de connaissances
Dans ce qui suit, on va donner le prototype de chaque agent (tâche), ainsi que la
technologie pour qu’il puisse accomplir son rôle :
a. Agent User :
Il faut distinguer l’agent User de l’agent Anque, car User ne fait que la gestion de
l’interface graphique et libérer l’agent Anque de cette tâche, aussi pour simplifier le code
source des deux agents pour qu’il soit facile à gérer.
Cet agent, comme nous l’avons dit ci-dessus, est responsable du dialogue entre les
différents agents du système, et l’utilisateur, par l’interface graphique que nous verrons
après. C’est pour ça, que sa classe hérite d’une classe spéciale GuiAgent, qui contient
une méthode abstraite :
59
Réalisation
protectedvoidonGuiEvent(GuiEventge)
Dans le code de cette dernière, on doit traiter tous les types d’évènements que notre
système pourrait recevoir.
b. Agent Anque :
60
Réalisation
Les activités qui sont affectées à l’agent Anque, et qui les realise par sa tâche
Analquesont :
61
Réalisation
Tel que moh11, n’est pas encore défini dans la base de connaissances,
checkPerson(), le signale, et le système affiche le message :
» moh11.
Cette information existe déjà dans la base de connaissances, donc, par la fonction
verifyQuery(), le système affiche :
62
Réalisation
63
Réalisation
[mohamed,pere,pere,ismail]
[mohamed,pere,pere,ismail]
11
java.util.Hashtable
64
Réalisation
d. L’agent Concex:
C’est l’agent qui génère l’explication dans son format final.
If(Main.openPROLOG())
{
Query q2 = new Query(“pere(mohamed,V1),pere(V1,ismail)”);
If(q2.hasSolution())
{
65
Réalisation
//Traitement de solutions.
}
}
• match() : Cette méthode trouve, dans cette chaine de caractères, toutes les
variables utilisées dans la construction de l’ensemble de prédicats PROLOG.
Par exemple :
Pour ce faire, nous avons utilisé un concept de Compilation qu’est les expressions
régulières (Regex)12 :
1. Base de Connaissances :
Chaque base de connaissances, ce compose d’un ensemble de faits, et un ensemble
de règles.
homme(mohamed).
12
http://fr.wikipedia.org/wiki/Expression_rationnelle
66
Réalisation
femme(lamia).
Identifier les relations de base (parenté) entre les personnes déjà identifiées.
Par exemple :
pere(X,Y) :- parent(X,Y),homme(X).
mere(X,Y) :- parent(X,Y),femme(X).
grand_parent(X,Y) :- parent(X,Z),parent(Z,Y).
etat1([pourquoi|L]):-etat2(L).
etat2([X|L]):-etat3(L).
etat3([est|L]):-etat4(L).
…….
5.4. Le prototype :
5.4.1. Présentation :
Notre système ne comporte pas beaucoup d’interfaces graphiques, car la plupart du
traitement est dans le code. (voir la page suivante)
67
Réalisation
68
Réalisation
Puis, dans la figure 23, clique sur Lancer le système, pour avoir la fenêtre suivante :
69
Réalisation
1
4
6 3
5
6) Case à cocher, que son état détermine ce que le système attend de l’utilisateur :
a. Cochée : Information.
b. Décochée : Question.
70
Réalisation
71
Réalisation
72
Réalisation
73
Réalisation
74
Réalisation
75
CONCLUSION
GÉNÉRALE
Conclusion Générale
Notons néanmoins que notre travail peut être enrichi par des travaux futurs, et ce,
afin d’améliorer certains aspects qui restent à développer, particulièrement :
Développement d'un moteur de recherche pour apporter de la flexibilité au
processus de génération de l'explication.
Développement d’un module d’apprentissage des agents.
Application ces notions dans une base de connaissances assez riche.
76
Bibliographie
[Bastien,C.1999] Bastien « Does context modulate or underlie human knowledge? » In
Quelhas, A.C. & Péreira, F., Cognition and Context.
[Bazire, M. 03] Bazire, « Effets des composantes du contexte sur la compréhension. »
Mémoire de DEA: Université de Paris 8.
[Bazire, M. and Bazire et Brézillon « Understanding context before to use it » Modeling
Brézillon, P. 05] and Using Context (CONTEXT-05), A. Dey, B.Kokinov, D.Leake, R.Turner
(Eds.), Springer Verlag, LNCS 3554, pp. 29-40.
[Brézillon, P. 03] Brézillon «Context-based modeling of operators’ practices by contextual
graphs» Proceedings of HCP-2003, the 14th Mini-Euro Conference on
Human Centered Processes, R. Bisdorf (Ed.), Fonds National de la
Recherche, Luxembourg, pp. 129-137
[Brézillon, P. and Tijus, Brézillon et Tijus « Une représentation basée sur le contexte des
Ch.05] utilisateurs à travers leurs pratiques » . Proceedings of the EGC-2005
Workshop on "Modélisation de l'Utilisateur et Personnalisation"
[Brézillon, P. 05] Brézillon Patrick « Task-realization models in Contextual Graphs » In 5th
International and Interdisciplinary Conference on Modeling and Using Context,
Lectures Notes in Artificial Intelligence,
[Buchanan et al 84] BUCHANAN B.G. & SHORTLIFFE E.H «Rule-Based Expert
Systems: The MYCIN Experiments of the Stanford Heuristic
Programming Project». Addison-Wesley, Reading, Mass.
[Chandrasekaran et al. B. Chandrasekaran, M. C. Tanner et J. R. Josephson. « Explaining
89] Control Strategies in Problem Solving». In IEEE Expert (1989), pp 9-24.
[CHICOISNE 02] Guillaume CHICOISNE, « Dialogue entre agents naturels et agents
artificiels Une application aux communautés virtuelles » INPG, 2002
[FERB, 97] J.Ferber, « Les Systèmes Multi Agents: vers une intelligence Collective »,
1997.
[Karsenty L. , Brézillon Karsenty L. et Brézillon P. « Cooperative problem solving and
P 1995] explanation » International Journal of Expert Systems With Applications, 8(4):
445-462.
[Karsenty L & Brézillon Karsenty L. et Brézillon P. « Coopération homme-machine et explication.
P 1995] Revue Travail Humain » 1995, 58(4): 289-310.
[LARABA, M.E.H 06] Laraba mohamed EL habib , «A Dialogical Agent-based Framework for
Explaining the Results of QSIM Algorithm to the End-User, Qualitative
reasoning» workshop QR 2006, Hannover, USA.
[Laraba, M.E.H. , Laraba mohamed EL habib et Ziadi Sahnoun « a dialogical agent based
Sahnoun , Z 06] framework for explaining the results of QSIM algorithm to the End-
User»
Lire Laboratroy- Computing Sciences Departement Mentouri University Of
Constantine Algeria
[Laraba, M.E.H. 07] Laraba mohamed EL habib «Sur le Raisonnement Qualitatif: Une
Approche à base d’Agents Dialogiques pour l’Explication de la
Simulation Qualitative», Thèse de Doctorat, Université Mentouri de
Constantine, Algeria.
[MULLER 02] Jean-Pierre Müller, « Des systèmes autonomes aux SMA Interaction,
émergence et systèmes complexes » Université Montpellier II ,2002
[Naveiro R.M., Naveiro et Brézillon Souza «Contextual knowledge in design: the SisPro
Brézillon P. and Souza project »
F.R. 02]
[PASQUIER 05] Philippe Pasquier, « Aspects cognitifs des dialogues entre agents
artificiels L'approche par la cohérence cognitive » Université LAVAL août
77
2005
[PICA, 04] G. PICARD, « Méthodologie de développement de systèmes Multi-
Agents adaptatifs et conception de logiciels à fonctionnalité émergente.
», Thèse Doctorat, Université Paul Sabatier de Toulouse III, 2004.
[Pomerol J.-Ch. and Pomerol et Brézillon « About some relationships betweenn knowledge
Brézillon P. 01] and context. Modeling and Using Context (CONTEXT-01) » Lecture Notes
in Computer Science, Springer Verlag, pp. 461-464
[STRATULAT 02] Tiberiu STRATULAT, « Système d'agents normatifs conception et outils
logiques » Université de cæn ,13 décembre 2002
[THOMAS 05] Vincent THOMAS, « Proposition d’un formalisme pour la construction
automatique d’interactions dans les systèmes multi-agents réactifs »
Nancy1, 2005.
[Swartout 83] SWARTOUT W.R. « XPLAIN a System for Creating and Explaining
Expert Consulting Programs». Artificial Intelligence, 21(3), pp. 285-325.
[TOUAF 05] Samir TOUAF, « Diagnostic logique des systèmes complexes dynamiques
dans un contexte multi-agents » » l’Université Joseph Fourier 02 mars
2005
78
Table des figures
N° Figure Page
1 Exploitation des informations sur une page Web (tirée de Brézillion 2005) 19
2 Architecture un agent réactif 26
3 Architecture d’un agent cognitif 27
8 Diagramme d’organisation 45
19 Agent Anque 60
79
20b 61
22 Agent Concex 65
80