Un modèle d`agent sémantique. Application aux communautés

Transcription

Un modèle d`agent sémantique. Application aux communautés
N O D ’ ORDRE 2010-ISAL-9999
A NNÉE 2010
T HÈSE
UN
MODÈLE D ’ AGENT SÉMANTIQUE .
A P P L I C AT I O N
AU X
C O M M U N AU T É S
VIRTUELLES DE CONNAISSANCES .
Présentée devant :
L’Institut National des Sciences Appliquées de Lyon
Pour obtenir :
Le grade de docteur
Spécialité :
Informatique
Formation doctorale :
Informatique
École doctorale :
Infomaths
Par :
Julien S UBERCAZE
S OUTENANCE
DEVANT LE JURY SUIVANT
:
Olivier B OISSIER, Professeur des universités, ENS Mines de Saint-Etienne . . . . . . . . . . . . . . . . . . . Rapporteur
Fabien G ANDON, Chargé de recherche HDR, INRIA Sophia-Antipolis . . . . . . . . . . . . . . . . . . . . . . . . . Rapporteur
Pierre M ARET, Professeur des Universités, Université de Lyon . . . . . . . . . . . . . . . . . . . . . . . . Directeur de thèse
Jacques C ALMET, Professeur des Universités, Université de Karlsruhe . . . . . . . . . . . . . . . . . . . . . . Examinateur
Christo E L M ORR, Professeur des Universités, York University . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examinateur
Bernard E SPINASSE, Professeur des Universités, Université d’Aix Marseille . . . . . . . . . . . . . . . . . Examinateur
Frédérique L AFOREST, Mcf. HDR, Université de Lyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examinateur
Laboratoire d’InfoRmatique en Image et Systèmes d’information
À Loane
Avant-propos
Remerciements
En premier lieu je tiens à remercier Pierre qui a su me diriger tout au long de cette
thèse. De Karlsruhe à Lyon en passant par de nombreux autres endroits, cette thèse aura
été un voyage agréable en ta compagnie. C’est avec un très grand plaisir que j’ai travaillé
à tes côtés.
Une mention particulière à Romain, pour ces années de partage de bureau et de
soirées. Je tiens aussi à remercier Adrien et Johan pour ces séminaires en équipe, aussi
intéressant scientifiquement que personellement.
Je remercie Christo pour son accueil chaleureux et pour nos discussions passionnantes autour d’un capuccino second cup ou d’une andouillette lyonnaise. Je souhaite
remercier Jacques Calmet pour m’avoir fait découvrir le monde de la recherche. Je remercie aussi Pravin et toute l’équipe du Telemedecine group de l’université de Twente
pour cette collaboration enrichissante. Je n’oublie pas non plus tous les gens avec qui j’ai
eu l’occasion de travailler tout au long de cette thèse, notamment tous mes collègues du
départment informatique de l’UJM et du LaHC. Je remercie aussi les rapporteurs pour
les critiques constructives et les améliorations du manuscrit.
Je pense aussi bien évidemment à ma famille, que je n’ai pas eu l’occasion de voir
aussi souvent que je l’aurais souhaité pendant ces années de thèse. A tous mes amis,
François (×2), Marc-Antoine, Yoann-Nicolas, Cédric et tous les autres, pour ces soirées
lyonnaises, parisiennes ou bretonnes.
Je remercie aussi Dunhill, les cafetières Krups, Yves Simon, Boris Vian, les Doors et
Magma. Leur soutien indéfectible m’a permis de mener à terme cette rédaction. Merci
aussi aux nombreux pots de thèses du LIRIS ainsi qu’au ministère de l’enseignement
supérieur et de la recherche pour son soutien financier.
Pour conclure, un très grand merci à Loane pour m’avoir subi et soutenu pendant
toute la rédaction de ce manuscrit.
6
Résumé
gestion des connaissances regroupe de nombreuses techniques visant à identifier,
transmettre, créer, représenter, organiser les connaissances au sein d’une organisation. L’avènement des supports numériques et de l’informatique a très largement
contribué à l’essor de cette discipline. Les supports numériques permettent comme tous
les supports classiques (écriture, imprimerie) la copie et la transmission de l’information,
mais la révolution entraînée par ces supports est dûe tout d’abord au faible espace de
stockage qu’ils nécessitent, et enfin surtout par la possibilité de traitement automatique
des informations qu’ils contiennent. Suite à l’avènement de l’informatique dans les
organisations au cours des années 70, puis plus largement dans les années 80, s’est
posé le problème de comment gérer, organiser et transmettre toutes les informations
qui étaient désormais disponibles numériquement et sur lesquelles les machines étaient
capables d’effectuer des traitements. C’est le début de la gestion des connaissances au
sens moderne du terme.
L
A
La gestion des connaissances est une discipline à la frontières de multiples domaines
tels que les sciences sociales, les sciences cognitives, l’informatique et les sciences et
technologies de l’information. Dans le cadre de cette thèse, notre domaine d’étude
se restreint à l’approche mécaniste de la gestion des connaissances, qui considère la
connaissance comme étant un élément qui peut être traité automatiquement par une
unité de calcul, donc de manière mécanique.
Les outils de gestion des connaissances ont longtemps suivi une approche centralisée,
comparable à celle de l’informatique. En quelques décennies, l’ordinateur personnel est
venu compléter les mainframes et autres puissants serveurs, sans toutefois les remplacer
totalement ; de la même manière, la gestion décentralisée des connaissances est venue
contrebalancer l’hégémonie des approches centralisées.
Les travaux récents dans le domaine la gestion décentralisée des connaissances basée
sur le paradigme agent ont posé les jalons d’une nouvelle branche de la gestion des
connaissances, dont les spécificités notables, par rapport à l’approche centralisée, sont la
prise en compte de la nature distribuée et de l’aspect social de la connaissance au sein
des organisations. C’est sur ce paradigme multi-agent que se baseront nos travaux.
Dans cette thèse, nous allons tout d’abord analyser les fondements théoriques de la
gestion des connaissances, en analysant les différentes définitions de la connaissance
qui y sont employées. Nous montrons que les définitions de la connaissance qui soustendent les systèmes de gestion de connaissances, centralisés comme décentralisés ne
sont pas compatibles avec une approche mécaniste de la gestion des connaissances.
Pour résoudre ce problème, nous proposons de nous baser sur une définition de la
connaissance issue du domaine de l’épistémologie, qui au-delà d’un cadre formel plus
strict, permet d’introduire la notion de connaissance empirique au sein des agents.
7
Ensuite nous mettons en application cette définition de la connaissance au sein d’une
approche multi-agent en déterminant les composants requis par les agents pour supporter cette représentation. La difficulté réside dans la définition du modèle d’agent qui
devra supporter les deux types de connaissances, empiriques et justifiables. A cette fin,
nous proposons une représentation des connaissances basée sur la logique en tirant parti
des avancées dans le domaine du web sémantique. Les standards du web sémantique
OWL-DL et SWRL possèdent de solides fondements logiques et nous montrons qu’ils
sont parfaitement adaptés à nos besoins de représentation. OWL-DL supporte des raisonnements en monde ouvert qui sont plus en phase avec les connaissances humaines
et nous utilisons le langage de règles SWRL qui permet de manipuler des concepts OWL
et nous permettra d’exprimer les connaissances empiriques.
Nous définissons le modèle d’agent et présentons une implémentation que nous illustrons au travers d’exemples. Afin d’illustrer notre approche, nous utilisons ce modèle
pour y intégrer un mécanisme de transmission des connaissances. Nous nous plaçons
pour cela dans un contexte de partage des connaissances que sont les VKC ou communautés virtuelles de connnaissances. Notre proposition se situe donc à la frontière de
trois domaines que sont la gestion des connaissances, les systèmes multi-agents et le
web sémantique.
8
Notes
Table des matières
Avant-propos
5
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Table des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1
Introduction
17
2
Scénarios motivants
21
3
4
5
2.1
Communautés virtuelles de connaissances . . . . . . . . . . . . . . . . .
25
2.2
Scénario 1 : Assistants personnels . . . . . . . . . . . . . . . . . . . . . . .
31
2.3
Scénario 2 : Communautés virtuelles mobiles . . . . . . . . . . . . . . . .
39
2.4
Scénario 3 : Projet DRPI . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
2.5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
Etat de l’art
59
3.1
Connaissances et gestion des connaissances . . . . . . . . . . . . . . . . .
61
3.2
Représentation des connaissances et Web Sémantique . . . . . . . . . . .
71
3.3
Agents et Systèmes multi-agents . . . . . . . . . . . . . . . . . . . . . . .
84
3.4
Analyse et mise en perspective . . . . . . . . . . . . . . . . . . . . . . . . 122
3.5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Un modèle d’agents sémantiques
135
4.1
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.2
Programmation des agents . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.3
Structure de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.4
Représentation des connaissances empiriques . . . . . . . . . . . . . . . . 148
4.5
Exécution d’un scénario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Communautés Virtuelles de Connaissances à base d’agents
5.1
155
Conception de l’ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
10
6
7
A
TABLE DES MATIÈRES
5.2
Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.3
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Implémentation
175
6.1
Choix techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
6.2
Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6.3
Exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.4
Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.5
Base de connaissances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.6
Conclusion et discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Conclusion
193
7.1
Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.2
Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Annexe : Ontologie
199
A.1 Ontologie sous forme d’expression . . . . . . . . . . . . . . . . . . . . . . 201
A.2 Ontologie au format N3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
B
Annexe : Langages de communication agents
Langages de communication agents
209
B.1 Langages de programmation agents . . . . . . . . . . . . . . . . . . . . . 211
C
Annexe : Liste des publications
Bibliographie
213
231
Table des figures
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
Diagramme de classe simplifié des agents . . . . . . . . . . . . . . .
Description du framework . . . . . . . . . . . . . . . . . . . . . . . .
Foot pressure sensor . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interface utilisateur de l’agent personnel . . . . . . . . . . . . . . . .
Communication entre les agents . . . . . . . . . . . . . . . . . . . .
Modèle économique pour les communautés virtuelles mobiles . . .
Vue globale de la plate-forme technique . . . . . . . . . . . . . . . .
Vue d’ensemble des composants de la plate-forme collaborative . .
Création d’une nouvelle communauté . . . . . . . . . . . . . . . . .
Un membre choisissant la visibilité de ses documents, soit pour
membres ou pour des communautés . . . . . . . . . . . . . . . . . .
2.11 Edition des mots-clés après extraction . . . . . . . . . . . . . . . . .
2.12 Un membre choisissant la visibilité de ses documents, soit pour
membres ou pour des communautés . . . . . . . . . . . . . . . . . .
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
des
. . .
. . .
des
. . .
Processus d’extraction de connaissances mettant en exergue l’abstraction
[SILVENT03] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Approche distribuée de la gestion de connaissance [Bonifacio02a] . . . .
Les différentes couches du Web Sémantique . . . . . . . . . . . . . . . . .
Un agent dans son environnement [Wooldridge99] . . . . . . . . . . . .
Architecture BDI [Georgeff89] . . . . . . . . . . . . . . . . . . . . . . . . .
Critères d’analyse des structures internes des agents . . . . . . . . . . . .
Diagramme de flot des agents AGENT-0 [Shoham91] . . . . . . . . . . .
Architecture JASDL ([Klapiscak09]) . . . . . . . . . . . . . . . . . . . . . .
Cycle délibératif des agents 3APL [Hindriks99] . . . . . . . . . . . . . .
Squelette d’un agent 3APL . . . . . . . . . . . . . . . . . . . . . . . . . . .
Architecture des agents dans S-APL [Katasonov08] . . . . . . . . . . . .
Architecture du système Nuin [Dickinson03] . . . . . . . . . . . . . . . .
Plate-forme FIPA : Architecture abstraite . . . . . . . . . . . . . . . . . . .
Architecture de la plate-forme JADE . . . . . . . . . . . . . . . . . . . . .
Modèle Sémantique des agents dans AgentOWL . . . . . . . . . . . . . .
Architecture globale de SEAGENT . . . . . . . . . . . . . . . . . . . . . .
Sociétés pour la gestion de la mémoire [Gandon02] . . . . . . . . . . . .
30
33
37
38
38
41
44
50
51
52
53
54
66
70
76
86
92
95
97
100
102
103
104
106
108
108
110
111
113
12
TABLE DES FIGURES
3.18
3.19
3.20
3.21
Composants principaux de KEx [Bonifacio03] . . . . . . . . . . . . . . . .
Processus de décision des agents dans CONOISE [Norman04] . . . . . .
Architectures interne et externe de ABITS [Capuano00] . . . . . . . . . .
Composants nécessaires aux agents pour la mise en œuvre des connaissances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.22 Rôles du raisonneur selon les types de connaissances . . . . . . . . . . .
128
129
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Architecture des agents . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EBNF du langage interprété. Ce langage est un sous ensemble de SWRL
Actions selon les couches de l’architecture . . . . . . . . . . . . . . . . .
Interpréteur des agents, inspiré de [Shoham91] . . . . . . . . . . . . . . .
Ontologie résultante de l’architecture . . . . . . . . . . . . . . . . . . . . .
Ontologies des agents : hiérarchie des actions . . . . . . . . . . . . . . . .
Exemple illustratif (a), Scénario . . . . . . . . . . . . . . . . . . . . . . . .
Exemple illustratif (b), Structure de données de la séquence d’actions . .
Exemple illustratif (c), Flux de la transition de l’état sDebut vers l’état A
138
142
144
145
147
148
150
151
152
5.1
5.2
5.3
5.4
5.5
Execution de envoyerMessage dans la communauté c0 . . . . . . . . . . . .
Diagrame de séquence du protocole envoyerMessage de la communauté 0
Relation ternaire, impossible à représenter en OWL . . . . . . . . . . . .
Introduction de la classe AP, pour représenter la relation r p . . . . . . . .
Exemple : utilisation des communautés virtuelles de connaissances. Séquence d’actions transmise par Carmen à Julio . . . . . . . . . . . . . . . .
Exemple : diagramme des messages échangés par les agents lors de l’exécution du scénario sur la plate-forme JADE . . . . . . . . . . . . . . . . .
160
161
163
163
Diagramme de classe d’un agent . . . . . . . . . . . .
Diagramme de séquence de l’initialisation d’un agent
Diagramme d’activité UML des agents . . . . . . . . .
Diagramme de classes des actions . . . . . . . . . . .
179
182
184
188
5.6
6.1
6.2
6.3
6.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
115
116
119
172
173
Liste des tableaux
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.26
3.27
3.28
3.29
3.30
Représentation des connaissances dans JASON . . . . . . . .
Comportement des agents dans JASON . . . . . . . . . . . .
Représentation des connaissances dans JASDL . . . . . . . .
Comportement des agents dans JASDL . . . . . . . . . . . .
Représentation des connaissances dans Argonaut . . . . . .
Comportement des agents dans Argonaut . . . . . . . . . . .
Représentation des connaissances dans 3APL . . . . . . . . .
Comportement des agents dans 3APL . . . . . . . . . . . . .
Représentation des connaissances dans S-APL . . . . . . . .
Comportement des agents dans S-APL . . . . . . . . . . . . .
Représentation des connaissances dans Nuin . . . . . . . . .
Comportement des agents dans Nuin . . . . . . . . . . . . .
Représentation des connaissances dans JADE . . . . . . . . .
Comportement des agents dans JADE . . . . . . . . . . . . .
Représentation des connaissances dans AgentOWL . . . . .
Comportement des agents dans AgentOWL . . . . . . . . . .
Représentation des connaissances dans SEAGENT . . . . . .
Comportement des agents dans SEAGENT . . . . . . . . . .
Représentation des connaissances dans CoMMA . . . . . . .
Comportement des agents dans CoMMA . . . . . . . . . . .
Représentation des connaissances dans KEx . . . . . . . . . .
Comportement des agents dans KEx . . . . . . . . . . . . . .
Représentation des connaissances dans CONOISE-G . . . .
Comportement des agents dans CONOISE-G . . . . . . . . .
Représentation des connaissances dans les systèmes d’EIAH
Comportement des agents dans les systèmes d’EIAH . . . .
Représentation des connaissances dans Bibster . . . . . . . .
Comportement des agents dans Bibster . . . . . . . . . . . .
Récapitulatif des représentations des connaissances . . . . .
Récapitulatif des comportments agents . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
98
99
101
101
101
102
103
103
105
105
105
106
109
109
110
110
111
112
114
114
116
116
117
117
120
120
121
121
123
124
B.1 Paramètres des messages FIPA ACL . . . . . . . . . . . . . . . . . . . . . 212
Liste des définitions
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
La connaissance, selon Platon . . . . . . . . . . . . . .
La connaissance, selon Johnson . . . . . . . . . . . . .
La connaissance, selon Davenport et Prusak . . . . . .
Raisonneur correct et complet . . . . . . . . . . . . . .
Agent, définition faible de Wooldrigde et Jennings . .
Agent, définition forte de Wooldrigde et Jennings . .
Agent , définition de Jennings, Wooldridge et Sycara .
Agent rationnel, définition de Russell et Norvig . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
62
64
64
83
85
85
85
86
1
Introduction
18
Chapitre 1. Introduction
modèles de réprésentation des connaissances des agents logiciels sont principalement basés sur une approche technologique. Dans le but de revenir à une définition
épistémologique de la connaissance distinguant connaissance empirique et justifiable,
nous proposons un modèle d’agent qui maintient cette définition au niveau technique
en s’appuyant sur les outils du web sémantique.
L
ES
La gestion des connaissances regroupe de nombreuses techniques visant à identifier,
transmettre, créer, représenter, organiser les connaissances au sein d’une organisation.
L’avènement des supports numériques et de l’informatique a très largement contribué à
l’essor de cette discipline. Les supports numériques permettent comme tous les supports
classiques (écriture, imprimerie) la copie et la transmission de l’information, mais la
révolution entraînée par ces supports est dûe tout d’abord au faible espace de stockage
qu’ils nécessitent, et enfin surtout par la possibilité de traitement automatique des informations qu’ils contiennent. Suite à l’avènement de l’informatique dans les organisations
au cours des années 70, puis plus largement dans les années 80, s’est posé le problème
de comment gérer, organiser et transmettre toutes les informations qui étaient désormais
disponibles numériquement et sur lesquelles les machines étaient capables d’effectuer
des traitements. C’est le début de la gestion des connaissances au sens moderne du
terme.
La gestion des connaissances est une discipline à la frontières de multiples domaines
tels que les sciences sociales, les sciences cognitives, l’informatique et les sciences et
technologies de l’information. Dans le cadre de cette thèse, notre domaine d’étude
se restreint à l’approche mécaniste de la gestion des connaissances, qui considère la
connaissance comme étant un élément qui peut être traité automatiquement par une
unité de calcul, donc de manière mécanique.
Les premiers systèmes de gestion des connaissances, plus connus sous le nom de
KMS (pour Knowledge Management System en anglais), sont apparus vers la fin des années
70. Le premier outil de Ron Acksyn et Don McCracken datant de 1978 [Barclay97].
Les outils de gestion des connaissances ont longtemps suivi une approche centralisée,
comparable à celle de l’informatique. En quelques décennies, l’ordinateur personnel est
venu compléter les mainframes et autres puissants serveurs, sans toutefois les remplacer
totalement ; de la même manière, la gestion décentralisée des connaissances est venue
contrebalancer l’hégémonie des approches centralisées.
L’approche décentralisée de la gestion des connaissances a émergé grâce aux recherches dans le domaine de l’informatique qui l’ont précédées. En effet l’approche
décentralisée de la gestion des connaissances se base notamment sur le paradigme des
systèmes multi-agents qui est apparu à la fin des années 80 [Ferber89] (bien que les
principes des SMA soient connus dès les années 70, mais non formalisés tels quels
[Wooldridge09]). Plus de 10 ans plus tard, les acteurs du domaine gestion des connaissances décentralisées se basant sur le paradigme des systèmes multi-agent se réunis-
19
saient pour la première édition du workshop AMKM (Agent Mediated Knowledge
Management [van Elst04a]) lors de la conférence AAAI en 2003.
Les travaux présentés dans cette série de conférence posent les jalons d’une nouvelle
branche de la gestion des connaissances, dont les spécificités notables, par rapport à
l’approche centralisée, sont la prise en compte la nature distribuée et de l’aspect social
de la connaissance au sein des organisations. C’est sur ce paradigme multi-agent que se
baseront nos travaux. Le domaine des systèmes multi-agents englobe de nombreuses
disciplines (Intelligence artificielle distribuée, simulation, négociation, coordination)
Dans cette thèse, nous présentons tout d’abord le cadre des communautés virtuelles
de connaissances (VKC) qui sont un outil décentralisé d’échanges de connaissances entre
agents autonomes. Nous introduisons le cadre théorique des VKC puis trois scénarios
d’application de ces communautés. Nous analysons ensuite les limitations rencontrées
dans ces travaux pour définir le cadre de notre problématique concernant l’échange de
tous les types de connaissances des agents, en particulier celles éxécutables.
Nous étudions les fondements théoriques de la gestion des connaissances, en analysant les différentes définitions de la connaissance qui y sont employées. Nous montrons
que les définitions de la connaissance qui sous-tendent les systèmes de gestion de
connaissances, centralisés comme décentralisés ne sont pas compatibles avec une approche mécaniste de la gestion des connaissances. Pour résoudre ce problème, nous
proposons de nous baser sur une définition de la connaissance issue du domaine de
l’épistémologie, qui au-delà d’un cadre formel plus strict, permet contrairement aux approches existantes [Bonifacio03, Ehrig03, Laclavik06b] d’introduire la notion de connaissance empirique au sein des agents et de faire le lien avec la notion de connaissances
exécutables. Parallèlement nous étudions les architectures d’agent afin de mettre en
lumière les limitations induites par la conception des agents concernant l’échange des
connaissances.
Ensuite nous mettons en application cette définition de la connaissance dans des
agents sémantiques en nous aidant de l’analyse précédente concernant les architectures
d’agent.. La difficulté réside dans la définition du modèle d’agent qui devra supporter les
deux types de connaissances, empiriques et justifiables. A cette fin, nous proposons une
représentation des connaissances basée sur la logique en tirant parti des avancées dans
le domaine du web sémantique. Les standards du web sémantique OWL-DL et SWRL
possèdent de solides fondements logiques et nous montrons qu’ils sont parfaitement
adaptés à nos besoins de représentation. OWL-DL supporte des raisonnements en
monde ouvert qui sont plus en phase avec les connaissances humaines [Damasio06] et
nous utilisons le langage de règles SWRL qui permet de manipuler des concepts OWL
et nous permettra d’exprimer les connaissances empiriques.
Nous définissons le modèle d’agent et présentons une implémentation que nous
illustrons au travers d’exemples. Afin d’illustrer notre approche, nous utilisons ce modèle
20
Chapitre 1. Introduction
pour y intégrer un mécanisme de transmission des connaissances. Nous nous plaçons
pour cela dans un contexte de partage des connaissances entre que sont les VKC ou
communautés virtuelles de connnaissances. Notre proposition se situe donc à la frontière
de trois domaines que sont la gestion des connaissances, les systèmes multi-agents et le
web sémantique.
Le manuscrit est structurée de la manière suivante :
– Le chapitre 4 présente le contexte dans lequel s’inscrivent nos recherches. Nous
présentons tout d’abord la notion de communauté virtuelle puis nous décrivons
les scénarios qui ont motivé nos recherches.
– Dans le chapitre 3, nous présentons un état de l’art des trois domaines qui nous
intéressent, à savoir la gestion des connaissances, les systèmes multi-agents et le
web sémantique. Nous étudions dans ce chapitre les différents liens existants entre
ces trois domaines.
– Au chapitre 4, nous détaillons notre proposition et nous présentons un modèle
d’agent supportant une définition épistémologique de la connaissance. Nous
détaillons les différentes étapes de la construction de ce modèle, de la définition
vers les composants requis, puis nous détaillons l’implémentation du modèle.
– Le chapitre 5 présente la mise en œuvre de mécanismes d’échanges de connaissance inter-agents sur notre modèle en l’appliquant au paradigme des communautés virtuelles de connaissances. Nous présentons une formalisation ensembliste,
puis ontologique de ces communautés, puis nous détaillons leur modèle en tant
que connaissances des agents sémantiques.
– Le chapitre 6 décrit la mise en œuvre de notre modèle d’agent sémantique. Nous
décrivons les choix techniques et la conception logicielle du prototype d’agent
sémantique.
– Nous présentons les conclusions de cette thèse, ainsi que les différentes perspectives qu’offrent ces travaux au chapitre 7.
2
Scénarios motivants
22
Chapitre 2. Scénarios motivants
Plan du chapitre
2.1
Communautés virtuelles de connaissances . . . . .
2.1.1
Abstraction Orientée Agent . . . . . . . . .
2.1.2
La connaissance d’entreprise . . . . . . . .
2.1.3
Communautés virtuelles de connaissances
2.1.4
Implémentation . . . . . . . . . . . . . . . .
2.1.5
Conclusion . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
26
26
28
29
30
2.2
Scénario 1 : Assistants personnels
2.2.1
Framework . . . . . . . .
2.2.2
L’application réveil . . . .
2.2.3
Conclusion . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
36
38
2.3
Scénario 2 : Communautés virtuelles mobiles
2.3.1
Etat de l’art . . . . . . . . . . . . . . .
2.3.2
Modèle économique . . . . . . . . . .
2.3.3
Spécifications des services . . . . . . .
2.3.4
Plate-forme technique . . . . . . . . .
2.3.5
Application . . . . . . . . . . . . . . .
2.3.6
Conclusion . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
40
43
45
47
47
2.4
Scénario 3 : Projet DRPI . . . . . . . . . . . . . . . .
2.4.1
Communautés virtuelles . . . . . . . . . . .
2.4.2
Design de la plate-forme et implémentation
2.4.3
Gestion des connaissances . . . . . . . . . .
2.4.4
Conclusion . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
48
48
49
51
55
2.5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1
Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
56
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
La définition du contexte et l’introduction à la problématique, sont les deux objectifs
de ce chapitre. Dans une première partie nous introduirons le concept de communautés
virtuelles de connaissances auquel nous ferons appel tout au long de cette thèse. Le
concept de communauté virtuelles de connaissances (notée VKC par la suite, pour
Virtual Knowledge Communities) a été introduit par Maret et Calmet [Maret04b] puis
utilisé à plusieurs reprises pour des applications qui sont décrites dans les trois sections
suivantes.
Il est important de situer la problématique dans laquelle se positionne les VKC.
La gestion de connaissances au sein des organisations est un problème récent qui a
été abordé selon des perspectives diverses telles que l’informatique, la gestion des
connaissances, la psychologie . . .. Les recherches menées par Maret et Calmet sur la
modélisation des connaissances d’entreprises ont mis l’accent sur une approche informatique basée sur le paradigme agent afin de prendre en compte l’aspect décentralisé des
connaissances. Pour comprendre l’approche qui sous-tend la réflexion engagée sur le
domaine de la gestion des connaissances d’entreprise, il est primordial d’introduire tout
d’abord le concept d’abstraction orientée agent (AOA) définie par Calmet [Calmet04],
qui sera le prisme au travers duquel l’analyse et les spécifications seront conduites. Les
travaux de Maret et Calmet [Maret04a] ont conduit à un certain nombre de définitions
sur la connaissance d’entreprise qui sont présentées en section 2.1.2. Ces définitions
posent les fondations des communautés virtuelles de connaissances [Maret04b] que
nous présentons en détail, ainsi que leur implémentation.
Nous présentons ensuite les travaux que nous avons mené au début de cette thèse
et qui mettent en œuvre ce concept de communautés virtuelles de connaissances. Ces
travaux ont été mené en collaboration avec des membres de l’université de Tokyo au
Japon [Subercaze07], l’université de Twente aux Pays-Bas [Pawar08, Subercaze08] et
York University au Canada [El Morr09, Elmorr08]. Ces scénarios illustrent l’utilisation
des communautés virtuelles de connaissance dans différents cas.
Le premier scénario se place dans le cadre des applications sensibles au contexte. Ces
applications sensibles au contexte sont basées sur la capture d’information provenant de
l’environnement ainsi que de l’utilisateur. Les informations de contexte sont fournies
par des capteurs qui peuvent être soit fixe ou mobile, que ce soit pour capturer des
informations concernant l’environnement ou bien l’utilisateur. Ces applications sensibles au contexte sont elles aussi fixes ou mobiles, elles peuvent être exécutés aussi
bien sur une machine fixe disposant d’une puissance de calcul élevé que sur une machine portable disposant de ressources plus limitées.De telles applications requiert le
développement de framework supportant les contraintes de mobilité. L’intégration des
données provenant des capteurs est un problème complexe, spécialement dans le cadre
d’applications déployées sur des plates-formes mobiles. En effet, les capteurs fournissent
des données hétérogènes et l’utilisation de ces do En utilisant l’aspect décentralisé et
autonome des agents, nous proposons un framework basé sur des agents qui permet la
24
Chapitre 2. Scénarios motivants
fusion de données de capteurs (ainsi que l’échange d’informations de contexte) et qui
supporte l’intégration de nouvelles sources. Après la présentation du framework, nous
en présentons une application utilisant des capteurs portables, des transmetteurs ainsi
que des machines portables. Nous ferons appel au concept des communautés virtuelles
de connaissance pour les échanges entre les différents agents. Nous présentons tout
d’abord le Framework, puis une application autour d’un scénario de la vie courante,
l’application "Réveil" qui permet d’éviter de rater sa station de métro. Ce scénario est
détaillé en section 2.2
Dans le scénario que nous de décrire, la capacité de traitement des systèmes mobiles
était un facteur limitant quant aux possibilités de réalisation. L’augmentation de la
puissance de calcul des systèmes mobiles nous a conduit à changer notre vision des
communautés virtuelles mobiles l’année suivante. Jusqu’alors, les limitations imposées
par la puissance de calcul ne permettait que de réaliser des traitements simples et/ou
de consommer des services depuis un système mobile de type téléphone portable ou
PDA. Les évolutions technologiques récentes permettent de réaliser des calculs plus
importants. Il est alors naturel de considérer un système mobile non plus comme un
simple consommateur de services, mais aussi comme un potentiel fournisseur de services. Nos recherches se sont focalisés sur la réalisation d’applications commerciales
orientées services. Pour cela nous proposons un modèle économique pour les communautés virtuelles mobiles dans lesquelles les systèmes mobiles sont consommateurs
mais aussi producteurs de services [Pawar08, Subercaze08]. Nous détaillons dans ce
second scénario en section 2.3 les pré-requis au niveau des services, l’architecture requise
et l’implémentation open-source de la plate-forme technique. Puis nous donnons un
exemple d’application dans le domaine de l’informatique médicale mobile.
Le troisième scénario présente l’application des communautés virtuelles dans le
cadre du projet DRPI. Le projet DRPI est un projet international visant à surveiller les
violations des droits des handicapés dans le monde. Le projet est divisé par pays. Nos
travaux se sont focalisés sur la partie DRPI Canada, qui est un des membres fondateurs
du projet. Ce projet rassemble des acteurs académiques aussi bien que des membres de la
communauté des handicapés. L’approche holistique choisie par le comité de pilotage du
projet DRPI se concrétise par une communication continue et un partage des ressources,
méthodologies et approches des quatre thèmes du projet. Ces quatre thèmes définis
ci-après, doivent permettre de couvrir et d’obtenir les informations sur les nombreux
types de discrimination dont peuvent souffrir les handicapés :
– Surveillance des expériences personnelles : des personnes souffrant d’un handicap
sont impliquées dans la surveillance et peuvent faire part de leurs expériences
personnnelles de discrimination.
– Surveillance des médias : les productions médiatiques concernant le handicap sont
analysées à travers le prisme des droits de l’homme.
– Surveillance des aspects juridiques : le statut actuel et l’évolution de la législation
Section 2.1. Communautés virtuelles de connaissances
25
sont suivis pour s’assurer du respect des droits fondamentaux des personnes
souffrant d’un handicap.
– Surveillance des statistiques et sondages : le but est ici de s’assurer que les données,
sondages et statistiques sont recueillies dans le respect de la législation concernant
les handicapés.
Il est aussi fondamental de construire un partage de la connaissance au sein de la communauté, pour promouvoir une prise de conscience des discriminations dont sont victimes
les handicapés, afin qu’il participent eux aussi aux respects de leurs droits. Dans ce
contexte, un système complexe est requis pour faciliter la collaboration d’un spectre varié
de participants autour des quatre thèmes énoncés ci-dessus : chercheurs, représentants
de la communauté, législateur et grand public. Nous présentons ce scénario en section
2.4.
Nous présentons nos conclusions à la fin de ce chapitre et présentons une analyse
des sections exposées ci-dessous qui introduit la problématique de cette thèse.
2.1 Communautés virtuelles de connaissances
Le concept de communauté virtuelles de connaissances (notée VKC par la suite,
pour Virtual Knowledge Communities) a été introduit par Maret et Calmet [Maret04b]
puis utilisé à plusieurs reprises pour des applications [] qui sont décrites dans les trois
sections suivantes.. Nous présentons ici le concept en détail ainsi que certains exemples
d’application.
Il est important de situer la problématique dans laquelle se positionne les VKC.
La gestion de connaissances au sein des organisations est un problème récent qui a
été abordé selon des perspectives diverses telles que l’informatique, la gestion des
connaissances, la psychologie . . .. Les recherches menées par Maret et Calmet sur la
modélisation des connaissances d’entreprises ont mis l’accent sur une approche informatique basée sur le paradigme agent afin de prendre en compte l’aspect décentralisé des
connaissances. Pour comprendre l’approche qui sous-tend la réflexion engagée sur le
domaine de la gestion des connaissances d’entreprise, il est primordial d’introduire tout
d’abord le concept d’abstraction orientée agent (AOA) définie par Calmet [Calmet04],
qui sera le prisme au travers duquel l’analyse et les spécifications seront conduites. Nous
introduisons le concept d’AOA dans la sous-section suivante.
Les travaux de Maret et Calmet [Maret04a] ont conduit à un certain nombre de définitions sur la connaissance d’entreprise qui sont présentées en section 2.1.2. Ces définitions
posent les fondations des communautés virtuelles de connaissances [Maret04b] que
nous présentons en détail en section 2.1.3.
Les sections suivantes sont des résumés des travaux publiés dans [Maret04a,
Maret04b, Calmet04].
26
2.1.1
Chapitre 2. Scénarios motivants
Abstraction Orientée Agent
L’abstraction orientée agent (AOA) est une transition entre le niveau individuel
(agent) et le niveau global de la société d’agents. L’AOA se base sur la théorie classique de
Weber en sociologie qui définit une société comme résultante de l’ensemble des actions de
ses membres [Weber68]. L’AOA définit un agent comme une entité dotée d’une base de
connaissances ainsi que d’un mécanisme de décision. La base de connaissances contient
l’ensemble des connaissances de l’agent qui sont relatives à l’organisation dans laquelle
il évolue. Cette base de connaissances est constituée de quatre composants appellées
annotations : ontologies,communication, cognition et sécurité. Le mécanisme de décision
de l’agent est relatif aux buts et tâches de l’agent. Il génère des fonctions d’utilité qui
mesurent l’efficacité des décisions de l’agent. Ces fonctions d’utilité sont structurés en
classes. Les spécialisations de ces fonctions sont faites au cours de l’implémentation.
2.1.2
La connaissance d’entreprise
L’approche des connaissances d’entreprise suit la même abstraction que celle utilisé
pour l’AOA. L’hypothèse principale est que l’activité d’une entreprise est définie au
travers de la mémoire d’entreprise. Cette mémoire d’entreprise comprend tous les
"morceaux" d’information disponibles dans l’entreprise, des technologies requises pour
concevoir un produit jusqu’au politique de gestion des ressources humaines ou de
communication externe. Cette approche est résumée par les définitions suivantes :
Définition 1 Une entreprise est composée d’agents (individus et automates). Les agents
possèdent des connaissances
Définition 2 Les connaissances d’un agent sont annotées. Les annotations sont des
classes ou types structurant la connaissance.
Définition 3 Les clusters sont des sous-ensemble cohérents des connaissances des
agents. Les clusters sont définis par des filtres.
Définition 4 Les actions et les décisions d’un agent sont prises par le mécanisme de
décision selon ses connaissances. Ces actions et décisions sont évaluées par les
fonctions d’utilité.
Définition 5 La mémoire d’entreprise est constituée de l’ensemble des connaissances
détenu par l’ensemble des agent qui constituent l’entreprise. Cette mémoire est
composée des connaissances stockées et obtenues par des communications internes
ou externes.
Ces caractéristiques sont suffisantes pour aborder le problème de la gestion des
connaissances qui nous intéresse ici. Nous n’exposons pas plus en détail l’AOA et
invitons le lecteur si il souhaite plus de détails à consulter [Calmet04].
Le but est ici d’éviter toute séparation entre agents et connaissance. La connaissance
n’est pas extérieure aux agents mais elle leur est propre. Les agents sont détenteurs des
Section 2.1. Communautés virtuelles de connaissances
27
connaissances de l’entreprise. La première définition implique ques les individus (humains) et machines sont considérés selon le même niveau d’abstraction. La connaissance
n’est pas prise en compte au sens d’un système de base de données mais comme un
paradigme centré sur l’agent (individu ou automate). La communication est un élément
nécessaire pour chaque agent, les automates doivent être capables de communiquer
entre eux et les individus doivent disposer d’une interface utilisateur.
La définition 2 élargit le cadre classique de la base de connaissances d’un agent.
Classiquement celui-ci est restreint à l’utilisation d’ontologies. L’AOA permet, à l’aide
des trois composants additionnels : cognition, communication et sécurité ; d’aborder
de manière globale la définition d’un agent. Le composant de cognition regroupe les
capacités de raisonnement de l’agent. Ce raisonnement peut-être de nature logique,
pragmatique ou encore heuristique. Le composant de sécurité gère les aspects légaux,
cryptographiques et de confiance. La partie communication gère quant à elle l’ensemble
des protocoles, messages, etc qui permettent à l’agent de communiquer. Cette énumération des composants n’entend pas être exhaustive et peut être étendue. C’est le rôle de la
notion d’annotation dans les définitions. Les annotations se réfèrent à la structure des
connaissances de l’agent. Un élément de connaissance i peut être annoté par différentes
annotations a1 ...an qui lui confèrent des propriétés. On peut ainsi imaginer un message
qui soit annoté du point de la communication (protocole, structure) mais aussi du point
de la sécurité (respect des lois, etc). Le mécanisme d’annotations permet d’étendre les
annotations d’une connaissance à un domaine ou composant autre que ceux définis ici
(cognition, sécurité, communication) et qui serait introduit à postériori.
Dans la définition 3, un cluster est un sous-ensemble des connaissances des agents.
Un cluster peut être compris comme une vue externe des connaissances, en vue d’un
échange entre les agents. Le cluster constitue le passage d’une vision interne à l’agent
à un élément transmissible à d’autres agents. Pour un composant de connaissance
consistué de C concepts, l’ensemble CL des clusters est défini de la manière suivante :
– ∀ci ∈ C : k = (ci , {ci }, ∅) ∈ CL (chaque concept est un cluster)
– k = ( Tete, Sousclusters, Relations) ∈ CL, ou Sousclusters ∈ 2CL \∅ est l’ensemble
des clusters présents dans k. Tete ∈ Sousclusters est non vide. Relations définit les
relations présentes au sein du cluster ainsi qu’à l’extérieur.
La définition 4 signifie que les agents sur leurs connaissances pour prendre des
décisions. Les agents définissent des fonctions d’utilité qui permettent de mesurer
l’efficacité de leurs actions en fonction de leur but, de l’environnement et leurs états.
La raison derrière la cinquième définition est que la mémoire d’entreprise comprend
les connaissances propres aux agents mais aussi celles auxquelles ils peuvent avoir accés.
De ce fait le point de vue social est mis en avant. Ce concept ne définit pas de vision
objective de la connaissance, mais une approche locale à chaque agent. Il ne peut ainsi
être fait l’hypothèse que les connaissance d’un agent soient complètes, ou cohérentes
avec celles d’autres agents.
28
2.1.3
Chapitre 2. Scénarios motivants
Communautés virtuelles de connaissances
Les communautés virtuelles de connaissances ont été introduites en tant que moyen
d’échange de connaissances au sein d’une société composée d’agents définis selon les
termes de la section précédente, c’est-à-dire possédant une base de connaissances et un
mécanisme de décision. De plus, chaque agent possède au moins un but ou une tâche à
accomplir au sein de cette société. L’appartenance à une communauté ne remplace le
but initial pour lequel l’agent a été introduit dans le système. Le but des communautés
virtuelles de connaissance est d’augmenter l’efficacité des échanges de connnaissance entre les
agents afin de permettre aux agents de réaliser plus rapidement leur but. L’objectif
secondaire est d’obtenir au travers de ces échanges, de nouvelles connaissances apprises
ou déduites, à l’aide des capacités de raisonnement (composant de cognition) de chaque
agent. De manière similaire aux processus d’entreprises, les communautés virtuelles
de connaissances se doivent d’être dynamique. Les agents doivent ainsi pouvoir créer,
rejoindre et alimenter les communautés de manière dynamique.
Une communauté de connaissances est composée d’un thème, de membres et d’un
espace d’échanges de messages. Le thème d’une communauté est un cluster C ∈ CL. Les
agents participant à la communauté sont sensés échanger des messages autour du thème
de la communauté. Tout agent ne respectant pas ces clauses peut se voir exclu de la
communauté. Les messages sont échangés au travers d’un sytème permettant d’accéder
aux messages reçus et d’en envoyer de nouveaux (tampon de messages). Le contenu des
messages est composé d’un cluster et d’instances.
Les actions relatives aux communautés sont aux nombre de 5 : créer, réorienter,
terminer, rejoindre une communauté et échanger des connaissances. La création ou
initiation de la communauté peut être effectuée par n’importe quel agent, cet agent
devient alors le leader de la communauté. La crétion d’une communauté se fait par
la création d’un cluster, d’un tampon de messages (buffer) et de la promotion de la
communauté. La promotion d’une communauté se fait au travers d’une communauté
spéciale, la communauté des communautés. Tous les agents appartiennent à cette dernière,
qui est similaire à un système de pages jaunes. Le créateur de la communauté envoie
un message contenant le cluster qui est le thème de la communauté. Ce cluster peut
contenir des concepts et aussi des instances. Les agents recherchant une communauté
s’adresse à la communauté des communautés.
Une réorientation est une action nécessaire, au vu de la nature dynamique des
communautés. La réorientation consiste en l’envoi d’un message à la communauté
des communautés pour une mise à jour du thème dans la liste des communautés. La
dissolution d’une communauté intervient par la volonté du leader. Celui-ci efface alors
le tampon des messages puis retire du système de pages jaunes l’entrée correspondante
à la communauté. Les échanges au sein de la communauté se font par accés au tampon
de messages et par envoi de cluster et/ou d’instances dans ce tampon.
Section 2.1. Communautés virtuelles de connaissances
29
Les capacités des agents à interpréter les connaissances acquises, à échanger des
connaissances sont considérées comme des connaissances en tant que telles. Ces capacités
sont propres à chaque agent et peuvent par conséquent différer dans les fonctionnalités
et dans l’implémentation. Ce choix de conception est volontaire et permet de prendre en
compte la décentralisation des capacités des agents.
La régulation des communautés est un problème social que l’on retrouve dans
le cas des communautés virtuelles. Pour prendre en compte la notion de régulation
chaque agent fondant une communauté peut spécifier les politiques de sécurité et de
confidentialité qui s’y appliquent. Ces politiques spécifient entre autres la manière
dont les agent rejoignent, participent aux communautés. Le rôle de ces politiques est
d’adresser les problèmes de sécurité qui peuvent apparaitre lorsque des agents malicieux
sont présents dans le système.
2.1.4
Implémentation
Le but du prototype est de réaliser un système fonctionnel au sein duquel des agents
possédant des connaissances hétérogènes peuvent créer, terminer, participer à des communautés virtuelles de connaissances. L’accent est mis sur le partage, en particulier sur
les correspondances entre les ontologies hétérogènes décrivant des concepts similaires
ainsi que sur les mécanismes des communautés (appartenance, participation).
Le prototype permet la création de plusieurs agents sur des machines réparties,
chaque agent possédant ses propres connaissances et son propre mécanisme de décision.
Ce mécanisme de décision est entre autres invoqué lors de la création ou de la participation à des communautés. Chaque agent possède ses concepts personnels, ainsi que
des ontologies normalisées et un ensemble de correspondances entre les deux. L’utilisation des agents est centrée utilisateur, les agents disposant d’une interface graphique
permettant à l’utilisateur d’entrer de nouveaux buts, de nouveaux concepts/instances
ou de nouvelles correspondances. L’agent agit ensuite pour l’utilisateur, selon les buts
assignés.
La plate-forme JADE [Bellifemine99] a été choisie pour réaliser l’implémentation
du prototype. Le choix de JADE se justifie par la capacité des agents à échanger des
messages selon le standard FIPA-ACL [ACL-FIPAml] et par la possibilité d’utiliser pour
chaque agent des ontologies définies par l’utilisateur. Les agents ont été créé en étendant
la classe jade.core.Agent.
La classe principale du système est la classe CommunityAgent qui est une classe
abstraite définissant les méthodes des agents participant aux communautés. Deux implémentations de cette classe abstraite ont été réalisées : la classe IndividualAgent
et SocialAgent. Ces deux implémentations sont opposées dans le comportement de
l’agent. l’agent individualiste cherchera à rejoindre une communauté et à y participer
30
Chapitre 2. Scénarios motivants
F IGURE 2.1 – Diagramme de classe simplifié des agents
seulement si il a besoin de connaissances qui pourrait s’y trouver. Une fois les connaissances acquises, il quittera la communauté (ou la terminera si il en est l’instigateur).
L’agent social créera des communautés dans le but désintéressé de partager ses connaissances. Il rejoindra de la même manière toutes les communautés qui le concernent.
Chaque CommunityAgent possède exactement un objet PersonalKnowledge.
La classe PersonalKnowledge étend la classe KnowledgeClusterOntology qui
représente une ontologie décrivant les concepts, instances et clusters possibles. D’aucun peuvent considérer la classe KnowledgeClusterOntology comme une métaontologie. Les connaissances personnelles d’un agent sont constituées des ontologies
personnelles KnowledgeCluster ainsi que des instances personnelles de la classe
AbsContentElementList. La figure 2.1 représente les différentes classes énumérées.
Les communications entre agents se fait par passage de messages. Les messages sont de type jade.lang.acl.ACLMessage : inform ou request. Trois
types de messages request peuvent être envoyés par les CommunityAgent :
joinCommunity, readFromBuffer (qui demande de lire le tampon de messages) et KnowledgeCluster (l’agent souhaite envoyer un cluster à la communauté). Nous distinguons quatre types de messages inform : les messages contenant unKnowledgeCluster ou des instances qui sont partagés par un agent,
updateRole lors de la mise à jour d’un ou des roles des agents, leavingCommunity
et communityDead permettent de quitter et de fermer une communauté.
2.1.5
Conclusion
L’analyse de la structure d’un sytème de gestion de connaissances selon l’approche
AOA de Calmet a permis de donner des définitions de la connaissance d’entreprise A
partir de ces définitions et suivant la même approche d’abstraction que pour l’AOA,
le concept résultant de l’analyse sont les communautés virtuelles de connaissances
Section 2.2. Scénario 1 : Assistants personnels
31
qui fournissent un cadre de travail prenant en compte les différents aspects d’autonomie, de décentralisation, de modélisation des connaissances ainsi que des mécanismes
d’échanges. Le concept de communautés virtuelles de connaissances permet de diffuser et d’étendre les connaissances d’une société d’agents. La connaissance n’est pas
limitée au domaine d’intérêt de chaque agent mais comprend aussi les connaissances
des mécanismes d’échanges, de "traduction" des ontologies et du comportement social
(individualiste, social). L’implémentation d’un prototype a permis de mettre en œuvre
les différents aspects.
La base de connaissances ne contient pas seulement des ontologies, mais aussi trois
autres composants (cognition, communication et sécurité). Cependant, l’implémentation montre une différence de traitement entre les différents composants. En effet les
ontologies sont les seules parties de la base de connaissances qui sont échangeables
entre les agents. Les trois autres composants sont programmés sont internes à l’agent.
En premier lieu on pourrait croire que c’est le langage d’implémentation des agents qui
ne permet pas réutiliser le code de chacun des composants. Mais ces agents, basés sur
JADE, sont programmés en JAVA, le JAVA proposant des fonctionnalités de réflection
dans le package java.lang.reflect et offre la possibilité de transférer des portions
de code exécutables entre des programmes JAVA. Cette limitation dans le transfert
des connaissances provient de l’architecture des agents JADE. Les agents sont conçus
pour échanger des messages au format FIPA-ACL et pour gérer de manière interne
des ontologies. Les parties exécutables qui sont les comportements (dans le package
jade.core.behaviours) ne sont pas conçus pour être échangés et intégrés dans les
agents.
L’implémentation a permis de mettre en lumière deux problèmes. Le premier est
l’hétérogénéité des composants de la base de connaissances. Les formalismes de représentation des connaissances au sein de l’implémentation sont hétérogènes : les ontologies
sont au format RDF, les composants responsables de la communication, cognition et
sécurité sont programmés en JAVA (une partie de la sécurité est en RDF, pour la description des politiques). Cette hétérogénéité combiné aux limitations de l’architecture JADE,
rend une partie de la connaissance seulement interne aux agents.
Le deuxième problème découle du premier et pose des questions plus théoriques. La
distinction entre les parties échangeables et non échangeables de la base de connaissances
soulève plusieurs questions : une connaissance qui n’est pas échangeable est-elle une
connaissance ? si oui, dans quelle mesure est-elle utile pour le système ? Quand peut-on
parler de connaissance ?
2.2 Scénario 1 : Assistants personnels
32
Chapitre 2. Scénarios motivants
Les applications sensibles au contexte sont basées sur la capture d’information provenant de l’environnement ainsi que de l’utilisateur. Les informations de contexte sont
fournies par des capteurs qui peuvent être soit fixe ou mobile, que ce soit pour capturer
des informations concernant l’environnement ou bien l’utilisateur. Ces applications
sensibles au contexte sont elles aussi fixes ou mobiles, elles peuvent être exécutés aussi
bien sur une machine fixe disposant d’une puissance de calcul élevé que sur une machine portable disposant de ressources plus limitées.De telles applications requiert le
développement de framework supportant les contraintes de mobilité.
L’intégration des données provenant des capteurs est un problème complexe, spécialement dans le cadre d’applications déployées sur des plates-formes mobiles. En effet,
les capteurs fournissent des données hétérogènes et l’utilisation de ces données au sein
de l’application est prédéfinie avant le développement de l’application.
La majorité des frameworks sont conçus pour permettre le développement d’applications statiques sensibles au contexte . Les frameworks les plus avancés sont les
suivants : [Pinyapong04] qui est dédié au profil utilisateur, [Gellersen02] spécialisé dans
l’intégration de sources hétérogènes, [Biegel04] réalise la fusion des données de capteurs
à l’aide de réseaux bayésiens, [Henricksen04] qui propose un outil de développement
rapide d’applications pervasises centrées sur la modélisation de contexte et [Salber98]
qui prend en compte l’historique du contexte de chaque utilisateur.
Le désavantage majeur de tout ces frameworks est qu’aucun ne permet d’intégrer
simplement l’arrivée de nouveaux types de données provenant de nouveaux capteurs.
Dans la plupart des cas, l’application doit être entièrement repensée.
En utilisant l’aspect décentralisé et autonome des agents, nous proposons un framework basé sur des agents qui permet la fusion de données de capteurs (ainsi que
l’échange d’informations de contexte) et qui supporte l’intégration de nouvelles sources.
Après la présentation du framework, nous en présentons une application utilisant des
capteurs portables, des transmetteurs ainsi que des machines portables. Nous ferons
appel au concept des communautés virtuelles de connaissance pour les échanges entre
les différents agents. Nous présentons tout d’abord le Framework, puis une application
autour d’un scénario de la vie courante, l’application "Réveil" qui permet d’éviter de
rater sa station de métro.
2.2.1
Framework
Bien que l’utilisation des capteurs dans les applications sensibles au contexte soit une
chose nécessaire, on constate un manque d’approche globale dans les infrastructures
dédiées au développement de ces applications. De plus, pour intégrer pleinement les
données fournies par les capteurs, le point de vue de l’architecture de l’application
en terme de composants doit-être pris en compte, mais aussi le traitement de ces don-
Section 2.2. Scénario 1 : Assistants personnels
33
nées ainsi que l’échange des données de contexte entre ces différents composants puis
finalement leur interprétation sémantique.
Pour permettre une intégration efficace de ces différents niveaux de traitement nous
proposons une infrastructure (voir figure 2.2) basée sur les trois concepts suivants :
– Les applications sensibles au contexte requiert une autonomie des composants
qui permet de décentraliser le traitement des données. En terme de paradigme, la
notion de système multi-agent est parfaitement adéquate avec ce point de vue.
– Nous proposons deux types d’agents : les agents de contexte qui sont responsables de la capture des données de contexte, de leur interprétation et de leur
dissémination au sein du système (section 2.2.1.1), et les agents personnels qui
possèdent des connaissances sur l’utilisateur (son profil) et qui sont chargés de
fournir le service sensible au contexte à l’utilisateur final (section 2.2.1.2).
– Les agents possèdent une représentation des connaissances basées sur des ontologies. Les échanges entre les agents seront effectués au travers des communautés
virtuelles de connaissances que nous avons décrites dans la section précédente.
F IGURE 2.2 – Description du framework
2.2.1.1
Agent de contexte
Nous considérons qu’une application sensible au contexte est un système complexe
d’aide à la décision. Les décisions sont basées sur les connaissances extraites des données
des capteurs ainsi que sur les préférences de l’utilisateur. Les données des capteurs
hétérogènes peuvent être intégrées de différentes manières. [Sharma98] propose trois
niveaux d’intégration :
1. Fusion des données : Les données brutes sont fusionnées avant tout autre type de
traitement. C’est l’intégration au plus bas niveau, elle n’est possible que dans le
cas de capteurs capturant le même type de données. Par exemple dans le cas des
34
Chapitre 2. Scénarios motivants
rangées de microphones, la fusion à bas niveau permet de réduire le pourcentage
d’erreur.
2. Fusion des caractéristiques : Chaque signal ou donnée brute est interprété en tant
que caractéristique (température, pression, niveau d’activité, . . .). Ces interprétations sont ensuite les entrées du système de décision.
3. Fusion au niveau décision : Pour chaque donnée extraite une décision est calculée (proposer X ou Y à l’utilisateur), ces décisions sont ensuite fusionnées, pour
déterminer la décision finale.
Les applications sensibles au contexte qui nous intéressent intègrent des données de
différentes natures, ce qui exclut de facto la fusion à bas niveau dans notre système. La
fusion au niveau décision requiert un temps de calcul plus élevé que celle au niveau
caractéristiques, chaque donnée de capteur devant suivre le cycle complet de traitement
(interprétation, décision, puis fusion). Nous choisissons que la fusion des données de
capteur doit être effectué au niveau des caractéristiques. Ce niveau de fusion est satisfaisant en terme de possibilités d’évolution, puisqu’il intègre des données de différentes
natures et il est aussi adapté au application mobile qui dispose d’une puissance de calcul
limitée.
Nous distinguons quatre niveaux dans l’architecture des agents de contexte :
1. Capteur : Ils capturent les informations environnementales et délivrent soit un
signal électrique soit une sortie discrète.
2. Récepteur : Transmet les données du capteur au premier niveau de traitement.
3. Interpréteur : Ce niveau joue un rôle crucial dans l’analyse des données fournies
par le capteur. A ce niveau, le signal est transformé en données contextuelles. Par
exemple à partir du signal fourni par un accéléromètre, l’interpréteur peut fournir
le contexte du porteur de l’accéléromètre : marcher, courrir, être immobile . . .. Dans
ce cas précis, ce module est aussi nommé HBR pour Human Behavioral Recogntion
ou Reconnaissance du Comportement Humain en français.
4. Synthétiseur : La partie innovante dans notre approche. Le synthétiseur transforme les données fournies par l’interpréteur afin de les rendre échangeables avec
les autres agents du système.
Le bénéfice en terme de développement d’applications apparait avec l’introduction
du synthétiseur, qui permet l’échange entre les différents agents qui composent l’application. L’intégration de nouveaux capteurs et de nouvelles données dans le système
ne nécessite pas de redéfinir totalement la structure ni les composants de l’application.
Les changements concernant les informations fournies par les capteurs sont définies
dans les couches d’un nouvel agent de contexte ou intégrées dans un agent existant.
C’est l’utilisation de la décentralisation et de l’autonomie des agents qui permet cette
souplesse dans l’application.
Section 2.2. Scénario 1 : Assistants personnels
35
De plus, un agent de contexte étant capable de communiquer avec d’autres agents, en
particulier d’autres agents de contexte, il lui est possible d’agréger les informations
fournies par d’autres agents afin d’améliorer son interprétation de l’environnement.
2.2.1.2
Agent Personnel
L’agent personnel est en contact direct avec l’utilisateur, il est donc implémenté sur
une machine mobile de type téléphone portable ou PDA et il joue le rôle d’assistant
personnel. Cet agent rassemble les informations de contexte fournies par les agents de
contexte et fournit un service à l’utilisateur final. Cet utilisateur est décrit sous la forme
d’un profil qui contient des informations sur les préférences de l’utilisateur, des données
personnelles, ainsi qu’un historique des actions de l’utilisateur. Le processus de décision
de l’agent se base sur le profil de l’utilisateur ainsi que sur les données fournies par les
agents de contexte. Ce processus est défini par des prédicats qui peuvent être soit entrés
au moment de la conception de l’application, soit par l’utilisateur final. L’utilisation de
règles a été choisie pour son temps de calcul de réduit, ainsi que pour la faible taille en
mémoires.
2.2.1.3
Echanges d’informations à base d’agents
Les systèmes composés d’entités distribuées et hétérogènes (capteur, PDA, agents
logiciels) requiert des mécanismes d’échanges d’information qui sont efficaces. Une
approche orientée agent permet de prendre en compte la nature distribuée des entités,
elle doit être complétée de mécanismes d’échanges d’information.
Le concept de communautés virtuelles de connaissances a été proposé par Maret
[Maret04b]. Les principes de ces communautés sont les suivants. Chaque agent possède
sa propre base de connaissance basée sur des ontologie et il possède aussi ses mécanismes de traitement de ses propres connaissances et de celles qu’il reçoit au travers des
échanges avec les autres agents. Lorsque les agents désirent échanger des connaissances,
ils recherchent une communauté axée autour du thème qui les intéresse. Si une telle
communauté n’existe pas, l’agent crée une communauté et la déclare dans un système
de pages jaunes. Les échanges ont lieu pendant la durée de vie de la communauté, qui
peut-être finie ou infinie. La sécurité des échanges est garantie par les politiques de
sécurité associées à chaque communauté.
Ces communautés virtuelles de connaissances ont été implémenté sur la plate-forme
JADE [Bellifemine99] et JADE-LEAP pour des applications mobiles. Les connaissances
des agents sont définies en RDF et les messages sont transmis au format FIPA-ACL
[ACL-FIPAml]. L’agent qui initie une communauté devient le leader de cette commu-
36
Chapitre 2. Scénarios motivants
nauté, il spécifie la thématique de la communauté ainsi que les politiques d’échanges et
de sécurité. Les échanges sont faits au travers d’un système de tableau noir, en fonction
de leurs droits au sein de la communauté, les agents peuvent lire et/ou écrire sur le
tableau.
2.2.2
L’application réveil
Nous avons implémenté notre framework dans une application apepllée "Réveille
moi". Le scénario est le suivant. Un passager du métro s’endort pendant le trajet qui
l’amène à son domicile. L’application doit-lui permettre de ne pas rater son arrêt de
métro. La solution proposée est de détecter le niveau d’activité de l’utilisateur à l’aide
de capteurs portables et si nécessaire de le réveiller en faisant sonner son téléphone
portable lorsqu’il s’approche de la station désirée.
Cette application requiert différents composants : des transmetteurs dans les stations
de métro, des capteurs d’activité ainsi qu’un téléphone portable. Chacun implémente
soit un agent personnel, soit de contexte, et utilise les fonctionnalités des VKC.
2.2.2.1
Implémentation des agents de contexte
Deux agents de contexte sont requis dans cette application. Le premier est celui qui
est relié à un transmetteur et qui fournit le nom de la station de métro ou il est basé.
Cet agent est spatialement immobile. Le second agent est relié à capteur de pression au
niveau du pied et il fournit le niveau d’activité de l’utilisateur.
Transmetteur
Cette application nécessite l’installation de bornes wi-fi dans chaque station de métro.
Un agent contextuel gère une commaunuté virtuelle de connaissances dont le thème est
la station de métro. Pour notre application, ce transmtteur fournit seulement le nom de
la station, mais ces fonctionnalités peuvent être étendues pour fournir d’autres éléments
aux voyageurs tels qu’un plan de la station, les horaires de métro . . .. Les connaissances
transmises sont les suivantes :
– Concept : Nom de station
– Instance : ’Ginza’
Capteur
Nous avons utilisé un capteur de pression au niveau du pied qui mesure le niveau
d’activité d’un voyageur [Sugimoto06] (voir figure 2.3). La sortie du capteur est un
signal électrique qui ne possède aucune signification brute. Ce signal est envoyé à un
Section 2.2. Scénario 1 : Assistants personnels
37
composant embarqué sur lequel est déployé un agent de contexte implémenté sur JADELEAP qui détermine si l’utilisateur est endormi ou non. Un algorithme de type HBR est
utilisé pour déterminer l’état de l’utilisateur. Cet agent de contexte associé au capteur
est aussi en charge de la diffusion de cette information au travers des VKC. Une version
simplifiée des connaissances transmises est indiquée ci-dessous.
F IGURE 2.3 – Foot pressure sensor
– Concept : Niveau d’activité
– Valeur possible : ’debout’, ’assis’, ’dort’, ...
– Valeur actuelle : ’dors’
2.2.2.2
Implémentation de l’agent personnel
L’agent personnel est aussi implémenté sur JADE-LEAP et est exécuté sur téléphone
portable. Le profil de l’utilisateur contient sa station d’arrivée. Cette information peut
être entrée par l’utilisateur ou déduite de son agenda. Cet agent peut initier et rejoindre
des communautés virtuelles.
Lorsque le métro approche d’une station, l’agent personnel recherche la communauté
initiée par le transmetteur, il rejoint la communauté et récupère le nom de la station. Si
l’utilisateur se trouve à la station désirée, l’agent de contexte située dans le téléphone crée
une communauté autour du niveau d’activité de l’utilisateur. L’agent de contexte relié
au capteur de pression rejoint la communauté et fournit le niveau d’activité enregistré.
Si l’utilisateur est endormi, le téléphone se met alors à sonner. Le prototype a été
implémenté sur un nokia N91, l’interface utilisateur est présenté en figure 2.4.
L’agent personnel possède les connaissances suivantes :
– Concepts : niveau d’activité, Destination souhaitée, Position actuelle, règles de
décision
– exemples d’instances :
– nieau d’activité : inconnu
38
Chapitre 2. Scénarios motivants
F IGURE 2.4 – Interface utilisateur de l’agent personnel
– Destination souhaitée : ’Ginza’
– Position actuelle : ’Shibuya’
– Règles de décision : IsSameLocation(Location1, Location2) ; IntentionDescription(Desired location, Actual location)
F IGURE 2.5 – Communication entre les agents
2.2.3
Conclusion
L’utilisation des capteurs personnels dans les applications mobiles sensibles au
contexte est un domaine de recherche prometteur. Le framework proposé, basé sur
des échanges de connaissances entre des agents de contexte et des agents personnels
au sein de communautés permet l’intégration dynamique de nouveaux capteurs sans
respécification de l’application. L’intégration d’un second capteur d’activité dans le
Section 2.3. Scénario 2 : Communautés virtuelles mobiles
39
cadre du scénario applicatif du réveil nécessite seulement la mise en place d’un agent de
contexte lié à ce second capteur et de la modification des règles de décision de l’agent
personnel pour gérer les cas ou les deux capteurs fourniraient des niveaux d’activité
différents. Cette approche décentralisée permet de tirer pleinement parti de l’aspect
autonomie que présente l’approche agents et le scénario du réveil permet d’illustrer son
fonctionnement. Le synthétiseur est le composant innovant de cette approche qui permet
de transformer les informations de l’agent en connaissances échangeables avec les autres
agent. Ces échanges basés sur les VKC permettent l’ajout dynamique de nouveaux
capteurs et mettent en lumière l’aspect dynamique et flexible des VKC.
[Subercaze07]
2.3 Scénario 2 : Communautés virtuelles mobiles
Dans l’exemple précédent, la capacité de traitement des systèmes mobiles était un
facteur limitant quant aux possibilités de réalisation. L’augmentation de la puissance de
calcul des systèmes mobiles nous a conduit à changer notre vision des communautés
virtuelles mobiles l’année suivante. Jusqu’alors, les limitations imposées par la puissance
de calcul ne permettait que de réaliser des traitements simples et/ou de consommer des
services depuis un système mobile de type téléphone portable ou PDA. Les évolutions
technologiques récentes permettent de réaliser des calculs plus importants. Il est alors
naturel de considérer un système mobile non plus comme un simple consommateur de
services, mais aussi comme un potentiel fournisseur de services.
Nos recherches se sont focalisés sur la réalisation d’applications commerciales orientées services. Pour cela nous proposons un modèle économique pour les communautés virtuelles mobiles dans lesquelles les systèmes mobiles sont consommateurs mais
aussi producteurs de services [Pawar08, Subercaze08]. Nous détaillons les pré-requis
au niveau des services, l’architecture requise et l’implémentation open-source de la
plate-forme technique. Puis nous donnons un exemple d’application dans le domaine
de l’informatique médicale mobile.
2.3.1
Etat de l’art
Le travail présenté en [ElMorr07] regroupe les différentes tendances au sein des
communautés virtuelles mobiles dans les catégories suivantes : centrées sur la technologie,
centrées sur l’utilisateur et centrées sur le business . Une analyse entre les dépendances des
catégories est ensuite réalisée. Pour Leimister et. al. [Leimeister04], un modèle économique doit considérer des facteurs externes comme les facteurs techniques ou légaux.
Pour motiver ce point de vue, une analyse de deux communautés virtuelles utilisant
ce modèle économique est faite en [Leimeister04]. Comme indiqué en [Schubert05], un
40
Chapitre 2. Scénarios motivants
modèle économique sert à comprendre les composants fondamentaux d’une activité
commerciale, existante ou future. Le modèle économique présenté en [Schubert05] prend
en compte les aspects sociaux et commerciaux des communautés virtuelles. La plateforme de communauté est mise en place par les fournisseurs de services ou les vendeurs
qui souhaitent faire la promotion ou la vente de services ou de produits. En se basant sur
des informations telles que les préférences des utilisateurs, leur réseau social, le vendeur
fournit des services ou produits personnalisés. Du point de vue mobile, la communauté
présentée en [Schubert05] est asynchrone, c’est-à-dire que les membres propagent les
messages à leurs amis quand ils le souhaitent. L’application présentée est un système de
location dans le domaine des loisirs. Une extension du modèle économique présentée en
[Schubert05] est fournie pour cette application, afin de prendre en compte les aspects
mobiles et sensibles au contexte.
Pour profiter de l’aspect mobile dans des scénarios tels que ceux des encombrements
de traffic, [Kawash05] propose un système innovant de collaboration basé sur le concept
de spot. Ce modèle collaboratif a été appliqué par [Kawash05] pour développer des communautés autour des problématique de transport public. Pour étendre les communautés
virtuelles en partant d’un point de vue fixe vers la mobilité, [Farooq02] propose un système sans-fil nommé MOOsburg++. Combiné avec des systèmes de géopositionnement,
MOOsburg++ permet de fournir des penses-bêtes liés à des localisations précises.
Notre travail se distingue des travaux présentés sur les points suivants :
1. Le business model prend en considération le fait que les acteurs mobiles puissent
être fournisseur de contenu et de services.
2. La plate-forme de communauté utilise les informations de contexte des membres
pour le recommander des produits, services . . .
3. Une approche orientée service pour l’implémentation de l’architecture dans laquelle les membres utilisent leurs systèmes mobiles pour offrir des services commerciaux ou des échanges de contenu.
2.3.2
Modèle économique
Dans le modèle économique proposé nous définissons tous d’abord trois types
d’acteurs primaires : consommateurs, fournisseurs et la plate-forme de communauté. Les
fournisseurs et consommateurs peuvent être indifféremment fixes ou mobiles. Les
founisseurs sont divisés en sous-catégories : les fournisseurs de services commerciaux,
les vendeurs de produits, les fournisseurs de contenus sociaux, les fournisseurs de support
communautaire ainsi que les fournisseurs de service internet. Les consommateurs sont définis
de manière duale aux fournisseurs : consommateurs de service commerciaux, consommateurs
de produits, consommateur de contenu. La plate-forme communautaire fournit les éléments
et foncionnalités nécessaires aux intéractions entre consommateurs et fournisseurs.
Section 2.3. Scénario 2 : Communautés virtuelles mobiles
41
F IGURE 2.6 – Modèle économique pour les communautés virtuelles mobiles
Dans ce travail, nous axons notre recherche sur le rôle des utilisateurs mobiles en tant
que fournisseurs de services, produits et contenu mais aussi en tant que consommateurs.
Nous présentons ici deux exemples simple pour justifier ce concept. Pour un exemple
plus détaillé, voir le cas d’étude en section 2.3.5.
Utilisateur mobile comme consommateur d’un service commercial : L’utilisateur mobile
prend une photographie d’un code barre au dos d’un livre et envoie cette image à
un service qui lui fournit des informations détaillées sur l’auteur, l’ouvrage et une
comparaison des prix.
Utilisateur mobile comme fournisseur d’un service commercial : L’utilisateur mobile utilise
son téléphone pour controler la qualité de service (QoS) et fournir des données à un
service de cartographie de QoS [Wac06] qui analyse et compile les informations fournis
par de nombreux appareils mobiles, et fournit une carte du réseau.
Le fournisseur d’accés à internet (ISP) fournit la connectivité qui permet aux acteurs
d’intéragir entre eux. Son rôle étant limité dans notre étude, nous ne le détaillerons
pas et n’y porteront pas plus d’attention. La figure 2.6 présente les différents acteurs :
consommateurs, fournisseurs, plate-forme communautaire ainsi que l’ISP. Les flots
d’échanges, de contenus, financiers et de produits sont aussi décrits. La section suivante
décrit en particulier le rôle central de la plate-forme communautaire.
42
2.3.2.1
Chapitre 2. Scénarios motivants
Plate-forme communautaire :
La plate-forme communautaire fournit l’infrastructure ainsi que les fonctionnalités
pour créer des relations sociales et faciliter les transactions financières et de contenus
entre les fournisseurs et les consommateurs. La plate-forme permet aux fournisseurs
de services (produits) de lister et de promouvoir leurs services (produits). Le service
d’intéraction sociale au sein de la plate-forme fournit les outils pour créer les relations
sociales entre les membres. La plate-forme est aussi le seul point de contact pour les
échanges financiers entre les consommateurs et les fournisseurs.
Une des fonctionnalités importantes de la plate-forme communautaire est le service
de recommandation sensible au contexte qui utilise les informations de contexte (localisation,
. . .) des fournisseurs et consommateurs pour leur recommander des services ou des produits en s’appuyant sur leur contexte. Par exemple si différents fournisseurs proposent
un service d’ambulance, le patient utilisera le service le plus proche. L’utilisation des
informations de contexte des utilisateurs mobiles est aussi utile pour offrir des publicités,
contenus adéquats.
2.3.2.2
Fluxs de produits, services et de contenus
Nous définissons trois types de mode d’intéraction pour les échanges de contenu
entre les acteurs :
Publier : Le mode d’intéraction Publier est utilisé par le fournisseur de services
commerciaux, de produits ou de contenu social et par le fournisseur du service de
plate-forme communautaire pour publier les offres de service, de produit et de contenu.
La plate-forme communautaire fournit les différents mécanismes (par exemple la liste
des services, produits, contenu dans les sous communautés appropriées ou sur le profil
de l’utilisateur) pour publier ces informations.
Réponse à une requète : Le mode réponse à une requète est utilisé par les consommateurs
et par la plate-forme communautaire pour intéragir avec les fournisseurs. La plateforme communautaire sert donc essentiellement de médiateur entre les fournisseurs et
consommateurs. Le service de médiation pour les aspects commerciaux offert par la plateforme communautaire facilite les intéractions enter consommateurs et fournisseurs.
Le service traite et fait suivre les requêtes des consommateurs vers les fournisseurs ;
de même pour la réponse des fournisseurs vers les consommateurs. Le traitement
effectué par le service de médiation est principalement la génération de revenus pour la
plate-forme communautaire (voir section 2.3.2.4). Le consommateur de services de type
sociaux ou de contenu utilise ce mode d’intéraction pour demander l’accés au contenu
publié par les membres de la communauté.
Abonnement-Notification : Ce mode d’intéraction est semblable au précédent. La
Section 2.3. Scénario 2 : Communautés virtuelles mobiles
43
différence se situe dans la notion d’abonnement. Le consommateur s’abonne puis reçoit
de manière régulière ou non des informations, jusqu’à résiliation de son abonnement.
Par exemple un consommateur de service social s’abonne à un service pour savoir quand
un membre est connecté.
2.3.2.3
Bénéfices de l’approche
Le modèle économique que nous avons décrit est bénéficiable à tous les acteurs qui
le composent et ce pour les raisons que nous détaillons ci-après :
Considération de la mobilité : La prise en compte du facteur de mobilité pour les acteurs
aussi bien producteur que consommateur a pour conséquence la mise en œuvre de
service accessible partout et à chaque instant. De plus, les membres de la communauté
peuvent accéder à des fonctionnalités de type réseaux sociaux sur leurs mobiles.
Mise en relation : La fonction de mise en relation qui est fournie par la plate-forme
communautaire établit la concordance ou non d’intérêts entre les membres de la communauté et/ou avec les fournisseurs de produits/services. La plate-forme communautaire
propose des sous communautés appropriées aux membres et suggèrent aux membres de
nouveaux contacts pour intéragir. La sensibilité au contexte dans la fonction de mise en
relation permet de trouver le meilleur service en fonction du contexte du consommateur.
Service de médiation pour les aspects commerciaux : Le service de médiation pour les
aspects commerciaux s’occupe des transactions commerciales pour le consommateur.
Par exemple il peut lui éviter d’entrer de nombreuses fois ses coordonnées bancaires.
2.3.2.4
Source de revenus
Le modèle que nous proposons a un potentiel pour la génération des revenus à
partir de ventes d’abonnements, d’affiliation et de partage des revenusu entre la plateforme communautaire et le fournisseur de services ainsi que par la publicité. Pour
plus de détails concernant l’aspect de génération des revenus, nous nous référerons à
[Leimeister04, Rothaermel01].
2.3.3
Spécifications des services
De nos jours, l’approche SOA est une choix populaire dans le développement des
applications car il facilite le développement, déploiement et l’usage de services spécifiés,
flexibles et réutilisables dont les interfaces sont indépendantes du langage d’implémentation. Nous avons choisi le paradigme SOA pour le design de communautés virtuelles
mobiles. Pour être viable, la plate-forme supportant les communautés virtuelles né-
44
Chapitre 2. Scénarios motivants
F IGURE 2.7 – Vue globale de la plate-forme technique
cessitent un certain nombre de spécification en termes de services, afin de supporter
l’intégration des consommateurs et producteurs, fixes ou mobiles.
Nous présentons ici un nombre restreint de services basiques dédiés au support des
fournisseurs et consommateur mobiles, puisque c’est l’apport majeur de notre approche.
La définition de service dans cette section doit être comprise au sens de l’approche SOA
et non plus au sens du modèle économique présenté dans les sections précédentes.
2.3.3.1
Services pour la plate-forme communautaire
Nous décrivons ici les spécifications relatives à la plate-forme de communauté, telle
qu’elle est représentée en figure 2.7.
Service de gestion des membres : Ce service fournit les fonctionnalités telles que l’enregistrement des nouveaux membres, la gestion des profils, les rôles des membres
(producteur, consommateur), login et gestion des sessions.
Service d’annuaire : Ce service fournit un annuaire qui permet de lister les offres
commerciales de produit ou de services, à la manière d’un service de pages jaunes.
Gestion de communauté : Ce service est composé des différentes fonctionnalités
requises pour créer, rejoindre, accéder aux sous-communautés de la plate-forme, ainsi
que pour la publication, la lecture ou l’abonnement aux flux de ces communautés.
Service d’intéraction sociale : Ce service gère les intéractions entre les membres de
la communautés. Ce qui inclut des fonctionnalités telles que le dialogue en direct, les
notifications, et la souscription aux flux d’un membre.
Section 2.3. Scénario 2 : Communautés virtuelles mobiles
45
Service de mise en relation sensible au contexte : Ce service est utilisé pour trouver
des membres potentiels pour les nouvelles sous-communautés. Le service de mise en
relation est vital au bon fonctionnement du modèle économique décrit ci-dessus. Si
un membre de communauté est intéressé par un type particulier de service (qui peut
comprendre plusieurs instances de service), le service de mise en relation choisira selon
le contexte de l’utilisateur lequel de ces services lui sera proposé, selon l’approche défini
dans [Hesselman06].
Service de médiation pour les aspects commerciaux : Le rôle du service de médiation
est de fournir aux membres l’accés aux différents services et produits listés dans la
plate-forme et de gérer les transactions au nom des membres. A cette fin, le service
de médiation est constitué d’un module centralisé de facturation. La plate-forme de
communauté contient une base de données qui contient entre autres les profils des
utilisateurs, la liste des services et produits ainsi que les informations de facturation. Les
intéractions sociales entre les membres sont aussi stockées dans cette base de données.
2.3.3.2
Spécification sur le système mobile
Les services basiques suivants sont requis sur le système mobile pour permetrre
l’utilisation de la plate-forme communautaire.
Service d’échange de contenu : ce service a pour but d’envoyer le contenu (textuel,
visuel) généré par l’utilisateur du dispositif mobile à la plate-forme communautaire afin
que ce contenu soit publié dans les communautés adéquates. De la même manière ce
service d’échange s’abonne et reçoit les informations des communautés auxquelles le
membre appartient. Ce service transforme le dispositif mobile en producteur de contenu
social et en consommateur de services commerciaux ou sociaux.
Service mobile commercial : le rôle de ce service est de permettre au dispositif mobile de
devenir un fournisseur de services commerciaux. Ce service peut réutiliser le composant
social décrit ci-dessus dans le cadre des échanges de contenus. En dehors de ce cas, les
fonctionnalités supplémentaires doivent être implémentées sur la machine, en fonction
de la nature du service, que nous ne précisons pas ici.
Service d’information de contexte : Ce service obtient les informations de contexte
(localisation) à partir du dispositif mobile de l’utilisateur et envoie ces informations en
temps-réel à la plate-forme communautaire. Ces informations sont ensuite utilisées par
le service de mise en relation.
2.3.4
Plate-forme technique
Notre choix technologique pour l’implémentation des services au niveau de la plateforme communautaire sont les Services Web. Ce choix d’architecture SOA se justifie
46
Chapitre 2. Scénarios motivants
par l’interopérabilité et la facilité de déploiement des Services Web. A la différence des
services situés sur le réseau fixe dont les problématiques sont classiques, l’utilisation et la
maintenance de services moibles posent un certain nombre de problèmes en particulier
dues à la connectivité intermittente, à la limitation des ressources ainsi qu’à la mobilité
de l’utilisateur. Comme cela a été identifié dans [Pawar07], il existe trois approches
différentes pour la problématique des services mobiles : les micro-services, les microhost et la Mobile Service Platform (MSP). Notre choix s’est porté sur la technologie MSP,
tout d’abord pour son support des flux de contenu ainsi que pour la connaissance
technologique que nous en avions. MSP est un middleware basé sur un proxy situé dans
le système de surrogate Jini 1 . Les spécifications initiales de MSP ne supportant pas une
architecture SOA, nous avons étendu cette dernière pour intégrer la gestion des services
web. La mise en place d’un service nomadique (service fourni par un composant mobile)
en utilisant MSP se fait à l’aide de deux composants :
1. Une application réalisant le service, située sur le mobile, que l’on nomme service
sur mobile.
2. Une représentation du service sur la partie fixe du réseau que l’on nomme surrogate
ou substitut.
Le substitut fonctionne comme un proxy pour le service sur mobile et intervient dans
la découverte de services réseaux. Un hôte substitut permet de gérer plusieurs substituts.
L’architecture MSP est composée des éléments suivants :
1. MSP-I/O qui se trouve sur le système mobile et intéragit avec le service fourni.
2. MSP-Interconnect est déployé sur le substitut hôte et intéragit avec le substitut.
3. MSP-Messages spéficie la structure des messages échangés entre le mobile et le
substitut. Ces échanges se font en utilisant le protocole HTTP.
L’architecture de notre plate-forme technique est présentée en figure 2.7. La plateforme communautaire est une extension du logiciel open source Dolphin 2 , développé en
PHP. Dolphin a été installé sur un serveur Apache et une base de données MySQL. Du
côté de la plate-forme communautaire, les web services ont été implémenté en PHP. Les
services commerciaux mobiles, d’information de contexte sont développés en tant que
service nomadique. Pour l’interopérabilité entre les services mobiles et la plate-forme
communautaire, des interfaces spéciales ont dues être développées pour permettre au
client Jini de fonctionner en tant que service web et le substitut en tant que client de
service web. Pour réaliser ces interfaces nous avons utilisé Eclipse WTP.
1. http://www.jini.org
2. http://www.boonex.com/dolphin/
Section 2.3. Scénario 2 : Communautés virtuelles mobiles
2.3.5
47
Application
Le cas présenté ici se situe dans le domaine de l’informatique de santé mobile (mhealth). Bob le patient et Alice l’ambulancière rejoignent la plate-forme communautaire.
Le centre de santé local crée une sous-communauté nommé HCC (pour Health Care
Community en anglais). Le service de mise en relation recommande à Alice, Bob et
d’autres membres de rejoindre la communauté HCC. Bob et Alice rejoignent la communauté en mettant à jour leur profil avec les informations nécessaires à HCC (les
troubles dont souffre Bob, . . .). Le service de mise en relation recommeade à chacun de
rejoindre le réseau social de l’autre, en se basant sur les informations fournis au profil
HCC. Bob, Alice et d’autres peuvent ainsi établir des liens, se rencontrer, pour partager
leurs expériences. Pendant ce temps, le HCC annonce qu’il met à disposition un système
de télé-surveillance des patients atteint d’épilepsie. Pour faciliter cette surveillance,
différents fabricants de réseaux de capteurs corporels (BAN pour Body Area Network)
qui jouent ici le rôle de fournisseurs de produits, proposent leur produits. Le système de
recommandation propose à Bob un BAN compatible avec son PDA. Bob (consommateur
de produit) achète le BAN et s’abonne au service de télé-surveillance via la plate-forme
communautaire. Alors que Bob est atteint d’une crise épilepsie, le BAN détecte la crise
et transmet les informations via son PDA à la plate-forme communautaire. Le service
de télé-surveillance recherche alors l’ambulance la plus proche de Bob. Le système de
mise en relation sensible au contexte lui indique alors qu’Alice est la plus proche de Bob.
HCC invoque alors le service d’Alice (service commercial) pour qu’Alice fournisse les
soins d’urgence à Bob.
2.3.6
Conclusion
Au cours de ces travaux, nous avons étudié le modèle économique des communautés virtuelles au sein desquelles les utilisateurs mobiles pouvaient être non seulement
consommateur, mais producteur de services. Nous avons sur une approche orientée
services pour la réalisation de notre plate-forme technique basé sur ce modèle économique. Nous avons concentré notre travail sur l’aspect service mobile ainsi que sur les
spécifications de la plate-forme communautaire. L’utilisation combinée des données de
contexte ainsi que service mobile permet la création de fonctionnalités avancées au sein
de la plate-forme communautaire.
Ces travaux permettent de mettre en lumière le potentiel économique des communautés virtuelles, notamment dans les applications mobiles. Les communautés virtuelles
de connaissances sont ici un sous ensemble de la communauté, puisqu’elle recouvre
la partie contenu social des intéractions, néammoins elles présentent un fort potentiel
économique que le modèle économique présenté permet d’exploiter.
48
Chapitre 2. Scénarios motivants
2.4 Scénario 3 : Projet DRPI
But : partage de documents entre chercheurs et échanges par voie électronique.
Contexte du projet. Role du VKN. Mise en place de la plate-forme [Elmorr08,
Subercaze09, El Morr09]
Le projet DRPI 3 (Disability Rights Promotion International ) est un projet international
visant à surveiller les violations des droits des handicapés dans le monde. Le projet est
divisé par pays. Nos travaux se sont focalisés sur la partie DRPI Canada, qui est un des
membres fondateurs du projet. Ce projet rassemble des acteurs académiques aussi bien
que des membres de la communauté des handicapés.
L’approche holistique choisie par le comité de pilotage du projet DRPI se concrétise par une communication continue et un partage des ressources, méthodologies et
approches des quatre thèmes du projet. Ces quatre thèmes définis ci-après, doivent permettre de couvrir et d’obtenir les informations sur les nombreux types de discrimination
dont peuvent souffrir les handicapés :
– Surveillance des expériences personnelles : des personnes souffrant d’un handicap
sont impliquées dans la surveillance et peuvent faire part de leurs expériences
personnnelles de discrimination.
– Surveillance des médias : les productions médiatiques concernant le handicap sont
analysées à travers le prisme des droits de l’homme.
– Surveillance des aspects juridiques : le statut actuel et l’évolution de la législation
sont suivis pour s’assurer du respect des droits fondamentaux des personnes
souffrant d’un handicap.
– Surveillance des statistiques et sondages : le but est ici de s’assurer que les données,
sondages et statistiques sont recueillies dans le respect de la législation concernant
les handicapés.
Il est aussi fondamental de construire un partage de la connaissance au sein de la
communauté, pour promouvoir une prise de conscience des discriminations dont sont
victimes les handicapés, afin qu’il participent eux aussi aux respects de leurs droits.
Dans ce contexte, un système complexe est requis pour faciliter la collaboration d’un
spectre varié de participants autour des quatre thèmes énoncés ci-dessus : chercheurs,
représentants de la communauté, législateur et grand public.
2.4.1
Communautés virtuelles
Les communautés virtuelles (VC par la suite) ont reçues une certaine attention de
la part des communautés en informatique, sociologie, psychologie, ainsi que d’autres
disciplines [Preece00]. Une communauté virtuelle est une forme de système social, il
3. http://www.yorku.ca/drpi/
Section 2.4. Scénario 3 : Projet DRPI
49
hérite de certaines des caractéristiques de notre système social [Weissman00]. Les communautés virtuelles peuvent être classées selon différentes perspectives [El Morr07,
Kawash05, Stein05], parmi les différents types de VC, existe celui de réseau de connaissance (Knowledge Network en anglais). Les réseaux de connaissance sont des communautés au sein desquelles les participants capturent, accèdent, utilisent, créent et définissent
des connaissances [Merali01]. Notre propos est de spécifier et d’implémenter un réseau de connaissances pour la génération et la dissémination de connaissances dans le
contexte du projet DRPI. Notre plate-forme VC-KM (gestion de connaissance et communauté virtuelles) est un modèle hybride qui supportent différents niveaux d’approches
[Jansen02]. Dans chaque thème de recherche du projet, les chercheurs et les membres
de la communauté gèrent des activités complexes extrêmement variables alors que la
dissémination d’une partie des connaissances au grand public doit se faire avec simplicité. Beaucoup de plate-formes de communautés virtuelles existent, notamment en
open-source. Malheureusement aucune n’est adaptée au besoin de notre projet en terme
de relation entre les membres, gestion de la confidentialité (complexe ici avec les différents types de membres), édition collaborative sde documents , partage à différents
niveaux de granularité. De plus, aucun des sites ne vérifie le niveau d’accessibilité aux
handicapés requis par ce projet.
2.4.2
Design de la plate-forme et implémentation
Dans le domaine du handicap, les outils et resources pour la collecte de données
sont épars, de même que les outils et méthodes pour les différents niveaux d’analyse
(individuel, systèmique) et particulièrement ceux dédiés au contexte canadien. Un
des besoins importants est de permettre un apprentissage continu et permettre de
développer les capacités d’analyse dans le contexte de la surveillance des droits (à
l’aide de manuel, vours, exercices, livres . . .). De manière interne aux chercheurs, la
communauté doit permettre aux chercheurs de collaborer efficacement, de vérifier et
valider les propositions. La communauté doit faciliter la création de connaissances ainsi
que la recherche au sein de la plate-forme. En effet les productions attendues sont très
nombreuses et la recherche d’information jouera un rôle primordial pour le succés de
la plate-forme. Notre plate-forme a été conçue autour des aspects suivants (voir figure
2.8) :
1. Création de connaissance
2. Découverte de connaissance
3. Dissémination des connaissances
4. Gestion des membres et des accés
50
Chapitre 2. Scénarios motivants
Création de
connaissances
Découverte de
connaissances
Communauté
virtuelle de
connaissances
Dissémination
des
connaissances
Gestion de
communauté
F IGURE 2.8 – Vue d’ensemble des composants de la plate-forme collaborative
2.4.2.1
Implémentation de la plate-forme
La plate-forme a été développé sous la forme d’une application Web en JAVA hébergée dans un container de Servlet Tomcat et d’une base de données sous Derby. Les
fonctionnalités classiques de gestion des membres ont été développées, ainsi qu’un
système de création de communautés.
Cinq communautés ont ensuite été créées, quatre autour des thèmes du projet et
restreintes aux participants, la cinquième étant ouverte au grand public. Deux niveaux
ont été créé, administrateur et membre. Chaque administrateur gère sa communauté, un
super administrateur gérant la plate-forme globale (voir fig 2.9). Chaque membre peut
ensuite devenir non seulement consommateur mais aussi producteur de contenu. La
communauté publique est la seule qui ne nécessite pas l’approbation de l’administrateur
pour pouvoir la rejoindre. Les membres des communautés autre que celle publique, sont
essentiellement des chercheurs, donc producteurs de contenu. Néanmoins ils sont aussi
consommateurs des informations échangées et produites par leurs collègues.
Les administrateurs et les membres des communautés peuvent envoyer des documents sur la plate-forme et assigner une visibilité à chacun de leur fichier (voir figure
2.10). Chaque membre peut décider si son document est visible par un membre ou par
Section 2.4. Scénario 3 : Projet DRPI
51
F IGURE 2.9 – Création d’une nouvelle communauté
une communauté. Le droit individuel étant prioritaire sur le droit global. Il est donc
possible d’exclure un membre d’une communauté pour la visibilité d’un document.
2.4.2.2
Ergonomie et accessibilité
Pour s’assurer de l’ergonomie du portail, nous avons suivi les guide des bonnes
pratiques du département de la santé américaine 4 et nous avons utilisé un code XHTML
qui satisfait aux normes W3C ainsi qu’un nombre réduit d’images pour ne pas pénaliser
les handicapés visuels. L’apparence du site est claire et légère (en temps de chargement),
de conception classique avec un menu à gauche et une navigation possible par raccourci
clavier.
2.4.3
Gestion des connaissances
Deux tendances prédominent actuellement la conception de la gestion des connaissances, l’approche centrée utilisateur et l’approche centrée technologie de l’information.
En nous basant sur les expériences passées [Davenport99] nous avons appliqué un certain nombre de bonnes pratiques pour la réalisation de notre plate-forme spécifique au
domaine de la santé et du handicap. Notre approche étant essentiellement technique,
ces pratiques simples telles qu’une structure flexible pour l’application, une accessibilité
avancée ont été mises en œuvre des spécifications jusqu’à l’implémentation.
Au sein de la plate-forme de nombreux utilisateurs produisent un large nombre
de documents qui seront répartis entre les différentes communautés. Deux problèmes
4.
52
Chapitre 2. Scénarios motivants
F IGURE 2.10 – Un membre choisissant la visibilité de ses documents, soit pour des
membres ou pour des communautés
Section 2.4. Scénario 3 : Projet DRPI
F IGURE 2.11 – Edition des mots-clés après extraction
53
54
Chapitre 2. Scénarios motivants
F IGURE 2.12 – Un membre choisissant la visibilité de ses documents, soit pour des
membres ou pour des communautés
majeurs ont été identifiés et nous avons développé des solutions pour les résoudre. Tout
d’abord, la recherche de documents dans un grand ensemble de documents hétérogènes
(plate-forme) est un problème important. L’utilisateur doit pouvoir accéder rapidement
et efficacement au contenu qu’il recherche. Ensuite, le nombre de membres du projet
étant amené à croître rapidement, un certain nombre de productions risque de passer
inaperçu, noyé dans la masse du contenu. Par conséquent il est important de faciliter la
recherche et la découverte de connaissances au sein de la plate-forme.
Pour résoudre ce problème, nous avons conçu un système de description des documents et des utilisateurs qui permet de
1. notifier les utilisateurs quand un document qui les intéressent potentiellement a
été mis en ligne
2. faciliter la recherche d’information
3. détecter des similarités de profils entre les utilisateurs
Les étapes de ce processus sont décrites en figure 2.12. Le document est tout d’abord mis
en ligne par utilisateur. Le système d’extraction automatique propose des mots-clés à
l’utilisateur qui choisit d’en rajouter ou d’en supprimer (fig 2.11). Ensuite le document est
indexé par la plate-forme. Les utilisateurs ayant un profil correspondant à la description
du document sont prévenus par email (système dit push).
Section 2.5. Conclusion
55
A terme, nous utiliserons les données de navigation pour extraire les centres d’intéret
de l’utilisateur [Widyantoro01]. Nous avons utilisé le système KEA pour extraire les
mots-clés d’un document. Le modèle a tout d’abord été entrainé sur une cinquantaine
de documents annotés par nos soins. Les résultats de ce modèle d’extraction dédié à
l’informatique médicale et au handicap sont très bons.
2.4.4
Conclusion
La création d’une plate-forme Web supportant les communautés virtuelles de
connaissances relatives au projet DRPI a permis d’assurer le lien entre chercheurs,
étudiants et membres de la communautés. L’utilisation des communautés s’est faite
ici dans un cadre statique, le nombre de communauté étant fixe et n’évoluant pas au
cours du temps. Ce contexte particulier nous a conduit à développer une approche du
comportement de l’utilisateur ainsi que de l’analyse des documents qui nous a amené
à réaliser un système avancé de type push. Ce système permet d’augmenter grandement la dissémination des connaissances en comparaison avec un système classique de
recherche.
2.5 Conclusion
La présentation du cadre théorique ainsi que de trois scénarios d’application a
permis de préciser le cadre de nos travaux. L’analyse de la structure d’un sytème de
gestion de connaissances selon l’approche AOA de Calmet a permis de donner des
définitions de la connaissance d’entreprise A partir de ces définitions et suivant la
même approche d’abstraction que pour l’AOA, le concept résultant de l’analyse sont les
communautés virtuelles de connaissances qui fournissent un cadre de travail prenant
en compte les différents aspects d’autonomie, de décentralisation, de modélisation
des connaissances ainsi que des mécanismes d’échanges. Le concept de communautés
virtuelles de connaissances permet de diffuser et d’étendre les connaissances d’une
société d’agents. La connaissance n’est pas limitée au domaine d’intérêt de chaque agent
mais comprend aussi les connaissances des mécanismes d’échanges, de "traduction" des
ontologies et du comportement social (individualiste, social). L’implémentation d’un
prototype a permis de mettre en œuvre les différents aspects.
Les trois scénarios ont mis en valeur le potentiel d’applications qui découlent des
communautés virtuelles de connaissances.Le framework proposé dans le premier scénario, basé sur des échanges de connaissances entre des agents de contexte et des agents
personnels au sein de communautés permet l’intégration dynamique de nouveaux capteurs sans respécification de l’application. L’intégration d’un second capteur d’activité
dans le cadre du scénario applicatif du réveil nécessite seulement la mise en place d’un
56
Chapitre 2. Scénarios motivants
agent de contexte lié à ce second capteur et de la modification des règles de décision
de l’agent personnel pour gérer les cas ou les deux capteurs fourniraient des niveaux
d’activité différents. Cette approche décentralisée permet de tirer pleinement parti de
l’aspect autonomie que présente l’approche agents et le scénario du réveil permet d’illustrer son fonctionnement. Le synthétiseur est le composant innovant de cette approche
qui permet de transformer les informations de l’agent en connaissances échangeables
avec les autres agent. Ces échanges basés sur les VKC permettent l’ajout dynamique de
nouveaux capteurs et mettent en lumière l’aspect dynamique et flexible des VKC.
Dans le deuxième scénario nous avons étudié le modèle économique des communautés virtuelles au sein desquelles les utilisateurs mobiles pouvaient être non seulement
consommateur, mais producteur de services. Nous avons sur une approche orientée services pour la réalisation de notre plate-forme technique basé sur ce modèle économique.
Nous avons concentré notre travail sur l’aspect service mobile ainsi que sur les spécifications de la plate-forme communautaire. L’utilisation combinée des données de contexte
ainsi que service mobile permet la création de fonctionnalités avancées au sein de la
plate-forme communautaire. Ces travaux permettent de mettre en lumière le potentiel
économique des communautés virtuelles, notamment dans les applications mobiles. Les
communautés virtuelles de connaissances sont ici un sous ensemble de la communauté,
puisqu’elle recouvre la partie contenu social des intéractions, néammoins elles présentent
un fort potentiel économique que le modèle économique présenté permet d’exploiter.
Le troisième scénario a montré la conception et l’implémentation d’une plate-forme
Web supportant les communautés virtuelles de connaissances relatives au projet DRPI,
plate-forme qui permet d’assurer le lien entre chercheurs, étudiants et membres de la
communautés. L’utilisation des communautés est faite ici dans un cadre statique, le
nombre de communauté étant fixe et n’évoluant pas au cours du temps. Ce contexte
particulier nous a conduit à développer une approche du comportement de l’utilisateur ainsi que de l’analyse des documents qui nous a amené à réaliser un système
avancé de type push. Ce système permet d’augmenter grandement la dissémination des
connaissances en comparaison avec un système classique de recherche.
2.5.1
Discussion
Dans la définition des VKC donnée dans la première section, la base de connaissances
ne contient pas seulement des ontologies, mais aussi trois autres composants (cognition,
communication et sécurité). Cependant, l’implémentation montre une différence de
traitement entre les différents composants. En effet les ontologies sont les seules parties
de la base de connaissances qui sont échangeables entre les agents. Les trois autres
composants sont programmés sont internes à l’agent. En premier lieu on pourrait croire
que c’est le langage d’implémentation des agents qui ne permet pas réutiliser le code de
chacun des composants. Mais ces agents, basés sur JADE, sont programmés en JAVA, le
Section 2.5. Conclusion
57
JAVA proposant des fonctionnalités de réflection dans le package java.lang.reflect
et offre la possibilité de transférer des portions de code exécutables entre des programmes
JAVA. Cette limitation dans le transfert des connaissances provient de l’architecture des
agents JADE. Les agents sont conçus pour échanger des messages au format FIPA-ACL
et pour gérer de manière interne des ontologies. Les parties exécutables qui sont les
comportements (dans le package jade.core.behaviours) ne sont pas conçus pour
être échangés et intégrés dans les agents.
L’implémentation a permis de mettre en lumière deux problèmes. Le premier est
l’hétérogénéité des composants de la base de connaissances. Les formalismes de représentation des connaissances au sein de l’implémentation sont hétérogènes : les ontologies
sont au format RDF, les composants responsables de la communication, cognition et
sécurité sont programmés en JAVA (une partie de la sécurité est en RDF, pour la description des politiques). Cette hétérogénéité combiné aux limitations de l’architecture
JADE, rend une partie de la connaissance seulement interne aux agents. Le deuxième
problème découle du premier et pose des questions plus théoriques. La distinction
entre les parties échangeables et non échangeables de la base de connaissances soulève
plusieurs questions : une connaissance qui n’est pas échangeable est-elle une connaissance ? si oui, dans quelle mesure est-elle utile pour le système ? Quand peut-on parler
de connaissance ? Ces questions levées par un problème technique sont en fait d’ordre
théorique et touchent à la nature même de la connaissance. De la même manière que
l’AOA s’inscrit dans le cadre d’une théorie sociologique, il nous apparait important de
préciser le cadre épistémologique dans lequel nous nous plaçons. Notre état de l’art se
porte donc en premier lieu sur la notion de connaissance et de comment cette connaissance peut être mise en œuvre au sein d’un système informatique. Nous discutons dans
cette partie de la notion de connaissance au sens théorique, c’est-à-dire dans le domaine
de l’épistémologie ainsi que le domaine de la connaissance appliquée qu’est la gestion
des connaissances.
La distinction entre les composants échangeables et non échangeables (au sens
d’échange entre agents et non au sens d’interchangeable) de la base de connaissances
se fait selon un critère simple. Les ontologies sont statiques et ne donnent pas lieu à
une exécution de code. Les autres composants sont des composants exécutables par la
machine. Le but que nous nous fixons au cours de cette thèse, est de réussir à unifier
la base de connaissance, au sein d’un même formalisme afin de permettre l’échange
de n’importe quelle connaissances. Nous avons vu que la limitation était imposée par
l’architecture des agents JADE et par l’hétérogénéité des connaissances dans la base. Une
nouvelle architecture d’agent supportant une nouvelle base de connaissances doit être
mis en œuvre. Les deux domaines qui nous concernent, les agents (pour l’architecture) et
la représentation des connaissances (pour l’hétérogénéité) sont étudiés dans les sections
suivantes de l’état de l’art.
58
Chapitre 2. Scénarios motivants
Les trois scénarios ont mis en évidence les domaines d’application variés des communautés virtuelles de connaissance. La mobilité, les applications sensibles au contexte,
le partage de documents et de connaissances sont autant de domaines ou nous avons
mis en œuvre ces communautés. Chacun de ces scénarios a montré un cas d’application
différent, nécessitant le développement de composants additionnels : sur JADE-LEAP
dans le premier scénario, d’interface pour les services Web dans le second et d’une plateforme web pour le dernier. Pour les deux premiers, ce sont les problèmes de mobilité
qui ont entrainé des extensions du prototype existant. Le dernier projet nous montre
un chemin qui intéresse plus nos recherches. En effet les VKC ne sont pas seulement
un espace d’échanges de messages comme nous l’avons vu dans la première partie de
ce chapitre. Une première constatation s’impose. Les VKC fonctionnant à l’aide d’un
tampon de messages ne sont qu’un instance de la classe des VKC. Ces VKC comprennent
tous les modes d’échanges entre agents. Se pose alors la question de la définition, de
la formalisation de ces communautés au sens plus large. Ces communautés une fois
formalisée peuvent alors devenir une connaissance. Savoir utiliser une communauté
doit alors devenir une connaissance échangeables entre deux agents .
En résumé notre thèse se propose de répondre aux problèmes suivants :
– Intégrer tous les éléments de la base de connaissances pour les rendre échangeables
et utilisables par les agents. Concevoir une architecture d’agent à cette fin.
– Comment les agents peuvent-ils intégrer ces nouveaux types de connaissances
dans leurs bases de connaissances.
– Formaliser et rendre les communautés virtuelles de connaissances utilisables et
échangeables pour les agents que nous aurons définis.
L’universalité des hommes se repaît de l’apparence comme de la réalité ; souvent
même l’apparence les frappe et les satisfait plus que la réalité même.
Nicolas Machiavel - "Discours sur la première Décade de Tite-Live"
3
Etat de l’art
60
Chapitre 3. Etat de l’art
Plan du chapitre
3.1
Connaissances et gestion des connaissances . . . . . . . . . . . . . .
3.1.1
Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2
Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3
Gestion des connaissances distribuées . . . . . . . . . . . . .
3.1.4
Conclusion de l’état de l’art sur la gestion des connaissances
.
.
.
.
.
61
61
67
68
70
3.2
Représentation des connaissances et Web Sémantique . . .
3.2.1
Web Sémantique . . . . . . . . . . . . . . . . . . . .
3.2.2
Ontologies . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3
Historique du Web Sémantique . . . . . . . . . . . .
3.2.4
Standards du Web Sémantique . . . . . . . . . . . .
3.2.5
Raisonneurs . . . . . . . . . . . . . . . . . . . . . . .
3.2.6
Conclusion de l’état de l’art sur le Web Sémantique
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
72
72
73
75
82
83
3.3
Agents et Systèmes multi-agents . . . . . . . . . . . . . .
3.3.1
L’agent . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2
Les systèmes multi-agents . . . . . . . . . . . . .
3.3.3
Domaines d’applications . . . . . . . . . . . . . .
3.3.4
Différents niveaux d’approche . . . . . . . . . .
3.3.5
Approche abstraite . . . . . . . . . . . . . . . . .
3.3.6
Architectures standards . . . . . . . . . . . . . .
3.3.7
Critères d’analyses . . . . . . . . . . . . . . . . .
3.3.8
Langages de programmation agents . . . . . . .
3.3.9
Plates-formes . . . . . . . . . . . . . . . . . . . .
3.3.10 Applications agents basés sur des connaissances
3.3.11 Conclusion de l’état de l’art sur les agents . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 84
. 84
. 86
. 87
. 87
. 88
. 89
. 94
. 96
. 107
. 111
. 121
3.4
Analyse et mise en perspective . . . . . . . . . . . . . . . . . . . . .
3.4.1
Agents et composants . . . . . . . . . . . . . . . . . . . . .
3.4.2
Echanges des différents types de connaissances . . . . . .
3.4.3
Un modèle unifié des connaissances et des comportements
.
.
.
.
.
.
.
.
3.5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.5.1
Conclusion de l’analyse . . . . . . . . . . . . . . . . . . . . . . 133
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
122
123
126
127
Section 3.1. Connaissances et gestion des connaissances
61
gestion distribuée des connaissances est un domaine qui se situe à l’intersection
de plusieurs champs de recherche. Au nombre de trois, ces domaines existent indépendemment de notre domaine d’étude. Nous allons présenter dans ce chapitre ces
différents domaines. Nous commencerons tout d’abord par l’épistémologie qui est la
science de la connaissance, que nous mettrons en parallèle avec l’approche moderne de
la gestion des connaissances dans les organisations. Nous présenterons ensuite les techniques de représentation des connaissances. Le dernier domaine que nous présenterons
est le paradigme multi-agents ainsi que ses applications au domaine de la gestion des
connaissances.
L
A
3.1 Connaissances et gestion des connaissances
notion de connaissance en informatique peut être abordée de différentes manières, selon des considérations théoriques ou opérationnelles. L’épistémologie
est la science de la connaissance, et elle préexiste évidemment à l’informatique. Avec
l’avènement de l’informatique, on peut distinguer plusieurs branches de recherches. la
gestion des connaissances, issue du monde l’entreprise. L’épistémologie appliquée à
l’informatique, qui s’interroge sur la notion de connaissance dans les systèmes informatiques. Le domaine de la représentation des connaissances, s’occupent des formalismes
permettant de représenter les connaissances. L’extraction des connaissances, qui traite
des manières automatisables de découvrir des connaissances à partir de données. Cette
liste n’entend pas être exhaustive, mais donne un aperçu du panel des recherches autour
de la connaissance et de l’informatique.
L
A
Nos recherches portent sur les différents types de connaissance et la manière de les
transférer entre agents (voir discussion, chapitre précédent).
La gestion des connaissances est un domaine de recherche très actif depuis les années
90, époque à laquelle lui a été donné son nom actuel. Cependant ce champ a existé
auparavant sous différents noms. C’est dans ces différents courants que l’on trouve ses
racines. La gestion des connaissances telle que nous la connaissons aujourd’hui est très
liée aux technologies numériques et aux réseaux. Pour mieux comprendre ce champ de
recherche nous donnons plusieurs définitions pour introduire le cadre dans lequel nous
nous plaçons. Nous présenterons ensuite un historique de la gestion des connaissances.
3.1.1
Définitions
Pour aborder l’état de l’art de la gestion des connaissances, il nous faut tout d’abord
introduire le concept de connaissance. Nous allons aborder cette question en deux temps.
Tout d’abord la philosophie de la connaissance ou épistémologie a fourni tout au long
de l’histoire un certain nombre de définitions et de discussions. Nous détaillerons les
62
Chapitre 3. Etat de l’art
différentes approches philosophiques et épistémologiques. L’apparition de la gestion
des connaissances au cours de années 80 a donné lieu à une autre approche, plus
pragmatique, de la connaissance. Nous présenterons et discuterons les définitions de
la connaissance au sens de la gestion de connaissance, puis nous établirons les points
communs et différences dans ces deux approches.
3.1.1.1
Théorie de la justification
Une des premières définitions nous vient de Platon dans son Théétète [Platon.94]
(201d) :
Définition (La connaissance, selon Platon). « La connaissance est une opinion droite pourvue
de raison ».
Une opinion droite pour Platon est une opinion qui est vraie dans le sens ou elle
coincide avec la réalité. Pour autant cette coincidence avec la réalité pourrait être accidentelle, dans ce cas la connaissance n’aurait pas de valeur pour Platon. Il donne l’exemple
de la plaidoirie mensongère de l’avocat qui peut convaincre ses jurés à l’aide d’arguments faux. Pour autant cette plaidoirie ne constitue pas une connaissance puisque ses
fondements sont erronnés. Platon pose donc la restriction suivante : l’opinion droite
doit être « pourvue de raison ». Si par exemple je regarde la position de la lune pour
savoir si le Paris Saint-Germain gagnera la coupe de France cette année, il se peut que
l’interprétation que j’en fasse soit cohérente avec la défaite du club, pour autant je n’ai
pas de raison de croire que la position de la lune puisse m’indiquer la victoire ou défaite
du Paris Saint-Germain. Le terme "pourvue de raison" n’est donc pas ici par le fruit du
hasard. La raison, pour Platon, doit permettre d’établir la validité de la connaissance.
C’est-à-dire, que l’on doit être capable, par un raisonnement logique, de convaincre
l’interlocuteur de la véracité de notre propos. Ce raisonnement, ne doit donc pas être
erronné ou volontairement fallacieux.
La distinction est faite par Platon entre les connaissances qui sont « empiriques »,
c’est à dire qui relèvent d’une connaissance empirique et les connaissances démontrables
que l’on a énoncées ci-dessus. Les connaissances empiriques ou empiriques, comme
par exemple connaître le chemin d’un point A à un point B relèvent de l’opinion droite
et ne nécessitent pas de démonstration. Si quelqu’un me demande le chemin pour
aller au point B, je peux lui donner le chemin que je connais, pour autant je ne peux
pas lui démontrer que je connais ce chemin. Mon interlocuteur doit expérimenter le
chemin pour être convaincu de ma connaissance de ce chemin. Ces connaissances sont
donc distinctes des connaissances qui nécessitent une « opinion droite pourvue de
raison », puisqu’elles ne nécessitent pas de « raison valable », seule l’expérience peut
alors convaincre l’interlocuteur.
Section 3.1. Connaissances et gestion des connaissances
63
La théorie classique de la connaissance, ou épistémologie, se base sur la définition
de la connaissance comme une croyance vraie et justifiée (justified true belief ou JTB en
anglais). Une connaissance est donc une chose dont on peut donner une démonstration
qu’elle est connaissance (à l’exception des connaissances empiriques). De manière fomelle, cette définition dite de la croyance vraie justifiée s’exprime de la manière suivante,
un sujet S sait qu’une proposition P est vraie si et seulement :
1. P est vraie
2. S croit que P est vraie
3. la croyance de S dans p est justifiée
Cette définition était globalement acceptée jusqu’à ce qu’en 1963 le philosophe
Edmund Gettier, exhibe des contres-exemples à cette définition. Contre-examples dans
lesquels des croyances peuvent à la fois être vraies et justifiées sans pour autant constituer
une connaissance [Gettier63]. Voici un contre-exemple « à la Gettier » :
Alice a un ami Bob qui possède une guitare Stratocaster avec laquelle il
joue depuis des années. Alice pense donc que Bob joue sur une Fender. Mais
Alice ne sait pas que Bob avait brisé sa Stratocaster dans un accés de folie lors
d’un concert et que pour la remplacer son choix s’est porté sur une Telecaster,
c’est à dire un autre modèle de la marque Fender. Alice sait-elle que Bob joue
avec une guitare de marque Fender ou bien le croit-elle seulement ?
Dans ce type d’exemple, la connaissance, même justifiée est seulement dûe à un hasard. Les travaux de Gettier ont une forte influence sur l’épistémologie et la philosophie
analytique moderne [Pacherie04], qui ont eu pour conséquences, non pas l’abandon
de la définition de la connaissance comme JTB mais au contraire, sa mise en place
comme définition minimale sur laquelle sont venus se greffer de nouvelles conditions
qui excluent les contre-exemple de Gettier [Goldman86]. D’autres théories plus récentes,
basées sur des redéfinitions du fait et de la vérité ont permis de nouvelles définitions de
la connaissance, par exemple en s’inspirant des travaux du physicien Werner Heisenberg
[Vilmer05].
Il existe d’autres théories de la connaissance, notamment sensorielle chez Locke ou
basée sur la perception chez Hume. Ces définitions ne sont pour autant pas adaptables
à un système informatique, qui utilise une approche mécaniste de la connaissance.
Notre travail se concentrera donc sur les définitions de la connaissance se basant sur la
justification.
Ainsi, en épistémologie, on a observé l’importance de la notion de justification (et
donc de démonstration) pour établir une connaissance vraie. Les exemples de Gettier
ont montré la limite de cette théorie basée sur une vérité « correspondantiste », c’est à
dire où « une vérité est conçue comme correspondance entre un jugement subjectif et un
fait objectif » [Vilmer05]. La notion de perception de la réalité, qui reviendra notamment
64
Chapitre 3. Etat de l’art
comme un de nos fondements lorsque nous aborderons les systèmes multi-agents,
intervient ici dans le jugement subjectif que l’on a de la réalité.
3.1.1.2
Formalisme en intelligence artificielle
Comme le note Bachimont [Bachimont96] dans sa thèse, les systèmes à base de
connaissances doivent définir la nature de la connaissance pour déterminer la manière
de les opérationnaliser. Dans ses travaux, Bachimont se base sur les systèmes logiques
inférentiels. Il critique le formalisme de représentation des connaissances dans une
syntaxe formelle, en particulier sur la sémantique dont il permet de rendre compte, pour
proposer un symbolisme emprunté à la langue naturelle, qui conjugue l’interprétabilité
et l’effectivité du symbolique.
La traduction de langage naturel dans un langage formel est un problème nécessaire
dans le traitement automatique des connaissances. Des interfaces sont toujours requises
pour intéragir entre l’homme et la machine. Cette traduction s’opère dans deux sens pour
les systèmes formels, tout d’abord la formalisation qui va de l’homme vers la machine,
puis l’interprétation de la machine vers l’homme. Le principe des systèmes formels est
leur capacité inférentielle qui permettent d’expliciter des connaissances certes existantes
dans le système formalisé, mais qui ne sont pas encore apparus aux yeux de l’utilisateur
humain.
Les problèmes aux interfaces ne sont pas ici l’objet de cette thèse et nous nous
focalisons sur la représentation de connaissances qui ne sont pas inférentielles, mais
exécutables au sens des agents, c’est-à-dire produisant un effet sur l’environnement. Ce
type de connaissances n’entre pas dans le cadre d’un système formel inférentiel.
3.1.1.3
Connaissance au sens de la gestion des connaissances
Nous allons maintenant nous écarter du domaine de la philosophie pour étudier les
définitions qui sont à l’œuvre dans le domaine de la gestion des connaissances.
La définition donnée par Samuel Johnson au 18 ième siècle [Boswell05] sert souvent
de base à la définition des connaissances au sens de l’entreprise :
Définition (La connaissance, selon Johnson). « La connaissance est de deux types, soit nous
connaissons nous-mêmes le sujet, ou alors nous savons comment trouver de l’information sur
celui-ci. ».
Davenport et Prusak donnent quant à eux une définition de la connaissance par la
négative [Davenport00] :
Définition (La connaissance, selon Davenport et Prusak). « La connaissance, n’est ni des
données, ni de l’information. Elle est reliée aux deux. La différence entre données, information
Section 3.1. Connaissances et gestion des connaissances
65
et connaissance est une question de degré. Quoiqu’il en soit ces termes ne sont pas interéchangeables. ».
De ces deux définitions de la connaissance, on note que le terme information est présent dans chacune. Si on suit la première définition et que l’on accède à de l’information
sur un sujet, on a alors une connaissance de celui-ci. Dans cette définition la différence
entre connaissance et information reste floue. C’est la possession de l’information qui
en fait une connaissance. Cette définition indique donc qu’une connaissance ne serait
en fait qu’une information sur un sujet. La définition de Davenport, plus récente, a vu
entre temps la naissance de l’informatique et l’apparition du concept de données et de la
théorie de l’information. La connaissance est définie par opposition avec les données et
l’information, que l’on considère alors selon un degré d’abstraction :
abstraction( Donnees) < abstraction( In f ormation) < abstraction(Connaissance)
Dans le cadre de Davenport, ces définitions sont sans rapport avec celles de leur
domaines d’origine respectifs (base de données et théorie de l’information, que ce soit
celle de Shannon ou celle algorithmique de Kolmogorov). Les définitions suivantes sont
données par Davenport [Davenport00] :
Donnée : une donnée est un élément brut, qui n’est pas reliée à un contexte ou à
une quelconque interprétation. Prenons la donnée 30 envoyée par un capteur. Si on ne
connait pas le contexte (est-ce un capteur de température, de pression ?), cette donnée
ne contient aucune information, elle n’indique rien.
Information : une information est une ou plusieurs données associées à un contexte.
En reprenant l’exemple précédent, en ajoutant le type de capteur, par exemple un capteur
de température et la localisation de ce capteur, on dispose maintenant d’une information :
la température dans la pièce x est de 30 degrés celsius.
Connaissance : la notion de connaissance est définie par dérivation, intéprétation et
exploitation des données. Cette définition est certes peu claire, les auteurs ne prétendant
pas remplacer les définitions des épistémologistes mais veulent fournir une définition
applicable de la connaissance. La notion d’utilisation est parfois utilisée pour établir la
différence entre information et donnée [Balmisse02]. Dans l’exemple précédent, si l’on
sait que cette pièce est une chambre d’hôpital, on sera amené à prendre les décisions qui
s’imposent (climatisation, évacuation des patients), la température étant trop élevée.
Ce schéma d’oppostion entre données, information et connaissances est aussi très
courant dans la fouille de données. La figure 3.1 issue de [SILVENT03] en est un exemple.
Certains auteurs proposent de rajouter un niveau au dessus de celui de la connaissance, qui est nommée sagesse et qui décrit l’art de prendre les décisions [Hey04,
Rowley07]. Ces définitions du domaine du KM (Knowledge Management), sont très
loins des discussions philosophiques qui précèdent. Leurs buts sont purement applica-
66
Chapitre 3. Etat de l’art
F IGURE 3.1 – Processus d’extraction de connaissances mettant en exergue l’abstraction
[SILVENT03]
tifs, c’est à dire qu’il s’agit de mettre en place des outils de gestion des connaissances au
sein des organisations.
3.1.1.4
Discussion sur ces définitions
De nombreuses questions se posent aux vues des deux approches, épistémologiques
et gestion des connaissances, qui ne semblent liées que par le terme connaissance. Nous
nous intéressons alors au problème suivant : pourquoi n’y a t-il pas de rapport ou de
notions communes entre ces deux concepts et comment est-il possible de trouver un lien
entre les deux ?
Les deux approches diffèrent fondamentalement, l’approche philosophique aborde le
problème par un questionnement logique, avec une approche scientifique, qui supporte
la réfutation (cf les contre-exemples de Gettier). L’approche pragmatique du KM ne prétend pas remplacer les définitions des épistémologues mais se fixe comme but de mettre
en application des outils de gestion des connaissances. Dans l’approche épistémologique,
les notion de vérité et de réalité sont les piliers qui soutiennent les définitions.
Pour le KM, les notions de vérité et de justification sont absentes, cette approche
se focalisant sur différents niveaux d’abstraction (données, information, connaissance).
L’orientation est clairement donnée vers le traitement automatisé par des moyens numériques et nous montrerons en section 3.2.4.3 que la logique fera une apparition tardive
comparé à l’approche philosophique, mais deviendra un point crucial dans l’approche
récente, notamment par le biais des technologies du web sémantique qui seront utilisées
pour la représentation des connaissances. Mais si la notion de vérité est absente des
définitions du KM, c’est qu’elle est présupposée. On considère que les connaissances qui
seront intégrées au système de gestion sont vraies. C’est en fait un des fondements tacite
de cette approche.
Dans le domaine du KM, si les définitions de données, information et connaissance
sont largement acceptées, cependant, comme le montre T.D Wilson dans son célèbre
article « The Nonsense of Knowledge Management » [Wilson02]le domaine du KM
a constitué une bulle économique, en créant un effet de mode autour du KM, afin
Section 3.1. Connaissances et gestion des connaissances
67
d’en tirer des profits économiques. Cette dérive a conduit comme le montre Wilson
a la prolifération de nombreuses "techniques" et "théories" douteuses. Wilson tend
à présenter le KM comme un "buzz" marketing dénué de liens à un problème réel.
Cependant, au delà des dérives économiques et marketing apparues au milieu des
années 90, nous pensons que les problème posés par le KM sont bien réels, que ce soit
pour une organisation ou d’un point de vue plus global :
– Comment chacun peut-il accéder aux connaissances ?
– Comment transférer des connaissances ?
– Comment acquérir des connaissances ?
– Comment utiliser ces connaissances pour prendre de meilleures décisions ?
Après avoir posé les définitions de la connaissance dans le domaine de la gestion des
connaissances, nous allons présenter un bref historique du domaine et nous détaillerons
ensuite les outils et méthodes appliqués dans ce domaine.
3.1.2
Historique
La gestion des connaissances voit son histoire intimement liée à celle des supports
et celle des avancées techniques dans le domaine de ces supports. Les connaissances
humaines ont d’abord eu une transmission orale, puis l’écriture a permi la pérennisation du savoir. L’avènement de l’imprimerie a permi de diffuser plus largement les
connaissances. La transmission de connaissances tacites, regroupant souvent les connaissances empiriques, comme par exemple les savoir-faire artisanaux, a été rapidement
institutionnalisé. On trouve trace dès le dix-huitième siècle d’une institutionnalisation
de cette transmission de connaissances par le biais du compagnonnage (les premiers
écrits allemands traitent des « Wandergesellen », qui sont comparables au compagnonnage français). Certains historiens situent le début du compagnonnage à la construction
des églises médiévales en Angletterre. Ces immenses chantiers auraient été l’occasion
de mettre en place la transmission des connaissances artisanales. Cette méthode de
transmission perdure encore de nos jours notamment chez les charpentiers allemands.
En ce qui concerne les connaissances qui se transmettent par le biais du langage, le
dernier grand changement, après l’écriture et l’imprimerie est intervenu avec l’avènement de l’informatique qui a eu pour conséquence la dématérialisation du support et
une massification de l’accés à l’information. Les technologies de l’information ont permis
une révolution dans les années 1980, lorsqu’une très grande majorité d’entreprises s’est
équipée d’outils numériques. Stankovsky établit l’apparition de la gestion des connaissances en tant que discipline académique en 1995 [Stankovsky05], sous l’influence des
sciences cognitives et de la psychologie [Wiig00].
Le but de la gestion de connaissances telle qu’on l’étudie actuellement est double. Il
est tout d’abord de pérenniser les connaissances d’une organisation et d’améliorer sa
gestion, et deuxièmement de pouvoir évaluer la valeur du capital des connaissances
68
Chapitre 3. Etat de l’art
détenues par l’organisation. Pour ce faire, de nombreux outils et méthodes de gestion
et d’évaluation ont été développés. Dans notre travail, le premier point, c’est à dire
la pérennisation, transmission et gestion des connaissances sera le seul objet de notre
attention. Le deuxième concerne des considérations économiques, qui sont ici hors de
notre propos.
3.1.2.1
Outils et Méthodes
Les outils électroniques de gestion de connaissance sont au départ des systèmes destinés à être utilisé par les managers pour disséminer l’information (Manager Information
System ou MIS). Ils ont ensuite évolué vers des outils d’aide à la décision (Decision Support Systems ou DSS), puis sont devenus des systèmes capables de délivrer l’information
en temps-réel aux junior ou middle managers (Executive Information System ou EIS),
c’est à dire des niveaux de hiérarchie inférieurs. Finalement l’évolution et l’intégration
de ces systèmes se cristallisent dans les outils de gestion intégrée des connaissances
(Knowledge Management Systems ou KMS) dont les objectifs sont de créer, rassembler,
organiser et disséminer les connaissances au sein de l’organisation [Alavi99].
Les premiers outils modernes de gestion de connaissance se basent sur une approche
centralisée, autour d’un dépôt de connaissances, mis en place et maintenu par des
experts. Les outils de travail collaboratifs électroniques font leur première apparition
notable avec l’utilisation de Lotus Notes par PriceWaterHouse Coopers en 1989 [Alavi99],
puis les KMS se sont généralisés en se basant sur des frameworks centralisés, de plus en
plus nombreux au fil des années.
Ehrig montre que l’approche centralisée est coûteuse [Ehrig03] et que son coût de
maintenance est élevée. Vers le milieu des années 90, de nouvelles approches sont développées, notamment celle de l’entreprise comme système de connaissances distribuées,
qui est issue des travaux de Tsoukas [Tsoukas96]. Tsoukas montre qu’au sein d’une
organisation il est impossible qu’une entité puisse détenir toutes les connaissances, et
que par conséquent les connaissances sont non seulement distribuées géographiquement et au niveau des entités qui les détiennent, mais aussi que cette distribution fait
partie d’un contexte sur lequel l’organisation n’a pas de contrôle (le marché, les autres
organisations, . . . ). Ces travaux signent le départ d’une nouvelle approche, antagoniste
de l’approche centralisée, dans laquelle les entités participant à une organisation jouent
un rôle premier.
3.1.3
Gestion des connaissances distribuées
Une fois le verrou de la centralisation identifié, les premières approches distribuées
ont été mises en oeuvre. En 1999 dans [Alavi99], les auteurs montrent que 36% des
KMS utilisent des filtres ou agents. Cependant le mélange dans une même catégorie des
Section 3.1. Connaissances et gestion des connaissances
69
notions de filtres et d’agents ne permet pas de conclure quant à l’utilisation des agents
dans les KMS. Les approches purement décentralisées apparaissent en 2002 avec les
travaux de Bonifacio, tout d’abord dans des travaux théoriques sur les « Knowledge
Nodes » [Bonifacio02c] puis par le système Kex [Bonifacio02b]. On peut aussi noter
l’existence du framework SWAP, qui est apparu en 2003 [Ehrig03].
Bonifacio démontre que l’approche centralisée des KMS se réfère à une vision objectiviste de l’épistémologie combinée à un paradigme traditionnel de contrôle managérial
[Bonifacio02a]. C’est à dire une gestion des connaissances basée sur une volonté de
disposer de connaissances « objectives », en admettant l’existence d’une telle objectivité.
Cette approche a pour conséquence de figer la représentation des connaissances sur un
modèle unique. Les systèmes centralisés maintenus par des experts en sont l’exemple
le plus pertinent, dans ces systèmes les ontologies de domaines créées par l’expert
constituent le modèle unique de représentation des connaissances.
En analysant la structure de ces KMS, Bonfacio montre que l’organisation interne
et la hiérarchie au sein des KMS est semblable à l’organisation et à la hiérarchie des
compagnies [Bonifacio02a]. Cette approche de contrôle hiérarchique est incompatible
avec la nature distribuée de la connaissance. En effet les échanges de connaissance dans
les organisations entre les membres ne transitent pas dans la pratique par les chemins
de sa structure hiérarchique, les échanges entre les employés étant très nombreux. L’approche distribuée permet donc de prendre en compte les aspects distribués du stockage
et des échanges au sein des organisations. L’approche de Bonifacio se base sur une
approche différente de la notion même de connaissance. La notion d’autonomie est centrale dans l’approche de Bonifacio, chaque communauté maintient une représentation
des connaissances, la notion de coordination entre les communautés permet l’échange
de connaissances entre différentes représentation. Chaque communauté possède un
contexte qui est une représentation explicite du schéma d’interprétation de la communauté. Un lien entre deux communautés, donc entre deux contextes est un "mapping"
entre ces concepts.
L’approche de Bonifacio s’est traduite concrètement par le projet d’EDAMOK (Enabling Distributed and Autonomous Management of Knowledge) qui est la première architecture de gestion de connaissances distribuées [Bonifacio02a]. La figure 3.2 présente
l’approche distribuée au sein d’EDAMOK.
L’architecture reproduit le processus social dit de négotiation du sens en utilisant des
protocoles de communication entre des agents intelligents au sein de communautés.
Ces communautés sont centrées autour d’un concept et les participants suivent un
processus de négotiation pour s’accorder sur le sens commun (c’est à dire l’intersection)
de ce concept. Le rôle de ces agents est aussi de faciliter les recherches en effectuant des
matching avec le contexte (c’est à dire l’interprétation) d’autres communautés. Ce rôle
70
Chapitre 3. Etat de l’art
F IGURE 3.2 – Approche distribuée de la gestion de connaissance [Bonifacio02a]
de médiateur permet d’étendre les requêtes et de donner des résultats plus précis pour
l’utilisateur local.
Le système KEX que nous présentons en section 3.3.10.3 est la plate-forme implémentant l’approche distribuée de EDAMOK. Parallèlement les systèmes d’information multiagents se développent et on assiste à partir de 2003 à la réunion des deux domaines lors
des éditions du symposium AMKM [van Elst04b, Virginia Dignum04, van Diggelen05].
D’autres plates-formes de gestion distribuées de connaissances suivront alors EDAMOK,
elles sont présentées en détail en section 3.3.10.
3.1.4
Conclusion de l’état de l’art sur la gestion des connaissances
Nous avons abordé différents points dans cette partie, tout d’abord les définitions de
la connaissance en épistémologie et dans le domaine de la gestion des connaissances.
Puis nous avons présenté les approches centralisées et décentralisées de gestion des
connaissances.
La définition de la connaissance qui est utilisée dans l’approche appliquée de la
gestion de connaissances repose sur des considérations informatiques et non épistémologiques. La définition de la connaissance qui se fait par opposition aux données
et aux informations, se base sur une succession de traitements informatiques. Prenons
Section 3.2. Représentation des connaissances et Web Sémantique
71
l’exemple d’un capteur de température dans une pièce : les données sont acquises d’un
capteur et représentent une suite de bits, sans signification. Ces données sont ensuite
traitées pour en calculer la température mesurée par le capteur, ce qui constitue alors
l’information. Si l’on extrait d’un relevé de température fournie par le capteur un modèle
qui décrit l’évolution de la température dans cette pièce, on a alors extrait une connaissance à partir des informations. Ces définitions, par niveau d’abstraction, sont en fait les
étapes successives d’un traitement des données suivant un chemin d’abstraction. Mais
le but d’un système de gestion de connaissances est, comme de nombreux systèmes
informatique, de délester l’utilisateur humain de tâches automatisables par la machine.
C’est donc une définition de la connaissance qui est aussi pour l’utilisateur qui doit
prévaloir, plutôt qu’une approche technique. Ce raisonnement ne s’applique pas seulement à la définition de la connaissance en tant que "tout ce qui n’est pas information ou
données", mais à toute définition de la connaissance qui est imposée par la structure de
la machine qui est amenée à traiter les connaissances. La définition épistémologique ("La
connaissance est une opinion droite pourvue de raison) nous semble être plus proche du
fonctionnement "humain", c’est donc cette définition qui selon nous, doit être au centre
des systèmes de gestion des connaissances.
Les travaux de Bonifacio ont mis en évidence la notion d’autonomie de la connaissance et ont ouvert la voie à la gestion décentralisée des connaissances. Cependant
l’autonomie de la représentation des connaissances se limite au domaine de la communauté. Cette autonomie de représentation doit être étendue complètement jusqu’aux
entités qui composent les communautés. Les techniques de représentation des connaissances sont précisément l’objet de la prochaine partie.
3.2 Représentation des connaissances et Web Sémantique
Les systèmes de représentations des connaissances et les systèmes de bases de
données décrivent et raisonnent sur des aspects du monde réel. Le but de ces systèmes est
de pouvoir stocker de manière électronique les connaissances. Certains de ces systèmes
sont basés sur des paradigmes logiques, comme le Prolog, les Frame-Logics et le Web
Sémantique, nous restreindrons notre domaine d’étude à ces systèmes. On caractérise
ces systèmes par les hypothèses qui sont faites, sur la nature des connaissances et sur la
logique qui y est utilisée. On distingue les caractéristiques suivantes [Hustadt94] :
Monde Fermé Toutes les informations qui ne sont pas connues comme vraies sont
fausses. C’est le principe du tiers exclu.
Monde Ouvert Il peut exister des faits qui soient vrais et qui ne sont pas contenus dans
le systèmes
Domaine fermé Il n’existe pas d’autres objets dans le monde que ceux désignés par les
variables du système.
72
Chapitre 3. Etat de l’art
Domaine ouvert Il existe plus d’objets que ceux décrits dans le système.
Consistant Un système est consistant si il n’existe pas de propositions qui puissent être
en contradiction.
Paraconsistant Système logique qui tolère les inconsistances. Ces systèmes sont considérés comme inintéressant par les spécialistes de la logique [Girard07]. Nous les
laisserons donc volontairement en dehors de notre étude.
De nombreux formalismes et outils ont été développés pour répondre à cette question 1 et il serait long et fastidieux de les lister. Actuellement, les standards et technologies
issus du Web Sémantique, basés sur la notion d’ontologies tendent à supplanter les autres
techniques de représentation.
3.2.1
Web Sémantique
Le World Wide Web grossit à une vitesse très grande (26 millions de pages indexées
par Google en 1998, un milliard de milliard en 2008 2 ) et la recherche d’information
au sein du réseau est rendue difficile par la structure des pages internet. En effet les
liens dans le web classique sont des liens entre des pages et ces liens ne contiennent pas
plus d’information que le lien lui-même. Les pages étant écrites en langage naturel (i.e.
français, chinois, anglais, ...), les mécanismes de recherche d’information sont basés sur
des analyses statistiques des pages et sur les liens qui les relient entre elles. Le pagerank
de Google est l’exemple le plus célèbre à jour. Le but du web sémantique n’est pas de
remplacer le web classique, mais d’y apporter une structure, afin que les informations
puissent être traitées automatiquement par une machine.
3.2.2
Ontologies
Le concept d’ontologie en informatique, est très largement inspiré de son sens philosophique. En philosophie l’ontologie est l’étude de l’être en tant qu’être, c’est à dire les
propriétés générales de ce qui existe. De la même manière le terme informatique définit
une ontologie comme un ensemble de termes et de propriétés [Gruber93].
Les ontologies ont initialement été développées comme technique de représentation
des connaissances vers la fin des années 80. Le but d’une ontologie est de modéliser un
ensemble de connaissances dans un domaine donné.
Une ontologie est un ensemble structuré des termes et concepts représentant le sens
d’un champ d’informations, que ce soit par les métadonnées d’un espace de noms, ou
1. http://en.wikipedia.org/wiki/Category:Knowledge_representation
accédé le 09/11/09
2. http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html
accédé le 09/11/09
Section 3.2. Représentation des connaissances et Web Sémantique
73
les éléments d’un domaine de connaissances. L’ontologie constitue en soi un modèle
de données représentatif d’un ensemble de concepts dans un domaine, ainsi que les
relations entre ces concepts. Elle est employée pour raisonner à propos des objets du
domaine concerné.
3.2.3
Historique du Web Sémantique
Un lien entre deux pages web peut s’écrire d’une des deux manières suivantes en
HTML :
<a href=’http://www.bnf.fr’>
Bibliothèque nationale de France
</a>
<link title=’Bibliothèque nationale de France’
href=’http://www.bnf.fr’>
Bibliothèque nationale de France</link>
Cet exemple illustre la nature du lien qui lie les pages internet, qui est un lien qui ne
contient pas d’information. De plus il se trouve dans une page écrite en langage naturel,
donc très difficile à analyser automatiquement avec une machine. L’idée qui sous-tend
le web sémantique est de structurer le contenu du web, en particulier avec l’idée de
typer les liens qui relient les informations afin de permettre le traitement automatique.
Pour cela, le formalisme des ontologies se prètent parfaitement à cet exercice. Avant
l’avènement des technologies actuelles du web sémantique, de nombreux projets qui
font maintenant figure de pionniers présentaient déjà l’idée de fusionner les technologies
du web et les ontologies. Nous présentons ici quelques uns des projets dont les idées
préfiguraient les standards actuels du consortium W3C.
Le projet SHOE [Heflin00] pour Simple HTML Ontology extension est une extension
du langage HTML qui permet d’annoter une page HTML en se basant sur le vocabulaire
défini dans les ontologies importées. La page web suivante est un exemple de page non
annotée :
<HTML>
<HEAD>
<TITLE> My Page </TITLE>
</HEAD>
<BODY>
<P> Hi, this is my web page.
I am a graduate student and a research assistant.
74
Chapitre 3. Etat de l’art
<P> Also, I’m 52 years old.
<P> My name is George Stephanopolous.
<P> Here is a pointer to my <A
HREF="http://www.cs.umd.edu/smith"> graduate advisor.</A>
<P> And <A HREF="http://www.cs.umd.edu/papers/paper.ps">
is a paper I recently wrote.
<h3> Brun Hilda </h3>
Brun Hilda is a visiting lecturer here from Germany who doesn’t
have her own web page. However, because I am such a nice
person, I have agreed to let part of my web page space
belong to her. She is 23.
</BODY>
</HTML>
Pour annoter cette page en utilisant le vocabulaire de l’ontologie http://www.cs.
umd.edu/projects/plus/SHOE/onts/cs.html, à l’aide du code suivant, placé
avant la balise fermante </BODY> :
<INSTANCE KEY="http://www.cs.umd.edu/users/george/">
<USE-ONTOLOGY
ID="cs-dept-ontology"
URL="http://www.cs.umd.edu/projects/plus/SHOE/onts/cs.html"
VERSION="1.0"
PREFIX="cs">
<CATEGORY NAME="cs.GraduateStudent">
<CATEGORY NAME="cs.ResearchAssistant">
<RELATION NAME="cs.name">
<ARG POS=TO VALUE="George Stephanopolous">
</RELATION>
<RELATION NAME="cs.age">
<ARG POS=TO VALUE="52">
</RELATION>
<RELATION NAME="cs.advisor">
<ARG POS=TO VALUE="http://www.cs.umd.edu/users/smith">
</RELATION>
<INSTANCE KEY="http://www.cs.umd.edu/users/george/#BRUN">
<CATEGORY NAME="cs.Lecturer">
<RELATION NAME= "cs.name">
Section 3.2. Représentation des connaissances et Web Sémantique
75
<ARG POS=TO VALUE="Brun Hilda">
</RELATION>
<RELATION NAME="cs.age">
<ARG POS=TO VALUE="23">
</RELATION>
</INSTANCE>
</INSTANCE>
Le principe de SHOE est d’ajouter une couche au langage HTML pour y introduire une
description sémantique manipulable par une machine. La représentation ci-dessus est
une reformulation du texte écrit en langage naturel dans le formalisme SHOE et il ne se
substitue pas au contenu HTML précédent, mais il en constitue une annotation.
Le raisonnement logique proposé par SHOE est similaire à celui des clauses de Horn
sans la négation. Suivant le même principe de mélanges d’annotations et de HTML,
Ontobroker [Decker98] est un outil basé sur la logique des Frame ou F-Logic. Parmi les
autres outils, on citera Concerto [Zarri99], LogicWeb [Loke98], qui s’appuient sur une
démarche identique à celle de SHOE et Ontobroker.
3.2.4
Standards du Web Sémantique
Les standards du web sémantique sont issus du consortium W3C qui a été créé en
1994 par Tim Berners-Lee avec le soutien du CERN et du MIT 3 . Les standards dont nous
parlerons ici, ne sont pas des standards au sens normes de la commission européenne
ou ISO, mais des standards industriels qui sont en fait des recommandations de bonnes
pratiques.
Les différents standards du web sémantique sont résumés dans la figure 3.3 communément appellée Semantic Web Layer Cake ou Gâteau en couches du web sémantique. Cette
figure montre l’empilement des différentes couches, les couches supérieures se basant
sur les standards des couches inférieures.
Les couches inférieures présentent les standards déjà connus dans le web hypertexte :
URI pour l’identification des ressources, Unicode comme standard d’encodage, XML
pour la structuration des documents et les Namespace pour la réutilisation des balises
de sources différentes.
XML Query et XML Schema sont des outils permettant l’exécution de requètes sur
les documents XML (XML Query) et la définition de la structure de ces documents (XML
Schema). Le RDF est un modèle de graphe qui permet de décrire des ressources Web
3. Pour plus de détails, le lecteur se référera à http://www.w3.org/History.html
76
Chapitre 3. Etat de l’art
F IGURE 3.3 – Les différentes couches du Web Sémantique
sous forme de triplets. Le langage OWL (couche ontologie) étend la portée du RDF (et
RDFS) en y ajoutant les logiques de description pour décrire les relations entre les entités.
Les requètes doivent permettre de manipuler et de naviguer dans les ressources décrites
en RDF/OWL et les règles permettent de compléter les descriptions des relations qui
étaient impossibles en OWL.
La couche "confiance" repose sur des protocoles cryptographiques et doit assurer
la sécurité et la confiance à l’aide de signature digitale des ressources RDF/OWL. Les
couches "confiance" et "cryptographie" ne sont pour l’instant qu’au stade préliminaire.
3.2.4.1
XML
Le XML (eXtensive Markup Language) est un langage de balisage générique. Il
a été développé par le World Wide Web consortium (W3C) pour faciliter l’écriture
et l’échanges de données structurées dans un format texte. Adopté en 1998 en tant
que recommandation par le W3C, le XML a connu depuis un essor considérable. Tous
les langages de programmation modernes fournissent des API de validation, parsing,
manipulation de données XML, ce qui a largement contribué à son développement.
Les balises en XML sont définies dans un espace de noms, c’est à dire que les
éléments qui composent un document XML peuvent être définies de manière externe.
Cette fonctionnalité du XML permet une grande souplesse d’utilisation et une grande
interopérabilité.
On distingue trois types de nœud dans un document XML.
Tag Ce sont des délimiteurs, les tags ouvrant commencent par "<" et terminent par ">",
les tags fermant commencent par "</". Les tags vident se terminent par "/>".
Element Contenu entre les tags ouvrant et fermant. C’est texte dans l’exempel : "<élément>Texte</élément>"
Attributs Paire nom/valeur. Exemple : <élément attribut="valeur"></élément>
Section 3.2. Représentation des connaissances et Web Sémantique
77
Ils sont illustrés dans le code ci-dessous tiré de Wikipedia 4 :
<?xml version="1.0" encoding="UTF-8"?>
<!-- ’’’Commentaire’’’ -->
<élément-document xmlns="http://exemple.org/" xml:lang=";fr">
<élément>Texte</élément>
<élément>élément répété</élément>
<élément>
<élément>Hiérarchie récursive</élément>
</élément>
<élément>Texte avec
<élément>un élément</élément>
inclus</élément>
<élément/><!-- élément vide -->
<élément attribut="valeur"></élément>
</élément-document>
3.2.4.2
RDF
Le Resource Description Framework (RDF) est une famille de spécifications du
W3C [Klyne04]. Initialement prévu pour représenter un modèle de données pour les
métadonnées.
Un document RDF est un ensemble de triplets de la forme suivante :
(sujet, prédicat, objet)
–
–
–
–
Le sujet est la ressource à laquelle s’applique le prédicat.
Le prédicat est une propriété qui s’applique au sujet
L’objet est la ressource liée au sujet par le prédicat
Un littéral est un objet.
Un exemple de triplets est le suivant :
Exemple 3.1 Exemple de Triplet RDF
(Frédéric L. adore le Web 2.0)
– Sujet : Frédéric L.
– Prédicat : Adore
– Objet : Le Web 2.0
Le sujet et l’objet d’un prédicat peuvent être identifiés par des URI ou peuvent être
des nœuds anonymes. Par contre un prédicat est nécessairement identifié par une URI.
4. http://fr.wikipedia.org/wiki/XML accédé le 12/10/2009
78
Chapitre 3. Etat de l’art
Pour écrire des documents RDF, on dispose de nombreuses syntaxes. La plus courante
est le RDF/XML qui est une sérialisation du RDF en XML.
3.2.4.3
OWL
Le langage d’ontologie pour le Web (Ontology Web Language) 5 est une famille de
langages dédiés à l’écriture d’ontologies. On peut le considérer comme la suite logique
des travaux sur les langages SHOE et DAML+OIL [Horrocks03]. Une ontologie OWL
décrit un ensemble d’axiomes qui placent des contraintes sur des individus appartenant
à des classes ainsi que les types de relations entre eux.
La définition des concepts OWL fait appel aux logiques de description, pour permettre d’obtenir une fondation plus solide que pour RDF. OWL permet l’égalité entre
des propriétés, les concepts de classes équivalentes, d’égalité de deux ressources, de
leurs différences, du contraire, de symétrie et de cardinalité.
Les logiques de descriptions diffèrent selon les constructeurs qu’elles possèdent
(conjonction, négation, . . .), les trois langages d’OWL sont basés sur des logiques de
description différentes. Ces trois langages sont : OWL-Lite, OWL-DL et OWL-Full,
classés ici par ordre d’inclusion selon l’expressivité de leur logique de description.
OWL-Lite : Le langage OWL de base, qui supporte peu de fonctionnalités. La cardinalité
est par exemple limité à 0 et 1. Bien que d’expressivité très limitée, le développement des outils pour OWL Lite s’est montré aussi coûteux que pour OWL-DL
qui est pourtant bien plus expressif. De fait OWL-Lite, qui était dédié à une utilisation simple, par exemple pour la rédaction de taxonomies, est maintenant très
minoritairement utilisé.
OWL-DL : ce langage a été conçu pour permettre le maximum d’expressivité tout en
gardant les propriétés de décidabilité, de complétude et l’existence d’algorithmes
efficaces pour l’implémentation de raisonneurs. Tous les constructeurs OWL sont
présents dans OWL-DL, mais ils sont soumis à certaines restrictions qui garantissent la décidabilité et la complétude.
OWL-Full : est basé sur une sémantique quelque peu différente de OWL-DL, puisqu’il assure une interopérabilité avec RDF Schema. OWL-Full ne garantit pas les
propriétés de décidabilité et de complétude.
Parmi ces trois langages, OWL-DL est indéniablement le plus utilisé puisqu’il garantit la décidabilité et la complétude. De plus, il existe de nombreux raisonneurs pour
l’inférence de connaissances au sein d’ontologies OWL-DL. Parmi ceux-ci, on citera :
1. Pellet [Sirin07]
2. Fact++ [Tsarkov06]
5. http://www.w3.org/TR/owl-guide/
Section 3.2. Représentation des connaissances et Web Sémantique
79
3. RacerPro [Haarslev07]
Tout comme RDF, la syntaxe la plus courante pour OWL est la sérialisation XML.
OWL est un des piliers des standards du Web Sémantique. Sa maturité en fait
maintenant une technologie de choix non seulement pour des projets académiques mais
aussi industriels 6 [Lacy04, Anicic07, Lacy05].
3.2.4.4
SWRL
Le langage de règles pour le web sémantique (Semantic Web Rule Language) est
une proposition de langage [Horrocks04] dont les spécifications ont été soumises au
W3C par un consortium composé du CNRC (Conseil national de recherches Canada), de
l’université de Stanford ainsi que de l’entreprise Network Inference.
SWRL combine les langages OWL-DL et Rule-ML [Boley01]. Etonnament, le consortium a proposé un langage qui n’est pas décidable, ce qui rend l’implémentation de
raisonneurs SWRL impossible. Pour l’implémentation de raisonneurs, un sous ensemble
de règles SWRL est utilisé, qui est appellé SWRL-DL. La construction de SWRL-DL en
partant de OWL-DL est explicité dans [Parsia05].
Règles en SWRL
Une règle SWRL se décompose en deux parties : antécédents et conséquents (aussi
communément appellées conditions et conclusion). La syntaxe abstraite des règles est la
suivante :
rule ::= ’Implies(’ [ URIreference ] { annotation }
antecedent consequent ’)’
antecedent ::= ’Antecedent(’ { atom } ’)’
consequent ::= ’Consequent(’ { atom } ’)’
La règle suivante en syntaxe naturelle :
pereDe( x, y) ∧ f rereDe( x, z) ⇒ oncleDe(z, y)
peut s’écrire selon différentes syntaxes. Nous présentons ici les syntaxes XML et RDF
pour l’écriture de cette requète.
syntaxe XML
l’exemple 3.2 présente la représentation de cette règle en syntaxe XML.
6. Workshop sur les applications de OWL
http://www.webont.org/owled/
80
Chapitre 3. Etat de l’art
Exemple 3.2 Exemple de règle SWRL : Syntaxe XML
<ruleml:imp>
<ruleml:_rlab ruleml:href="#exemple"/>
<ruleml:_body>
<swrlx:individualPropertyAtom swrlx:property="pereDe">
<ruleml:var>x</ruleml:var>
<ruleml:var>y</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:individualPropertyAtom swrlx:property="frereDe">
<ruleml:var>z</ruleml:var>
<ruleml:var>x</ruleml:var>
</swrlx:individualPropertyAtom>
</ruleml:_body>
<ruleml:_head>
<swrlx:individualPropertyAtom swrlx:property="oncleDe">
<ruleml:var>z</ruleml:var>
<ruleml:var>y</ruleml:var>
</swrlx:individualPropertyAtom>
</ruleml:\_head>
</ruleml:imp>
Syntaxe RDF
L’exemple 3.3 montre la représentation de cette même règle en syntaxe RDF :
Lien entre OWL et SWRL
La syntaxe de SWRL se base sur celle d’OWL, les entités intervenant dans les conditions et conclusions des règles SWRL peuvent être définies dans une ontologie OWL.
Pour établir le lien entre les SWRL et OWL, on définit une règle comme un axiome
OWL :
axiom ::= rule
Conclusion sur SWRL
Bien que toujours à l’état de proposition de standards, de nombreux raisonneurs
ont été développé pour SWRL (Pellet, Bossam, . . .), ainsi que des outils d’édition de
règles (SWRLTab pour Protégé). L’adoption rapide par la communauté du SWRL laisse
entendre qu’il devrait s’imposer en tant que standard pour les règles du Web Sémantique,
au détriment de son concurrent le WRL (Web Rule Language) [Ma08].
Section 3.2. Représentation des connaissances et Web Sémantique
Exemple 3.3 Exemple de règle SWRL : Syntaxe RDF
<swrl:Variable rdf:ID="x"/>
<swrl:Variable rdf:ID="y"/>
<swrl:Variable rdf:ID="z"/>
<ruleml:Imp>
<ruleml:body rdf:parseType="Collection">
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="pereDe"/>
<swrl:argument1 rdf:resource="#x" />
<swrl:argument2 rdf:resource="#y" />
</swrl:IndividualPropertyAtom>
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="frereDe"/>
<swrl:argument1 rdf:resource="#z" />
<swrl:argument2 rdf:resource="#x" />
</swrl:IndividualPropertyAtom>
</ruleml:body>
<ruleml:head rdf:parseType="Collection">
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="oncleDe"/>
<swrl:argument1 rdf:resource="#z" />
<swrl:argument2 rdf:resource="#y" />
</swrl:IndividualPropertyAtom>
</ruleml:head>
</ruleml:imp>
81
82
3.2.4.5
Chapitre 3. Etat de l’art
RIF
Le format d’échange de règles (Rule Interchange Format ou RIF) est un ensemble
de standards et d’outils pour permettre l’échange des règles sur le Web. Les standards
RIF sont maintenus par le RIF Working Group 7 qui est un groupe de travail du W3C.
Depuis sa création en novembre 2005, 3 standards ont vu le jour :
– Core : Le noyau, ce dialecte est le sous ensemble minimal à tout les moteurs de
règles. Le noyau supporte les fonctionnalités suivantes :
– Clauses de Horn
– Appartenance dans la condition
– Listes basiques
– Egalité dans la condition
– Données typées
– BLD (Basic Logic Dialect) : Dans ce dialecte, dit dialecte basique, les conditions et
conclusions des règles sont monotones. Il n’est pas possible de changer la valeur
d’un prédicat. BLD supporte les fonctionnalités suivantes (en plus de celles du
noyau) :
– Egalité dans la conclusion
– Fonctions logiques
– Listes ouvertes
– Appartenance dans la conclusion
– PRD (Production Rule Dialect) : Dans ce dialecte des règles de production, les
conditions et conclusions des règles sont non-monotones. Les fonctionnalités sont
les suivantes :
– Révision
– Appartenance dans la conclusion
– Négation
Le but du RIF est de permettre l’échange des règles entre différents systèmes au
travers d’une syntaxe commune. La seule syntaxe du RIF (à la différence de RDF par
exemple) est basée sur XML. La philosophie de RIF est de ne pas restreindre les outils
du web sémantique à l’utilisation d’un seul type de logique. Pour favoriser la communication de règles entre des partenaires (commerciaux ou non), le groupe de travail s’est
fixé comme but l’adoption des standards présentés ainsi que leur mise en œuvre. De
nombreux projets d’implémentation sont actuellement en cours de développement 8 .
3.2.5
Raisonneurs
Pour utiliser concrètement les standards du Web Sémantique, des outils de raisonnement logique sont nécessaires. Ces outils, appellés raisonneurs sont des logiciels
7. http://www.w3.org/2005/rules/wiki/RIF_Working_Group
8. http://www.w3.org/2005/rules/wiki/Implementations
Section 3.2. Représentation des connaissances et Web Sémantique
83
capables d’inférer les conséquences logiques d’un ensemble d’axiomes et de règles. De
nombreuses propriétés caractérisent les raisonneurs et nous présentons ici celles qui
sont en lien avec nos travaux.
Définition (Raisonneur correct et complet). Un raisonneur est dit correct et complet si il
possède une procédure de décision qui est
– Correcte : donne toujours des réponses correctes
– Complète : donne toutes les réponses possibles
La complétude étant algorithmiquement coûteuse à obtenir, elle est parfois sacrifiée
sur l’autel de l’efficacité. Il existe donc des raisonneurs efficaces mais non complets. De
nombreux raisonneurs affichent, pour des raisons commerciales, ces propriétés comme
établies, certaines recherches tendent à prouver le contraire [Weithoener06]. Le fait que le
raisonneur soit dit correct est un pré requis naturel pour l’utilisation d’un cadre logique.
Un raisonneur qui ne présenterait pas des réponses correctes, ne permettrait d’accorder
de valeur aux inférences produites, puisqu’il serait impossible de savoir si elles sont
justes ou non. Une procédure d’inférence complète est capable d’inférer tout ce qui peut
être inféré. Cette propriété de complétude est usuellement considérée comme moins
importante, la correction étant la première propriété recherchée dans un raisonneur.
Même si il est possible de se contenter d’un sous-ensemble des inférences possibles, on
recherchera toujours un raisonneur possédant les deux propriétés de correction et de
complétude.
Une liste de raisonneurs OWL est donnée par le W3C 9 . Nous ne détaillons pas ici les
caractéristiques des différents raisonneurs, mais justifions dans le chapitre concernant
l’implantation du choix du raisonneur utilisé.
3.2.6
Conclusion de l’état de l’art sur le Web Sémantique
L’ensemble des technologies du Web Sémantique n’est pas encore arrivé à maturité,
notamment à cause des problèmes induits par l’utilisation de ces logiques de description. La non-monotonie de ces logiques ainsi que l’hypothèse de monde ouvert ont
considérablement freiné le développement de ces technologies qui jusqu’à l’OWL était
extrêmement simple. Le fait qu’aucun langage de règles n’ait encore été choisi comme
standard par le W3C (même si on peut parier sur le SWRL) montre que la technologie
n’est pas encore matûre pour une utilisation industrielle ou grand public. Cependant
l’état actuel des travaux est très encourageant, et si les promesses initiales du Web Sémantique ne seront jamais tenues, il aura permis l’accélération du développement de
formats et de technologies pour la représentation des connaissances. On peut penser que
tout comme le langage KQML [Finin94] qui a été utilisé à d’autres fins que celles pour
lesquelles il a été conçu, les technologies et standards du Web Sémantique trouveront (et
9. http://www.w3.org/2007/OWL/wiki/Implementations
84
Chapitre 3. Etat de l’art
trouvent déjà) un champ d’application dans toutes les applications touchant à la gestion
de connaissances.
Le fonctionnement des systèmes inférentiels comme ceux du web sémantique fait à
notre sens, parfaitement écho à la théorie de la justification que nous avons présentée
au chapitre précédent. En effet dans un tel système logique, il est possible de justifier
par l’utilisation de raisonneur de la validité d’une proposition au regard d’un système
d’axiomes et de règles de dérivation. Les raisonneurs permettent aussi de vérifier la
consistance d’un système et d’exhiber les points de discorde en cas de non consistance.
Le langage OWL, basé sur les logiques de description et par conséquent sur l’hypothèse
d’un monde ouvert nous parait parfaitement adapté à nos besoins de représentation et
d’inférence dans le cadre de nos recherches.
La partie suivante fait le point sur les systèmes multi-agents, domaine dans lequel
les technologies du Web Sémantique sont particulièrement présentes.
3.3 Agents et Systèmes multi-agents
Nous avons vu prédécemment l’évolution des recherches en gestion des connaissances. Historiquement, les systèmes informatisés de gestion des connaissances ont
évolué d’une approche centralisée vers une approche distribuée. Les terme d’agents
et de systèmes multi-agents ont déjà été évoqués, notamment dans le contexte de la
gestion décentralisée des connaissances en section 3.1.3. Nous allons présenter ici, le
paradigme multi-agent et nous allons étudier plus en détails les architectures des agents
manipulant des connaissances.
Nous présentons différents définitions du terme agent, qui est loin de faire consensus.
Puis nous présentons différents types d’architectures standards du domaine et indiquons
les domaines d’application des systèmes multi-agents. Nous définissons ensuite les
critères correspondant à nos besoins dans l’étude et nous analysons les approches
existantes dans trois sous-domaines : les langages de programmation agent, les platesformes agents et les applications basées sur des agents utilisant des connaissances.
L’étude des protocoles de communications entre agents n’est pas nécessaire à la compréhension. Le lecteur intéressé trouvera en annexe B une description de ces protocoles.
3.3.1
L’agent
Il serait hasardeux de dire qu’il existe à proprement parler une définition consensuelle
du concept d’agent, chaque auteur donnant sa propre définition, en fonction de son
domaine de recherche et de son point de vue. Nous présentons ici, deux définitions
d’agents qui sont les plus communes dans le domaine des agents. Wooldridge et Jennings
Section 3.3. Agents et Systèmes multi-agents
85
proposent deux notions d’agents, une première définition dite "faible" et une deuxième
définition plus forte [Wooldridge95]. Nous présentons ensuite la définition proposée
par Boissier, ainsi que les différents types d’architectures qu’il définit.
Définition (Agent, définition faible de Wooldrigde et Jennings). « Un agent est une entité
disposant des propriétés suivantes :
– Autonomie : un agent opère sans intervention humaine et possède le contrôle de ces
décisions.
– Capacité sociale : un agent intéragit avec les autres agents par le biais de moyens de
communications.
– Réactivité : un agent est capable de percevoir son environnement et d’agir sur ce dernier.
– Pro-activité : un agent n’agit pas seulement en réponse à son environnement, il est
capable de prendre des initiatives. ».
Si les trois premières notions sont présentes dans toutes les définitions d’agents,
la capacité de pro-activité ne l’est pas. Les agents purement réactifs, qui réagissent de
manière déterministe à un état de l’environnement ne font pas preuve de cette capacité.
Les architectures plus évoluées, quant à elles, intègrent toutes cette notion de pro-activité
ou prise d’initiative.
Définition (Agent, définition forte de Wooldrigde et Jennings). « la notion forte d’agents
comprend les propriétés énoncés dans la définition faible auxquelles s’ajoute le fait que l’agent est
conceptualisé ou implémenté selon des méthodes appliquées usuellement aux humains. ».
Cette deuxième définition est quelque peu restrictive puisqu’elle limite les agents à
des entités dont le fonctionnement est inspiré par les mécanismes présents chez l’homme.
On retrouve dans les agents qui respectent cette définition, les agents émotionnels qui
peuvent reproduire des émotions humaines ainsi que tout les agents qui sont en contact
direct avec l’utilisateur humain. L’architecture d’agent basée sur la logique (décrite en
section 3.3.6.1), du même auteur que cette définition, en est un parfait contre-exemple.
Jennings donne dans [Jennings98] une autre définition de l’agent :
Définition (Agent , définition de Jennings, Wooldridge et Sycara). « Un agent est un système informatique, situé dans un environnement, qui est capable d’actions flexibles et autonomes
pour accomplir les tâches qui lui sont assignées. ».
Boissier propose une définition minimale de l’agent : "Un agent est un programme
informatique autonome, plongé dans un environnement qu’il est capable de percevoir
et sur lequel il est capable d’agir". Puis il propose trois types d’architecture pour classer
les agents [Boissier01] :
– Architecture d’agent autonome : architecture possédant des capacités de perception
et d’action sur son environnement. Ne possède pas explicitement de capacité de
coopération.
86
Chapitre 3. Etat de l’art
– Architecture d’agent interagissant : possède des capacités d’intéraction avec
d’autres agent du système. Possède éventuellement des descriptions des agents et
peut les influencer par envoi de messages.
– Architecture d’agent social : l’agent social est le niveau supérieur de l’agent interagissant. Les entités organisationnelles sont formalisées et prises en compte par
l’agent.
Russel et Norvig proposent une définition d’agents rationnels [Norvig03], c’est à
dire d’un cas particulier d’agents, orientés vers un but :
Définition (Agent rationnel, définition de Russell et Norvig). « Pour chaque séquence
possible de perceptions, un agent rationnel sélectionnera une action qui maximisera sa mesure de
performance, étant donnée l’information apportée par la séquence de perceptions et quelles que
soient les connaissances dont dispose l’agent. ».
Dans ces définitions on retrouve de nombreux points communs et on peut sans
hésiter dire qu’un agent est une entité qui est douée d’autonomie, d’une capacité à
percevoir l’environnement et d’une capacité d’action. Les autres attributs des agents
ne font pas consensus, certains voient la capacité d’apprentissage comme fondamentale,
pour d’autres cette capacité est même inutile, elle peut être indésirable. La figure 3.4
montre la représentation d’un agent dans son environnement telle que proposée par
Wooldridge [Wooldridge99] et illustrant les trois attributs énoncés précédemment.
F IGURE 3.4 – Un agent dans son environnement [Wooldridge99]
3.3.2
Les systèmes multi-agents
Un système comprenant plusieurs agents est une société artificielle d’agents. Au sein
de cette société, les agents peuvent être amenés à coopérer. Les agents peuvent aussi se
Section 3.3. Agents et Systèmes multi-agents
87
trouver dans une situation de compétition. Ce qui amène à la distinction par Zambonelli
[Zambonelli01] entre deux classes de systèmes multi-agents :
– Résolution distribuée de problèmes : Dans ces systèmes les agents ont été conçus
pour travailler coopérativement à la résolution d’un objectif commun.
– Systèmes ouverts : Système dans lesquels les agents ne partagent pas nécessairement un but commun et peuvent être en compétition. Les agents peuvent dynamiquement entrer et quitter le système.
3.3.3
Domaines d’applications
Le paradigme multi-agents a été appliqué avec succés à de nombreux problèmes
dans des domaines variés. On trouve notamment des applications dans le domaine de
la gestion de la chaîne logistique [Swaminathan98, Fox00], gestion des connaissances
[Maret04b], planification [Gaborit96], intéractions homme-machine, etc. Les conférences
« Practical Applications of Agents and Multi-Agent Systems » 10 sont très orientées vers
les applications pratiques et les démonstrations des systèmes multi-agents. Les actes de
ces conférences fournissent de nombreux exemples d’application des systèmes multiagents à des cas réels.
3.3.4
Différents niveaux d’approche
Les systèmes multi-agents peuvent être abordés à différents niveaux. Nous allons
décrire ces niveaux, du plus général vers le plus précis. Pour mieux comprendre, on
pourrait faire le parallèle avec le domaine de l’économie, entre les approches de microéconomie et de macroéconomie. La microéconomie analyse le comportement au niveau
d’entités individuelles telles que le consommateur et voit l’économie comme la somme
des actions de ces entités, c’est à-dire d’un point de vue émergent. La macroéconomie
se situe quant à elle au niveau de grands agrégats économiques telles que l’inflation, le
chômage, . . . Le problème de l’économie est donc abordé par le haut, au travers d’une
vision plus globale.
Dans l’approche la plus globale, on considère le système multi-agent dans son
ensemble, on parle alors de société d’agents [Shoham95]. Le comportement global est
déterminé par l’ensemble des agents. Cette approche est notamment considérée dans le
cadre d’applications collaborative où les agents travaillent ensemble à l’accomplissement
d’une tâche, ou pour l’observation de phénomènes émergents dûs aux intéractions des
différents agents.
A l’inverse de cette approche globale de société d’agents, il existe plusieurs approches
qui se concentrent sur l’agent en tant qu’entité individuelle. L’étude des architectures
10. http://www.paams.net
88
Chapitre 3. Etat de l’art
d’agents est une de ces approches. L’architecture des agents désigne les composants et
leur organisation en vue de la réalisation d’un agent en tant qu’entité autonome.
Un exemple de recherche au niveau agent sont les systèmes autonomes ou "autonomic computing" introduite par IBM en 2001 [Horn01, Kephart03, Ganek03]. Ce domaine
se focalise sur l’architecture d’agents autonomes mais en lui ajoutant des propriétés supplémentaires telles que l’auto-guérison (self-healing), auto-protection (self-protecting)
. . ..
Notre approche au cours de ce travail se concentre au niveau micro, c’est-à-dire au
niveau de l’agent en lui-même. Nous présentons dans la section suivante les différentes
architectures standards d’agents. Nous nous intéresserons ensuite à la capacité de réflexivité, dont nous présenterons les fondements logiques ainsi que des architectures
d’agents supportant cette propriété.
3.3.5
Approche abstraite
On peut formaliser simplement les considérations précédentes sur les composants
d’un système multi-agent. On commence d’abord par définir l’environnement dans
lequel évolue les agents. L’environnement E est défini comme un ensemble d’états
d’environnement e1 , e2 , . . .. A tout moment l’environnement se trouve dans l’un de ses
états. La capacité d’action d’un agent sur l’environnement est défini par l’ensemble des
actions : A = a1 , a2 , . . ..
Wooldridge propose de définir un agent comme une fonction qui a une séquence
d’états d’envrionnement associe des actions : agent : seq( E) → A ou seq( E) est l’ensemble des séquences d’éléments de E. Le caractère discret et séquentiel (évolution
suivant le temps) de l’environnement est une conséquence de cette définition. l’environnement est régi par la fonction caractéristique de l’environnement : env : E × A → S,
qui décrit la transition de l’environnement lorsque une action a ∈ A est appliqué à
l’environnement s ∈ S.
On définit ensuite la perception d’un agent comme sa capacité à observer l’état de
l’environnement : obs : E → P ou P est l’ensemble des perceptions possibles.
Dans sa définition des agents, Wooldridge n’introduit pas la notion de perception
pour les agents réactifs, ce qui implique leur omnipotence (une connaissance parfaite et
totale de l’environnement). Nous préfèrerons considérer pour la suite que tout agent
est doté d’une fonction de perception. Dans le cadre des agents réactifs par exemple,
un capteur de température constitue une perception de l’environnement, qui peut être
erronnée et d’une précision finie.
A partir de ces définitions on peut caractériser quelques architectures simples
d’agents :
Section 3.3. Agents et Systèmes multi-agents
89
– Réactive : L’agent purement réactif réagit à l’état actuel de l’environnement, il est
donc caractérisé par la fonction suivante : E → A.
– Agents à états : On considère maintenant que l’agent est doté d’une représentation
interne de données qui leur permet de sauvegarder des informations concernant
l’environnement ainsi qu’un historique interne. Soit I l’ensemble des états internes
de l’agent. On dénote P l’ensemble des perceptions possibles de l’agent sur l’environnement. Un agent à états est alors caractérisé au moins par les deux fonctions
suivantes :
– Sélection de l’action : actionI → A
– Sélection de l’état suivant : suivantIxP → I
3.3.6
Architectures standards
Nous avons présenté les agents de manière abstraite jusqu’ici, en décrivant leurs
propriétés et les concepts sous-jacents à la notion d’agent. Dans cette partie nous allons
présenter différentes architectures concrètes, au sens ou ces architectures sont implémentées et utilisées dans des applications ou des prototypes de recherche. Nous considérons
5 classes d’agents, qui sont organisés chronologiquement.
– Agents basés sur la logique : Les décisions sont effectuées par des déductions
logiques sur l’état interne de l’agent.
– Agents Réactifs : Les décisions de l’agent sont des conséquences directes de l’état
de l’environnement.
– Agents Pro-actifs : ont comportement orienté vers un but et ils sont capables de
prendre des initiatives afin de satisfaire le but assigné.
– Architectures en couches : dans lesquelles la décision est faite par différentes
couches, les différentes couches permettent des raisonnements à différents niveaux
d’abstraction.
– Architectures BDI : pour "Belief Desire Intention" ou Croyance Désir Intention
en français. Les décisions sont prises selon les désirs, croyances et intentions de
l’agent.
3.3.6.1
Architectures basées sur la logique
Cette approche s’est développé au sein de l’approche symbolique en intelligence
artificielle, et dans la continuité des recherches de la programmation logique qui ont
amené au développement de Prolog, qui sera très largement utilisée pour l’implémentation des agents basés sur la logique. L’agent est capable de manipuler des symboles
qui représentent des formules logiques. Wooldridge propose l’architecture suivante
[Wooldridge99] : on définit l’état interne d’un agent comme un ensemble E de formules
de la logique du premier ordre, qui appartient à l’ensemble de tout les ensembles des
90
Chapitre 3. Etat de l’art
formules de la logique du premier ordre. On notre E1 ,E2 , . . . les états possibles de l’agent.
Le comportement de l’agent est déterminé par les règles de déduction ρ.
Une action a ∈ A, sera exécutée si l’agent peut prouver que son exécution n’est pas
contradictoire avec son état interne et les règles de déduction ρ. Pour cela on définit
un prédicat Execute( a), qui correspond au résultat d’exécution de l’action a. Si E `ρ
Execute( a), c’est à dire si on peut déduire Execute( a) de l’état E à l’aide des règles de
déduction ρ, alors l’action a est valide, et doit être exécutée. De la même manière toute
action dont la non exécution ne peut pas être prouvée est valide : E 6`ρ Execute( a).
Si cette architecture permet de donner une approche formelle et logique à la construction du comportement de l’agent, de nombreux problèmes importants la rende quasiment impossible à implémenter. En effet, dans le modèle, l’agent doit énumérer la
liste d’actions possibles est vérifier que leur exécution serait déductible. Cette opération
de déduction est à elle seule extrèmement couteuse en temps. Le second problème est
celui de l’ordonnancement des actions. En effet, plusieurs règles de déduction appartenant à ρ peuvent être valides sur E, ainsi plusieurs actions peuvent être éxecutables
en même temps. Au niveau de l’implémentation, puisque l’agent dispose d’un nombre
fini de processeurs, il faut établir une séquence d’exécutions des actions. Une solution
est de prioriser les règles de déduction, c’est-à-dire d’ordonner les élements de ρ, pour
obtenir une séquence d’actions. Cependant les différentes implémentations existantes
de Prolog ne permettent pas de donner de priorité aux règles. Une même exécution
donnera le même ensemble de résultats mais l’ordonnancement est variable selon le
chemin d’exploration.
Les architectures basées sur la logique telles que proposées sont certes très élégantes
et d’un formalisme agréable à la lecture, elles sont malheureusement trop coûteuses en
temps de calcul pour être efficace.
3.3.6.2
Réactives
A l’inverse du développement du calcul symbolique en intelligence artificielle, des
chercheurs ont voulu développer au cours de la fin des années 80 une approche qui
soit plus adaptée et orientée vers une réactivité rapide à l’environnement. Une volonté
majeure de cette approche était de lier le plus fortement possible le comportement avec
l’environnement. On définit cette approche dite réactive comme étant de la forme :
situation −→ action
Les règles qui associent la situation à l’action sont donc des règles directes et il
n’y a pas manipulation symbolique complexe, ni aucune représentation symbolique
à l’inverse de l’approche précédente. Le problème de l’ordonnancement des actions,
comme pour les agents basés sur des architecture se pose aussi ici. En effet les actions
Section 3.3. Agents et Systèmes multi-agents
91
sont des conséquences de règles dont les conditions (l’état de l’environnement) peuvent
être communes à plusieurs règles. Pour résoudre ce problème, Wooldridge propose
d’introduire une relation d’ordre total ≺ sur l’ensemble des couples ( p, a), ou p est
la perception d’une situation et a une action. Dans le cas ou plusieurs règles sont
applicables, l’éxecution de la règle de plus haute priorité est executée.
Wooldridge propose un algorithme en O(n2 ) (ou n est le nombre de règles, ou
couples ( p, a)) en calculant l’ensemble des actions exécutables, puis de sélectionner le
couple ( p, a) de priorité maximale [Wooldridge99]. Les algorithmes choisis par Wooldridge ne sont pas explicités mais nous proposons une solution en O(n) en parcourant
une seule fois les couples ( p, a) :
6
début
Données: B ensemble des règles de comportements
Entrées: s perception de l’environnement actuel
Sorties: (c, a) couple de priorité maximale
temp ←− (0, 0)
pour chaque ( x, y) ∈ B faire
si x == s alors
si temp ≺ ( x, y) alors
temp ←− ( x, y)
7
fin
1
2
3
4
5
On remarque que pour la relation ≺ l’ordre total n’est pas requis, on peut réduire à un
ordre partiel entre tout couple (s, x ) (s, y) avec s la perception de l’environnement et
et ∀s ∈ P; x ∈ A, (0, 0) ≺ (s, x ). En effet les couples n’ont besoin d’être comparé que
lorsque s est identique, c’est-à-dire pour une même perception. Tout autre comparaison
entre deux perceptions ne sera pas effectuée par l’agent et devient par conséquent
superflue. Dans notre algorithme (0, 0) est la valeur d’initialisation qui est l’élément le
plus petit des couples (s, x ).
L’approche réactive gagne donc en simplicité, complexité et vitesse d’exécution par
rapport à l’approche logique, mais se limite à l’exécution de comportements basiques. Il
est impossible d’exécuter des comportements plus complexes avec cette architecture,
comme par exemple les comportements où l’agent prend des initiatives pour accomplir
un but, que nous présentons dans la section suivante. Les architectures réactives sont
adaptées aux agents dont les ressources sont limitées.
92
3.3.6.3
Chapitre 3. Etat de l’art
Proactives
A l’inverse des architectures réactives, les agents proactifs sont des agents qui ont
une capacité d’initiatives et qui ne répondent pas seulement à un stimulus de l’environnement.
3.3.6.4
BDI
L’architecture BDI (Beliefs, Desires, Intentions) est l’architecture la plus populaire.
Son fondement réside dans les théories de l’intention du philosophe Bratman. L’axiomatisation de cette théorie et son implémentation est due à Rao et Georgeff [Rao95]. Un
agent BDI est un agent intelligent qui est caractérisé par les concepts suivants :
– Croyances : Les connaissances de l’agent sur le monde qui l’entoure.
– Désirs : Les objectifs que l’agent souhaite accomplir.
– Intentions : Les actions en cours d’exécution pour accomplir les désirs de l’agent.
L’architecture suivante est la première architecture d’agents BDI, proposée en 1989
par Georgeff [Georgeff89].
F IGURE 3.5 – Architecture BDI [Georgeff89]
L’approche BDI a donné lieu à de nombreuses implémentations, dans son état de
l’art [Mascardi05], Mascardi présente en 2005 neufs langages et systèmes implémentant
l’architecture BDI.
Section 3.3. Agents et Systèmes multi-agents
93
Nous présentons plus en détails en section B.1 certains de ces langages.
3.3.6.5
Agent basés sur des connaissances
Dans cette section nous allons considérer une approche symbolique, c’est à dire une
représentation des connaissances des agents à l’aide de symboles explicites, contrairement à l’architecture connectionniste présentée à la section précédente. Ces agents basés
sur des connaissances sont une catégorie d’agents intelligents. La spécificité de cette
classe d’agents est de pouvoir manipuler des connaissances.
Les agents basés sur des connaissances disposent au moins des deux composants
suivants :
– Une base de connaissances
– Un mécanisme d’inférence
La base de connaissance contient la représentation du monde que se fait l’agent. La
représentation des connaissances au sein des agents est constituée de phrases appartenant
au langage de représentations. Le mécanisme d’inférence, basée sur une logique, permet
à l’agent de d’inférer de nouvelles connaissances à partir de celles dont il dispose.
Le comportement des agents basés sur des connaissances utilise les connaissances de
l’agent pour décider des actions que l’agent va exécuter. Ce comportement peut être mis
en œuvre à l’aide des différentes architectures que nous avons décrites précedemment.
Réflexivité
En programmation, la réflexivité est la capacité d’un programme à examiner et modifier ses structures au cours de son exécution. Cette propriété intéressante est présente
dans la plupart des langages de programmation récents tels que JAVA, .NET, PHP 5,
Python, . . .. Pour les agents basés sur des connaissances, le concept de réflexivité se
définit de manière similaire. Nous décrivons dans une première partie les fondements
logique du concept de réflexivité (et sa proxémie avec le concept d’introspection dans
le domaine de la logique). Puis nous étudions en détail les architectures ou modèles
d’agents réflexifs présents dans la littérature.
Architectures et modèles d’agents réflexifs
La mise en œuvre du concept de réflexivité dans des architectures d’agents a donné
lieu à différentes approches que nous allons décrire successivement. Tout d’abord une
approche logique, qui suit les définitions présentés précédemment. Costantini et ses
coauteurs présentent une architecture d’agents réflexifs basés sur le langage Reflexive
Prolog [Costantini92].
L’application présentée est la résolution du problème des trois hommes sages. Ce
problème est un exemple classique d’utilisation de méta-raisonnement et dans le cadre
d’agents, de l’utilisation de la réflexivité. Le problème est le suivant :
94
Chapitre 3. Etat de l’art
Un roi veut savoir lequel de trois hommes est le plus sage, il pose un chapeau sur la tête de
chacun des sages. Chacun pouvant voir le chapeau des autres sans pouvoir voir le sien. Il leur dit
alors : "Vous avez chacun un chapeau, il est soit de couleur blanche ou noire, et il y a au moins
un chapeau blanc", en fait, tout les chapeaux sont blancs. Il leur demande ensuite successivement
la couleur de leur chapeau. Le premier et le second répondent qu’ils ne savent pas, le troisième
répond alors "le mien est blanc". Pour déterminer la couleur de son chapeau, le troisième sage fait
le raisonnement suivant : "si mon chapeau est noir, dans ce cas le second sage verrait un chapeau
blanc et un chapeau noir. Il conclurait alors, que si son chapeau est noir, le premier aurait conclu
que son chapeau est blanc, mais il a dit qu’il ne savait pas, son chapeau serait donc blanc. Puisque
le deuxième n’a rien dit, mon chapeau est donc noir".
Cet problème est résolu par des approches de logique de la connaissance commune
ou bien par métaprogrammation. Costantini propose ici de résoudre le problème à
l’aide d’une nouvelle approche, par communication entre les agents (les sages) qui est
adaptable à N sages.
Approche par composants
La seconde approche de la réflexivité est par échange de composants. Dans cette
approche on considère les comportements des agents comme des modules qui sont
échangeables entre les agents, chaque agent a donc connaissance de sa propre structure
et des modules qui la composent. Il est donc en mesure de raisonner sur son architecture, d’en extraire des modules et de les modifier. Les architectures telles que S-APL
(section 3.3.8.6) et SEAGENT (section 3.3.9.3) utilisent un mécanisme de composition de
comportements pour créer des comportements complexes à partir de "briques" simples.
Approche BDI
Dans les architectures BDI, les comportements des agents sont régis par des plans, qui
constituent la séquence des actions a éxécuter pour atteindre un but donné. Antona et ses
co-auteurs ont proposé un mécanisme d’échanges de plan entre les agents [Ancona04a]
qui a été adapté à JASON [Ancona04b].
3.3.7
Critères d’analyses
Les sections précédentes ont présenté de manière générale le domaine des agents et
des systèmes multi-agents. L’étude qui va suivre s’oriente plus particulièrement sur les
critères qui intéressent nos travaux. Nous nous intéressons plus particulièrement
Nous étudierons plus particulièrement certains critères qui nous intéresserons pour
formuler notre proposition. Les langages de programmation d’agents, ainsi que certaines
plates-formes présentées en section 3.3.9, ont en commun deux choses. Tout d’abord
l’agent possède une représentation de son environnement et de ses connaissances (ou
croyances selon les architectures). D’autre part l’agent est doté de comportements qui se
Section 3.3. Agents et Systèmes multi-agents
95
basent sur une des architectures présentées précédemment (logique, connectionniste,
basé sur des connaissances), ou sur des architectures ad hoc, dédiées aux cas particuliers
étudiés.
Afin d’étudier de manière systématique et afin de pouvoir de comparer les différentes
approches, nous spécifions ici les critères qui nous concernent pour la représentation
des connaissances et pour l’expression des comportements. Ces critères sont représentés
dans la figure 3.6.
Agent
Représentation des
connaissances
Comportement
• Technologie
• Décision
• Logique
• Logique
• Complétude (domaine
ouvert/fermé)
• Réflexivité
• Hypothèse de monde
ouvert/fermé
F IGURE 3.6 – Critères d’analyse des structures internes des agents
Les critères de représentation de connaissances sont basés sur les capacités et l’expressivité de la base de connaissance de l’agent. Tout d’abord nous nous intéressons
à la technologie utilisée puis explicitons les différents aspects impliqués par le choix
technologique. La réprésentation peut représenter un domaine fermé si tout les types de
connaissances sont connus au départ. Dans le cas contraire le domaine est dit ouvert, de
nouveaux types de connaissances peuvent apparaître au cours de l’évolution du système.
Ce critère est un outil intéressant pour évaluer les capacités d’un système. Ensuite nous
étudions le type de raisonnement employé en différenciant monde ouvert et monde
fermé. La logique en monde fermé (type base de données, Prolog) stipule que c’est qui
n’est pas explicitement vrai est faux. A l’opposé, la logique en monde ouvert ce qui
n’est pas explicitement faux ni explicitement vrai est inconnu. Nous discuterons dans
l’analyse du choix de monde ouvert ou fermé dans la représentation des connaissances.
Si le système est basé sur la logique, nous nous intéressons au type de logique employé
pour évaluer l’expressivité de la base de connaissance. La logique utilisé au sein d’un
agent peut intervenir à la fois dans l’inférence de la base de connaissance, mais aussi
96
Chapitre 3. Etat de l’art
dans le processus de décision d’un agent (i.e. dans son comportement). Il est aussi
possible que deux logiques différentes soient utilisées. Ce qui explique la présence de la
colonne logique dans chacun des tableaux qui vont suivre.
Concernant le comportement de l’agent, l’architecture utilisée est un aspect important de classification (BDI, réactive, . . .). Dans les cas ou la logique est utilisée dans le
processus de l’agent, nous nous intéressons au type de logique utilisée. Des logiques
plus ou moins expressives, décidables ou indécidables, influent particulièrement sur les
capacités d’un agent. La capacité de réflexivité d’un agent, c’est-à-dire d’acquérir des
connaissances sur son propre état d’exécution, sur ses connaissances permet d’augmenter
les capacités des agents. L’échange de comportement qui est une de nos problèmatiques
est intimement liée à la notion de réflexivité, nous accordons une importance certaine à
ce critère.
Nous étude se base sur trois sous domaines des systèmes multi-agents, du plus générique au plus particulier. En premier lieu nous étudions les langages de programmation
agents qui intègrent la notion de connaissance. Nous étudions ensuite les plates-formes
d’agents qui pour certaines spécifient un certain type de représentation des connaissances et/ou un certain de type de comportement. Puis nous étudions les applications
utilisant des agents intégrant des bases de connaissances. Nous concluons cette étude
par un récapitulatif des critères étudiés et une discussion.
3.3.8
Langages de programmation agents
La spécificité des agents à conduit à vouloir développer des langages ou approches
spécifiques pour la programmation. En effet si les premiers agents sont développés à
partir de langages de programmation classiques. On voit très rapidement une branche de
la recherche en agents autonomes s’intéresser à la problématique de la programmation
des agents. Nous présentons dans cette section les langages d’agents qui intègrent la
notion de connaissance au sein des agents, notre étude n’a pas pour vocation de lister
exhaustivement les langages de programmation agent 11 . L’Agent Oriented Programming
qui est le premier langage que nous présentons est présent ici pour des raisons historiques. Les deux langages suivants AgentSpeak et 3APL) sont des langages communs
du monde agent ; nous présentons deux extensions d’AgentSpeak/Jason (JASDL et
Argonaut) qui sont d’un intérêt particulier pour nos travaux puisqu’ils réalisent l’interface entre AgentSpeak et le langage OWL. Les langages S-APL et Nuin ne sont pas des
langages courants mais présentent de même l’intéret de mettre en œuvre des ontologies
au sein des agents. Le langage Jazzyk propose une approche intéressante de jonction
entre comportement et connaissance.
11. Pour plus d’information, le lecteur trouvera dans les travaux de Bordini [Bordini05b] un état de l’art
très complet sur la programmation d’agents.
Section 3.3. Agents et Systèmes multi-agents
3.3.8.1
97
Agent Oriented Programming
L’idée d’un langage de programmation dédié aux agents se concrétise en 1991 par
l’Agent Oriented Programming (AOP) de Shoham [Shoham91] dans lequel il présente le
premier langage d’agent appellée AGENT-0. L’approche de Shoham introduit 3 concepts
principaux qui sont les états mentaux de l’agent. Ces trois classes d’états mentaux sont :
croyance, capacité et engagement.
– Croyance : représentation logique de la vision du monde de l’agent.
– Capacité : les actions que l’agent est capable d’exécuter.
– Engagement : garantie que l’agent exécutera une action à un temps donné.
F IGURE 3.7 – Diagramme de flot des agents AGENT-0 [Shoham91]
AGENT-0 fut un langage précurseur en son temps, il n’est plus utilisé dans des
projets de recherche, mais il a ouvert la voie à de nombreux successeurs qui se sont très
largement inspirés de ces travaux précurseurs.
3.3.8.2
AgentSpeak et Jason
AgentSpeak est un langage de programmation d’agents basé sur l’architecture BDI
[Rao96]. Avant AgentSpeak de nombreuses implémentations de l’architecture BDI
98
Chapitre 3. Etat de l’art
avaient été utilisé. La nouveauté d’AgentSpeak réside dans le fait que les trois attitudes principales de l’agent (Croyance, Désir et Intention) ne sont plus représentées
par des structures de données mais par des opérateurs modaux. AgentSpeak marque
l’entrée de la logique dans le monde de la programmtion agents. Non plus d’un point de
vue pratique par l’utilisation de Prolog, mais par la définition logique de l’architecture
BDI. Une version étendue d’AgentSpeak est utilisée pour la programmation des agents
dans Jason.
L’implémentation de Jason est réalisée en JAVA. Le langage interprété par Jason est
donnée en [Bordini05a]. Ce langage couvre les notions de plans, croyances, évènements
tels que définis dans AgentSpeak, mais ne couvre pas l’intégralité de l’éxécution du
code d’un agent. En effet lors de l’éxécution d’un agent Jason, les fonctions réalisant un
traitement sont créées par le designer en Java (voir l’exemple du robot dans [Bordini05a],
ou des mineurs dans [Bordini07]). Le langage Jason peut être comparé au BPEL dans
les services Web ; c’est un langage qui permet d’orchestrer les différentes actions qui
elles, dans le cas de Jason sont implémentées en Java. L’orchestration se fait au sens de
l’architecture BDI que nous avons présentée précédemment.
Jason seul, présente pour notre problème les limitations communes aux nombreux
langages d’agents, en particulier la dichotomie entre le langage définissant les comportements (AgentSpeak) et les actions (ici en Java). Cette dichotomie pose des problèmes
d’interopérabilité entre agents, l’échange de comportements en AgentSpeak nécessite
l’échange des fonctions en Java, ce qui en soit n’est pas impossible (avec la réflexivité de
Java) mais n’est pas mis en œuvre dans Jason, une extension de Jason propose l’échange
de plans entre agents [Ancona04a], mais aucune implémentation n’est fournie. De plus
Jason utilise une représentation dans un format interne pour la base de connaissance
de l’agent (format AgentSpeak) qui est limitant dans son expressivité, comparé aux langages d’ontologies. Se basant sur une représentation de type Prolog, les connaissances
sont représentées sous forme d’assertions dans le domaine des clauses de Horn.
Cependant il existe deux extensions de Jason qui se rapprochent de ce que nous
recherchons. JASDL et Argonaut proposent l’intégration d’OWL dans Jason, de deux
manières différentes. Nous détaillons ces deux extensions dans les sections suivantes.
JASON
Connaissance
Représentation
Logique Complétude
AgentSpeak(type Prolog)
Horn
Non
Monde
Fermé
TABLE 3.1 – Représentation des connaissances dans JASON
Section 3.3. Agents et Systèmes multi-agents
JASON
99
Comportement
Décision
Logique Réflexivité
BDI/AgentSpeak
Horn
Non 12
TABLE 3.2 – Comportement des agents dans JASON
3.3.8.3
JASDL
JASDL (Jason AgentSpeak-DescriptionLogic) utilise les techniques de Jason et l’OWLAPI pour fournir les fonctionnalités de programmation agent ainsi que les raisonnements
sur les ontologies [Klapiscak09]. L’approche de JASDL diffère des travaux préliminaires
de Moreira [Moreira06] qui suggèrent des changements dans la sémantique opérationnelle pour intégrer AgentSpeak dans OWL. Ces travaux préliminaires avaient établi un
cadre théorique mais aucune implémentation n’avait été fournie. Les avantages attendus
sont les suivants :
– Requètes plus expressives sur la base des croyances.
– Meilleure mise-à-jour des croyances. Seuls des croyances consistantes avec celles
existantes peuvent être rajoutées.
– En utilisant le principe de subsomption des concepts, la recherche de plans est
améliorée.
– Partage des connaissances au format OWL.
Cette approche nécessite la définition de l’architecture BDI en termes de concepts
OWL, ce qui à notre avis, par son complexité, n’a pu être implémenté. JASDL propose
une approche plus simple en utilisant une correspondance entre la partie AgentSpeak
de Jason et la partie des axiomes OWL. L’utilisation d’un raisonneur OWL est aussi
intégrée. L’archictecture de JADSL est décrite en figure 3.8.
Si JASDL propose une intégration d’OWL avec Jason, il est toujours nécessaire lors de
la définition de nouvelles actions, de les définir à la fois dans le langage AgentSpeak et en
OWL. L’échange des connaissances au sens de l’AOA est alors limité par les définitions
locales des actions en AgentSpeak. Ces actions sont en effet propres à chaque agent et ne
sont pas échangeables.
L’utilisation d’OWL avec AgentSpeak permet la représentation de connaissances au
format OWL (ainsi que l’utilisation d’un raisonneur sur ces connaissances), ainsi que
la généralisation de plans au format OWL. Le moteur de décision de l’agent restant au
niveau AgentSpeak.
Tout comme l’approche proposée dans [Moreira06], JASDL, bien que plus simple
dans la proposition ne fournit pas d’implémentation. On pourra aussi noter qu’il est
reproché à Nuin de ne pas fournir d’implémentation ([Klapiscak09]), ce qui est pourtant
le cas depuis 2004 13 .
13. voir http://web.archive.org/web/*/http://www.nuin.org pour plus de détails.
100
Chapitre 3. Etat de l’art
F IGURE 3.8 – Architecture JASDL ([Klapiscak09])
Section 3.3. Agents et Systèmes multi-agents
JASDL
Représentation
OWL et AgentSpeak
Connaissance
Logique
Complétude
DL et Prolog
Non
101
Monde
Fermé
TABLE 3.3 – Représentation des connaissances dans JASDL
JASDL
Comportement
Décision
Logique Réflexivité
BDI/AgentSpeak
Horn
Non
TABLE 3.4 – Comportement des agents dans JASDL
3.3.8.4
Argonaut
Le but fixé par Argonaut est d’utiliser Jason et Jena afin de rendre possible les
applications sensibles au contexte en utilisant les capacités de représentations et de
raisonnement des ontologies. A cette fin, l’intégration de Jena est faite de manière
externe à Jason. Les composants BDI de l’architecture Jason ne sont pas modifiés pour
l’occasion.
Les agents peuvent alors échanger des information de contexte représentés au format
OWL. L’intéraction entre Jason et les ontologies sont faites au travers de Jena, par
l’intégration de deux fonctions dans la base d’actions internes des agents. Les résultats
des requètes sur les ontologies sont transformées pour être intégrés dans la base de
croyances de l’agent.
Cette approche utilise certes OWL, mais d’une manière externe à l’architecture de
l’agent. L’objectif visé est ici les application sensibles au contexte. Seule une partie
des connaissances est représentée en OWL, les connaissances ne concernant pas les
problématiques de contexte sont au niveau AgentSpeak. L’utilité de cette approche par
rapproche à une définition en AgentSpeak n’est pas mise en avant et les bénéfices ne sont
pas montrés. Aucune implémentation d’Argonaut n’est fournie, il est donc impossible
de tester le fonctionnement du système.
Argonaut
Représentation
OWL
Connaissance
Logique
Complétude
DL et Prolog
Non
Monde
Fermé
TABLE 3.5 – Représentation des connaissances dans Argonaut
102
Chapitre 3. Etat de l’art
Argonaut
Comportement
Décision
Logique Réflexivité
BDI/AgentSpeak
Horn
Non
TABLE 3.6 – Comportement des agents dans Argonaut
3.3.8.5
3APL
3APL est un langage expérimental de programmation d’agents développé à l’université d’Utrecht aux Pays-Bas [Hindriks99]. 3APL reprend les concepts de de croyances et
de capacités de AGENT-0 et rajoute les concepts de buts et de plans. Les agents 3APL
suivent un processus délibératif pour élaborer les plans qui vont conduire à la réalisation
des buts assignés à l’agent. Le cycle de délibération de l’agent est présenté dans la figure
3.9.
F IGURE 3.9 – Cycle délibératif des agents 3APL [Hindriks99]
Pour compléter les buts qui lui sont assignés, l’agent peut disposer de règles de
planification dites règles PG ainsi que de règle de révision du plan, qui sont les règles PR.
Le squelette d’un agent 3APL est présenté en figure 3.10. Il illustre les 6 composantes de
l’agent. Bien que développé en JAVA, 3APL fonctionne avec une syntaxe de type Prolog,
pour le stockage des informations ainsi que pour les opérations logiques. Le langage
3APL est un mélange de programmation impérative et de programmation logique. De
la programmation impérative, on retrouve par exemple les fonctions récursives alors
que la partie logique est utilisée pour les requètes sur la base de connaissance. Les
connaissances des agent 3APL sont représentées dans le langage 3APL qui est très
similaire au langage de programmation logique de type Prolog.
Section 3.3. Agents et Systèmes multi-agents
103
PROGRAM "agent"
BELIEFBASE {}
CAPABILITIES {}
GOALBASE {}
PLANBASE {}
PG-RULES {}
PR-RULES {}
F IGURE 3.10 – Squelette d’un agent 3APL
3APL
Représentation
type Prolog
Connaissance
Logique Complétude
Horn
Non
Monde
Fermé
TABLE 3.7 – Représentation des connaissances dans 3APL
3.3.8.6
S-APL
Les avancées des technologies du Web Sémantique se retrouvent aussi dans leurs
applications aux agents, notamment dans la réalisation de langages de programmtion agents. Le design Semantic Agent Programming Language [Katasonov08] est orienté
vers une description ontologique non seulement de l’environnement mais des agents
eux-mêmes. On retrouve une représentation sémantique des agents dans AgentOWL
[Laclavik06b]. La représentation des agents dans leur propre base de connaissances
entraine une capacité de réflexité pour les agents.
S-APL se situe à la jonction d’AgentSpeak, d’un raisonneur sémantique, en l’occurrence Closed World Machine (CWM [Berners-Lee00]) et de l’architecture BDI. S-APL
utilise le RDF (en notation N3) comme langage de représentation. Les inférences sont
faites par le raisonneur CWM, dans une logique du premier ordre en monde fermé (sans
la négation 14 ). L’architecture en couches de S-APL (figure 3.11 se base sur la description
sémantique de comportement (dans la couche belief data storage) qui utilise des comportements réutilisables programmés en JAVA, les RAB pour Reusable Atomic Behaviour.
14. Pour plus de détails sur CWM, le lecteur se reportera à http://www.w3.org/2000/10/swap/
doc/paper/
3APL
Comportement
Décision
Logique
Règles(type Prolog)
Horn
Réflexivité
Non
TABLE 3.8 – Comportement des agents dans 3APL
104
Chapitre 3. Etat de l’art
F IGURE 3.11 – Architecture des agents dans S-APL [Katasonov08]
L’envoi des messages en utilisant la classe JAVA ubiware.shared.MessageSenderBehavior,
se fait en S-APL de la manière suivante :
{sapl:I sapl:do java:ubiware.shared.MessageSenderBehavior}
sapl:configuredAs {
p:receiver sapl:is :John.
p:content sapl:is {:get :temperatureIn :room1}
sapl:Success sapl:add {:John :informs :temperature}
}
Le message ci-dessus est envoyé à John et l’informe de la température dans la
pièce n°1. En cas de succés, l’agent ajoute dans ses croyances que John a été informé de la température. Ce message illustre le mélange d’appel à des classes JAVA
(ubiware.shared.MessageSenderBehavior) et de langage S-APL.
L’architecture proposée par S-APL permet un échange sémantique de comportement entre les agents, cependant on peut regretter que S-APL n’utilise pas OWL et se
restreigne à une représentation en RDF et à une logique du premier ordre en monde
fermé, nettement moins expressive que la logique de description d’OWL-DL.
3.3.8.7
Nuin
Nuin est une architecture d’agent conçue pour le développement d’applications
orientées web sémantique et basées sur des agents [Dickinson03]. Les agents Nuin pos-
Section 3.3. Agents et Systèmes multi-agents
Représentation
RDF
S-APL
105
Connaissance
Logique
Complétude
Premier ordre
Non
Monde
Fermé
TABLE 3.9 – Représentation des connaissances dans S-APL
S-APL
Décision
CWM
Comportement
Logique
Réflexivité
Premier ordre
Oui
TABLE 3.10 – Comportement des agents dans S-APL
sèdent une architecture BDI et sont programmés dans un langage propriétaire NuinScript
basé sur Prolog et AgentSpeak(L). Le rôle de NuinScript est de combler certains problèmes d’AgentSpeak concernant l’échec de plans (l’échec d’un élément entraine l’échec
du plan en AgentSpeak, ce qui peut être problématique 15 . La logique utilisé dans le
processus de décision de Nuin est celle de l’interpréteur Prolog, qui est une logique
du premier ordre restreinte aux clauses de Horn. La communication entre les agents
est effectuée par la plate-forme JADE. Les connaissances des agents Nuin peuvent être
représentée à l’aide de différents formats. RDF est le format de base de représentation,
KIF et OWL sont aussi supportés. A chaque format de représentation est associé un
raisonneur. Plusieurs formats de représentation peuvent coexister, de même que plusieurs raisonneurs associés à ces formats. Les exemples données dans [Dickinson03] cite
l’utilisation de RDF, DAML-OIL et OWL.
Les agents Nuin permettent de manipuler des connaissances représentées dans les
formats du web sémantique, mais tout comme S-APL, Nuin se restreint à l’utilisation
d’une logique du premier ordre. Dans [Dickinson03], les auteurs indiquent que les agents
Nuin ne requiert qu’un fichier RDF pour être exécuté. Ce fichier de configuration contient
en fait le lien vers le fichier de script NuinScript qui contient le programme exécutable
par l’agent. Ce langage propriétaire qui n’est pas compatible avec les formats du web
sémantique restreint les capacités des agents à raisonner sur leur propre architecture.
Nuin
Représentation
Variable
Connaissance
Logique Complétude
Variable
Non
Monde
Fermé
TABLE 3.11 – Représentation des connaissances dans Nuin
15. Pour une description plus avancée des limitations d’AgentSpeak(L), le lecteur se reportera à
[Dickinson03], section 3.1.2.
106
Chapitre 3. Etat de l’art
F IGURE 3.12 – Architecture du système Nuin [Dickinson03]
Nuin
Comportement
Décision
Logique Réflexivité
BDI (NuinScript)
Horn
Non
TABLE 3.12 – Comportement des agents dans Nuin
3.3.8.8
Jazzyk
Le langage Jazzyk créé par Peter Novák [Novák08a], est un langage de programmation d’agents dont la fonctionnalité principale est d’exploiter différents systèmes
de représentations de connaissance (Knowledge Representation ou KR par la suite) en
utilisant différents modules d’interface entre ces KR. Jazzyk implémente le principe des
Behavioural State Machines (BSM). Le principe des BSM ressemble fortement à celui des
architectures BDI, les états sont les états mentaux des agents qui sont des modules KR.
Un des aspects importants des BSM est la différence strictre entre la notion de couche
de représentation de connaissance et de couche comportementale. En effet pour gérer
des modules de KR hétérogènes, l’auteur a choisi de ne pas représenter les comportements comme des connaissances reliées à un module KR. La couche responsable du
comportement est donc distincte de celle de la représentation de connaissances.
L’évaluation des critères d’analyse variant en fonction des modules de KR intégrés
dans les agents, nous ne présentons pas de comparaison ici. On notera l’existence d’un
module utilisant des logiques non monotones [Novak08b].
Section 3.3. Agents et Systèmes multi-agents
3.3.8.9
107
Conclusion sur les langages de programmation d’agents
Les langages dédiés aux agents ont évolué, notamment sous l’impulsion des travaux
de Rao vers une utilisation de la programmation logique comme outil principal des
interpréteurs. Les clauses de Horn sont donc majoritairement utilisées, du fait de leur
support par les langages de type Prolog qui sont utilisés pour les interpréteurs. Des
langages plus récents tel que S-APL, Picola [Buhler03] ou Qu-Prolog [Clark01] utilisent
une approche similaire.
Les composants principaux ont peu évolué, si la notion d’engagement définie par
Shoham a été abandonnée, les architectures délibératives de 3APL et de AgentSpeak
se basent sur les notions de croyance et de capacité. Les langages plus récents comme
Jazzyk ou S-APL se concentre sur la problématique émergente de la représentation
interne de connaissances et le rapport au comportment de l’agent. Les approches sont
diamétralement opposées, S-APL décrit de manière sémantique les comportements alors
que Jazzyk sépare distinctement les notions de connaissances et de comportement.
3.3.9
Plates-formes
Une plate-forme d’agents est un ensemble d’outils logiciels permettant le développement de systèmes multi-agents. Une plate-forme est notamment responsable de la
gestion du cycle de vie des agents, du transport des messages entre les agents ainsi
que de la découverte des agents et des services. Certaines plates-formes spécifient les
langages de représentation des connaissances ou certaines éléments du comportement
des agents, c’est pourquoi nous les présentons ici.
La FIPA a proposé une architecture abstraite [FIPA02] pour la description des platesformes multi-agents. Le but de la FIPA est de favoriser l’interopérabilité entre des
plates-formes utilisant des mécanismes de communication différents. Pour permettre
cette intéropérabilité, les comités de normalisation FIPA ont focalisé leur travail sur les
points suivants :
– Découverte de services
– Interopérabilité du transport de messages
– Support de différentes représentations ACL
– Support de différents contenus de messages
– Support de différents systèmes de pages jaunes
Les spécifications se sont regoupés en quatre points, décrits dans la figure 3.13
Les plates-formes que nous présentons par la suite implémentent les spécifications
de la FIPA.
108
Chapitre 3. Etat de l’art
F IGURE 3.13 – Plate-forme FIPA : Architecture abstraite
3.3.9.1
JADE
Développée par la Telecom Italia, la plate-forme JADE [Bellifemine99] respecte les
normes d’interopérabilité de la FIPA en implémentant le langage FIPA-ACL comme
langage de communication entre les agents. Une plate-forme JADE est formée d’un ou
plusieurs containeurs, qui peuvent intéragir entre eux. Une plate-forme comporte deux
agents initiaux, le DF pour directory facilitator, qui fournit un système de pages jaunes
et l’AMS pour Agent Management System, qui contrôle la plate-forme.
F IGURE 3.14 – Architecture de la plate-forme JADE
Comportement des agents
Les comportements des agents sont implémentés en JAVA peuvent être de différents
types :
– Simples
– Réception de messages
– Cycliques
– Ticker (réactif)
– Composés de plusieurs comportements
Section 3.3. Agents et Systèmes multi-agents
109
– parralèle
– séquentiel
JADE offre aussi de nombreuses librairies tierces-parties, parmi lesquelle se trouve
JADEx [Pokahr05], qui introduit une architecture BDI dans les agents JADE. JADEx
diffèrent des architectures BDI classique dans le sens ou la représentation des buts se
fait d’une manière objet et non logique.
Les comportements des agents JADE sont développés selon une approche objet
(au détriment des classiques approches logiques que nous avons vu dans la section
précédente), en implémentant un ou plusieurs des types de comportements cités cidessus. Malgré l’utilisation de JAVA, JADE n’a pas été conçue pour permettre une
réflexivité, aucun échange de comportement n’est possible entre agent JADE.
Les connaissances des agents sont nativement géré en RDF par JADE sans utilisation
spécifique de raisonneur. JADE étant une plate-forme ouverte, l’utilisation d’outils plus
avancés est laissée au choix du concepteur d’applications.
JADE
Représentation
RDF
Connaissance
Logique Complétude
Non
N/A
Monde
N/A
TABLE 3.13 – Représentation des connaissances dans JADE
JADE
Comportement
Décision Logique Réflexivité
Java
N/A
Non
TABLE 3.14 – Comportement des agents dans JADE
3.3.9.2
AgentOWL
AgentOWL est une librairie tierce partie pour JADE qui remplace l’utilisation de
RDF par OWL pour la représentation des connaissances de l’agent. Cette extension
permet d’étendre les capacités de représentation de l’agent. Dans AgentOWL, OWL est
utilisé comme mode de représentation des connaissances et non de comportement. Le
comportement des agents reste programmé en JAVA exactement de la même manière
que pour JADE.
Les agents AgentOWL possèdent une représentation de leur propre architecture dans
un modèle sémantique (fig. 3.15 qui est l’élément minimal de leur base de connaissance
[Laclavik06a]. Ce modèle sémantique permet aux agents de raisonner sur leur propre
architecture. AgentOWL est basé sur Jena et propose l’utilisation d’inférences du moteur
110
Chapitre 3. Etat de l’art
F IGURE 3.15 – Modèle Sémantique des agents dans AgentOWL
Jena. Cette librairie ne modifie pas le fonctionnement des comportements des agents
JADE, qui reste basé sur une approche objet.
AgentOWL
Représentation
OWL
Connaissance
Logique Complétude
DL
Non
Monde
Ouvert
TABLE 3.15 – Représentation des connaissances dans AgentOWL
AgentOWL
Comportement
Décision Logique Réflexivité
Java
N/A
Oui
TABLE 3.16 – Comportement des agents dans AgentOWL
3.3.9.3
SEAGENT
SEAGENT est un framework spécialisé dans le développement d’agents utilisant les
technologies du web sémantique [Dikenelli05]. Compatible avec le langage FIPA-ACL,
SEAGENT utilise un langage appellé SEAGENT Content Language comme langage
de communication agent. La représentation interne des connaissances se fait à l’aide
d’OWL, la description des services fournis par les agents. L’architecture globale de
la plate-forme est semblable à celle de JADE, à laquelle on ajoute un Semantic Service
Matcher pour la découverte de service, en plus du DF (service de pages jaunes).
Section 3.3. Agents et Systèmes multi-agents
111
F IGURE 3.16 – Architecture globale de SEAGENT
SEAGENT propose de définir de manière sémantique les comportements réutilisables des agents à l’aide d’OWL, ces comportements, d’une manière similaire à JADE,
sont programmés en JAVA. SEAGENT n’utilise OWL que pour la représentation des
connaissances, un raisonneur simple OntoLog est utilisé pour le matching dans le composant Semantic Service Matcher. Cependant aucune information n’est fournie sur les
capacités du raisonneur ni sur le type de logique utilisée. L’utilisation des techniques de
raisonnement OWL se limite donc à la découverte des services au sein de la plate-forme
SEAGENT, les agents eux-mêmes ne possèdent pas de tels mécanismes. Pour résumer on
peut comparer SEAGENT à une plate-forme de type JADE dans laquelle une surcouche
de description sémantique des services a été ajoutée.
SEAGENT
Représentation
OWL 16
Connaissance
Logique Complétude
N/A
N/A
Monde
Ouvert
TABLE 3.17 – Représentation des connaissances dans SEAGENT
3.3.10
Applications agents basés sur des connaissances
112
Chapitre 3. Etat de l’art
SEAGENT
Comportement
Décision Logique Réflexivité
Java
N/A
Oui
TABLE 3.18 – Comportement des agents dans SEAGENT
Dans les parties précédentes, nous avons successivement abordé la gestion de
connaissances, les systèmes multi-agents et le Web Sémantique. Nous allons maintenant
décrire les applications qui se situent à l’intersection de ces trois domaines. En effet,
nous avons pu voir au cours de ce chapitre les différents liens entre ces trois domaines se
mettre en place. La gestion de connaissances qui a évolué vers une approche distribuée,
les apports du Web Sémantique pour la représentation des connaissances et les systèmes
multi-agents comme mise en œuvre de l’approche distribuée.
Les agents basés sur des connaissances que nous avons présentés en section 3.3.6.5, se
situent à l’intersection de ces domaines. Ces agents sont constitués de deux composants
principaux. Le premier étant la base de connaissance, qui contient la représentation du
monde de l’agent. Le second étant son mécanisme de décision, ou comportement qui
dirige les actions de l’agent en vue d’un but précis. Ces actions sont déterminées par
inférences sur la base de connaissances [Calmet04]. Ce type d’agent est particulièrement
adapté à la gestion des connaissances distribuées. L’accent sera mis dans cette partie sur
la représentation des connaissances ainsi que sur la modélisation des comportements.
Les agents basés sur des connaissances sont utilisés dans de nombreux domaines
mettant en jeu leurs capacités spécifiques liées à leurs architectures. Nous traiterons
tout d’abord des systèmes d’information multi-agents puis des systèmes de gestion de
connaissance basés sur des agents. Les deux domaines étant intimement liées. Nous
présenterons ensuite les applications de ces agents dans le cadre des organisations
virtuelles et des environnements informatiques pour l’apprentissage humain (EIAH).
3.3.10.1
Système d’information multi-agents
Le concept de Système d’Information Multi-Agents (SIMA) ou Agent-Oriented Information Systems (AOIS), est apparu en 1999 avec l’organisation du premier workshop
AOIS 17 lors de la conférence Agents’99.Dans [Strugeon08], les auteurs proposent une
méthodologie visant au développement de SIMA. Ils proposent de combiner les avantages des deux domaines (systèmes d’information et systèmes multi agents) en utilisant
une méthodologie séparant au départ l’analyse des services et des agents pour ensuite
les intégrer. Dans le cadre des SIMA, les auteurs ont identifié trois caractéristiques
principales que doivent posséder les agents :
1. Intéraction avec les utilisateurs
17. http://www.aois.org/
Section 3.3. Agents et Systèmes multi-agents
113
2. Intéraction avec les sources de données
3. Matching entre les données et les besoins des utilisateurs
Cette méthodologie identifie ensuite les différentes étapes dans l’analyse des agents
selon les trois critères énoncés ci-dessus. Tout d’abord la spécification des rôles, buts,
compétences et connaissances des agents. Suivent ensuite, le design du comportement
des agents suivant l’analyse faite à l’étape précédente et enfin l’implémentation et le test
de ces comportements.
Les agents d’information, qui représentent une version simplifiée des agents basées sur des connaissances, dans le sens ou ils manipulent des informations et non
des connaissances ont été utilisé avec succés dans le cadre des SIMA. De nombreuses
applications dans le domaine des assistants personnels [Modi04] ainsi que pour les services d’urgence [Chen04] ou encore pour les communautés virtuelles [Bryl06]. Dans ces
applications, l’architecture interne n’est pas explicitée, l’approche rôles/organisations
étant préférée.
3.3.10.2
Projet Comma
F IGURE 3.17 – Sociétés pour la gestion de la mémoire [Gandon02]
Le projet CoMMA (Corporate Memory Management through Agents [Perez00]) est
un projet européen IST qui a démarré en Février 2000 et terminé en 2002. Le projet visait
à développer et tester un système multi-agent de gestion de la mémoire d’entreprise
basé sur les formats du web sémantique. Gandon [Gandon02] propose dans le cadre
du système CoMMA (Corporate Memory Management through Agents), d’utiliser une
114
Chapitre 3. Etat de l’art
approche multi-agents combinée avec les technologies du Web Sémantique dans le cadre
de la gestion de connaissances d’une mémoire organisationnelle distribuée. Dans ce
système, les agents sont basés sur des technologies du web sémantique, en particulier
le RDF. Dans son approche, l’auteur montre que la nature distribuée des SMA est en
parfaire adéquation avec les besoins d’une mémoire organisationnelle. L’organisation du
SMA est obtenu par raffinement successifs, en partant d’une société globale, puis en segmentant en sociétés imbriquées pour finalement atteindre le niveau minimal des agents.
Ces raffinements successifs permettent de définir au plus bas niveau, les intéractions,
rôles et protocoles dans l’organisation de la société d’agents.La mémoire d’entreprise est
constituée de documents annotés selon une ontologie définie en RDFS. Ce sont ces annotations qui sont gérées par CoMMA,. La recherche d’information se base sur le moteur
Corese [Corby04] qui permet de manipuler RDFS et les graphes conceptuels. Le système
multi-agent intègre des agents utilisateurs, et des agents intermédiaires. Ces agents sont
organisés dans quatre sociétés, dont les noms et rôles sont décrits dans la figure 3.17. Le
prototype du système a été implémenté en JAVA, en utilisant la plate-forme JADE.
CoMMA
Connaissance
Représentation
Logique
Documents et métadonnées
Non
Complétude
Oui
Monde
N/A
TABLE 3.19 – Représentation des connaissances dans CoMMA
CoMMA
Comportement
Décision Logique Réflexivité
Ad hoc
N/A
Non
TABLE 3.20 – Comportement des agents dans CoMMA
3.3.10.3
KEx
KEx [Bonifacio03] propose une approche basé sur 2 rôles et 5 services pour la gestion
de connaissance distribuées dans un environnement pair-à-pair. L’architecture globale
du système est donnée par la modélisation en rôles et intéractions. Dans KEx les agents
peuvent être soit "chercheur" (seeker dans le texte) ou bien "fournisseur" (provider).
Chaque agent peut fournir un ou plusieurs des services suivant en se basant sur ses
connaissances :
– Normalisation et enrichissement du contexte : le service effectue une normalisation linguistique du contexte utilisateur en utilisant des outils de traitement
automatique du langue naturel et la base Wordnet.
– K-federation : une fédération est un regroupement d’agents qui apparaissent alors
comme un agent unique dans le système. Les requètes sont alors distribuées dans
la fédération puis les réponses sont agrégées.
Section 3.3. Agents et Systèmes multi-agents
115
– Propagation de requètes : dans KEx, lorsqu’un agent reçoit une requète il peut la
reformuler sémantiquement à l’aide de son propre contexte utilisateur. La nouvelle
requète est alors transmise aux agents connus possédant le même contexte.
– Apprentissage : lors de la réception d’une réquète, un agent peut choisir d’intégrer
les mappings sémantiques utilisés dans la requèete. De même, ces mappings
peuvent être intégrés par l’agent qui a émis la requète lorsqu’il en reçoit la réponse.
Dans le système KEx, tout les agents possèdent la même architecture (Fig. 3.18) :
F IGURE 3.18 – Composants principaux de KEx [Bonifacio03]
Les agents possèdent des connaissances stockées sous formes de documents (document repository) ainsi que des connaissances strucuturées de manière sémantique
dans le context repository qui servent entre autre à décrire les documents. Cependant le
processus de décision des agents, n’est pas explicité. De nombreux choix d’implémentations ne sont pas explicités : dans quelles circonstances un agent choisit-il d’enrichir une
requète ? comment choisit-il de créer une fédération ? D’un point de vue technique, la
communication entre les agents est effectuée en utilisant le framework JXTA.
On notera que les différents langages d’agents présentés en section B.1 ne sont pas
utilisés dans les différents systèmes que nous avons étudié dans cette section. Les comportements des agents peuvent pourtant être décrits selon des architectures standards
telle que BDI. Les plates-formes qui gèrent les problèmes de communication entre agents,
telles que JADE ou JXTA sont par contre très majoritairement utilisées.
116
Chapitre 3. Etat de l’art
KEx
Connaissance
Représentation
Logique
Documents et métadonnées
Non
Complétude
Oui
Monde
N/A
TABLE 3.21 – Représentation des connaissances dans KEx
KEx
Comportement
Décision Logique Réflexivité
Ad hoc
N/A
Non
TABLE 3.22 – Comportement des agents dans KEx
3.3.10.4
Organisations virtuelles
Les organisations virtuelles ou plus souvent entreprises virtuelles sont des alliances
temporaires d’entreprises partageant leurs ressources et compétences dans le but par
exemple d’exploiter une niche de marché ou de proposer un service mettant en jeu
leurs différents ressources ou compétences. Les agents basés sur des connaissances
ont été dans les prototypes CONOISE [Norman04] et CONOISE-G [Patel06]. Ces prototypes s’intéressent plus particulièrement au processus de formation des organisations
virtuelles.
Le mécanisme de décision interne à chaque agent est basé sur le principe de satisfaction de contraintes (CSP). Ce mécanisme est couplé à un système d’enchères pour
l’allocation des contrats au sein de l’organisation.
F IGURE 3.19 – Processus de décision des agents dans CONOISE [Norman04]
Pour faire face aux problèmes de confiance et de sécurité dans la formation des
Section 3.3. Agents et Systèmes multi-agents
117
organisations virtuelles, CONOISE a été étendu et renommé CONOISE-G [Patel06].
Dans le cas d’information non vérifiable, de présence d’intrus ou d’agents malicieux
dans une organisation virtuelle, l’architecture de CONOISE-G permet la reformation
dynamique d’une nouvelle organisation. Martinez et Al. [Martinez01] ont identifié les
différences services nécessaires à la gestion et au contrôle d’une organisation virtuelle
existante dans le cadre d’une approche multi-agents.
Dans ces applications au cadre des organisations virtuelles, les agents détiennent
des connaissances sur le prix, la qualité des services des autres agents, l’enchaînement
des services, leurs besoins.Ces connaissances détenues par les agents sont complètes et
structurées. De plus les agents disposent d’un niveau de confiance
Les décisions relatives au mécanisme d’enchères sont prises par un algorithme de
résolution de contraintes (CSP). L’implémentation du prototype [Patel05] est faite à l’aide
de JADE et les connaissances des agents sont représentées en RDF. L’implémentation de
l’algorithme de CSP n’est pas explicitée.
Les agents CONOISE étant dédiés à une tâche bien précise selon leurs rôles (broker,
médiateur, confiance), les auteurs n’ont pas eu besoin de proposer un modèle sémantique
pour ces agents. Ces agents ne possèdent donc pas de réflexivité.
Conoise-G
Représentation
RDF
Connaissance
Logique Complétude
Non
Oui
Monde
Fermé
TABLE 3.23 – Représentation des connaissances dans CONOISE-G
Conoise-G
Comportement
Décision Logique Réflexivité
Ad hoc
N/A
Non
TABLE 3.24 – Comportement des agents dans CONOISE-G
3.3.10.5
Apprentissage électronique
L’apprentissage électronique, aussi appellé apprentissage en ligne ou e-learning
est défini comme (Union européenne 18 ) "l’utilisation des nouvelles technologies multimédias de l’Internet pour améliorer la qualité de l’apprentissage en facilitant d’une
part l’accès à des ressources et à des services, d’autre part les échanges et la collaboration à distance". Les systèmes informatiques utilisés pour l’apprentissage en ligne
sont nommmés du terme anglais LCMS (Learning Content Management System). Dans
la majorité des systèmes existants on retrouve des fonctionnalités tels que la mise en
18. http://ec.europa.eu/education/archive/elearning/summit.pdf
118
Chapitre 3. Etat de l’art
ligne de contenu, évaluation par QCM, texte à trous, ... Les enseignants et étudiants
communiquent par l’intermédiaire des moyens de communications électroniques.
Au sein des LCMS, les systèmes multi-agents peuvent intervenir dans les différentes
parties d’un LCMS. Ils peuvent fournir un recherche personnalisée aux utilisateurs en
se basant sur leurs spécifications [Pankratius04]. Shi et al. [Shi02] proposent de remplacer l’enseignant par un agent intelligent qui s’adapte à l’étudiant. En se basant sur
une approche connectionniste (carte auto adaptative) qui modélise le comportment
de l’étudiant, l’agent est capable de proposer un environnement personnalisé d’apprentissage. Les agents tuteurs sont communément utilisés pour la modélisation du
comportement de l’étudiant ainsi que pour la prise de décision dans un cadre didactique
[Ritter95, Ritter96]. Ces agents tuteurs ont ensuite été étendus pour permettre la communication et la coopération afin d’améliorer leurs performances. [Ritter97]. De nombreuses
approches proposent des plates-formes multi-agents génériques pour l’apprentissage
[Capuano00, Vassileva99, Machado99, Cobo07].
Les agent de la plate-forme I-Help [Vassileva99] utilise une représentation partagée
de leurs connaissances, ce qui garantit la consistance des connaissances du système. La
communication s’effectue en utilisant le langage KQML. L’évaluation des buts ainsi que
la prise de décision sont opérées par un raisonneur Prolog. La logique utilisée dans la
prise de décision est donc celle des clauses de Horn.
Dans ABITS [Capuano00] (Fig. 3.20), les connaissances sont représentées suivant
le schéma IEEE LTSC LOM à l’aide de graphes conceptuels. Ce choix des graphes
conceptuels peut paraître étrange puisque le schéma IEEE LTSC LOM est entre autre
basé sur Dublin Core dont une spécification RDF existe déjà. De plus les métadonnées
sont quant à elles représentées en RDF. Bien qu’il existe des méthodes de mapping de
RDF et des graphes conceptuels (tel que Corese [Corby00]), ces méthodes ne sont pas
mentionnées. La communication entre agents se fait selon le format d’échange standard
des graphes conceptuels (CGIF). Les agents ABITS peuvent modéliser l’état cognitif
et les préférences d’apprentissage de chacun des étudiants par un modèle basé sur la
logique floue. Les différentes préférences (pré-établies) de l’étudiant sont représentés
par une nombre flou. La logique floue utilisée n’est pas non plus spécifiée, alors qu’il
en existe de très nombreuses (monoïdale, basique, Lukasiewicz, . . .). La plate-forme
proposée est intéressante du point de vue agents (autonomes et multi-agents), mais est
desservie par le manque d’exemples et l’absence d’implémentation qui aurait permis de
lever certaines ambiguités.
La plate-forme de communication d’agents pédagogiques (PACF dans le texte)
[Machado99], utilise le format KQML pour la communication inter-agents. En interne
les agents utilisent une représentation JAVA qui est transmis par sérialisation. Ces procédés, sont peu adaptés à l’interopérabilité. La transformation des connaissances dans un
langage de bas niveaux posent de sérieux problèmes d’interopérabilité puisque seuls
Section 3.3. Agents et Systèmes multi-agents
119
F IGURE 3.20 – Architectures interne et externe de ABITS [Capuano00]
des agents programmés en JAVA sont capables de les manipuler. La sérialisation est
aussi un choix peu judicieux, puisque ce mécanisme ne permet pas la rétro-compatibilité
du format.
AgentGeom [Cobo07] est une plate-forme d’apprentissage dédiée aux problèmes mathématiques et notamment géométriques. L’idée principale qui sous-tend la conception
de la plate-forme est de pouvoir aider l’étudiant pas à pas dans la résolution de problèmes géométriques. Cette aide se concrétise par l’envoi de messages d’un agent tuteur,
dans un processus argumentatif avec l’étudiant. La nature complète des connaissances
(un problème à résoudre et les différentes étapes successives pour y arriver) simplifie
nettement la tâche qui incombe à l’agent tuteur, si l’on compare avec les plates-formes
précédemment décrites. La sélection des messages à envoyer se fait par le parcours d’un
arbre de la résolution du problème. Cet arbre contient les actions à effectuer en fonction
de l’état d’avancement de l’étudiant.
Ces plates-formes utilisent différentes représentations des connaissances et ne sont
majoritairement pas basées sur des technique avancées de représentation de connaissance. Ceci s’explique en grande partie par le fait que ces contributions sont majoritairement antérieures à la popularisation des standards actules du web sémantique tels
que RDF ou OWL. Toutefois, les contributions plus récentes telles que [Wang05] se proposent d’utiliser les outils du web sémantique dans la représentation des connaissances.
[Wang05] propose d’utiliser OWL comme langage de représentation des connaissances
pour vérifier la sémantique des communications entre l’étudiant et le professeur. Cepen-
120
Chapitre 3. Etat de l’art
dant l’application proposée n’a pas été implémentée, il est donc impossible d’analyser
les critères relatifs à la décision des agents (logique,monde, . . .).
Nous présentons dans le tableau ci-dessous, un récapitulatif des différents systèmes
étudiés selon les critères énoncés en 3.3.7.
ABITS
I-Help
PACF
AgentGeom
Représentation
CG/RDF
Prolog
Java
Arbres
Connaissance
Logique Complétude
Non
Oui
Horn
Oui
Oui
Non
Non
Oui
Monde
N/A
N/A
N/A
N/A
TABLE 3.25 – Représentation des connaissances dans les systèmes d’EIAH
ABITS
I-Help
PACF
AgentGeom
Comportement
Décision Logique Réflexivité
Ad hoc
N/A
Non
Ad hoc
N/A
Non
Ad hoc
N/A
Non
Ad hoc
N/A
Non
TABLE 3.26 – Comportement des agents dans les systèmes d’EIAH
3.3.10.6
Autres Applications
Nous décrivons dans cette partie, des applications mettant en œuvre des agents
basés sur des connaissances, dont le domaine d’application ne rentre dans aucun des
cadres énumérés ci-dessus.
Bibster
Bibster [Haase05] est une implémentation de l’architecture SWAP [Ehrig03]. Le but
de Bibster est de proposé aux chercheurs de partager leurs ressources bibliographiques
en utilisant un système pair à pair. Dans Bibster les références bibliographiques sont
les connaissances échangées à travers le systèmes. Leur description est fixée par deux
ontologies. La première ontologie (SWRC) décrit les différents aspects génériques des
métadonnées bibliographiques, la deuxième ontologie (Hiérarchie des thèmes ACM)
décrit les différentes catégories pour la littérature dans le domaine de l’Informatique. Les
connaissances échangées sont en fait des entrées bibliographiques au format RDF. Les
ontologies de domaine sont fixées dans l’application, les agents échangent des instances
de ces ontologies. Les agents Bibster sont des pairs utilisant la plate-forme pair-à-pair
JXTA de SUN pour la communication. L’architecture des agents est identique à tous
Section 3.3. Agents et Systèmes multi-agents
121
les agents. Les connaissances échangées entre les agents concernent exclusivement des
ressources bibliographiques qui sont formalisés de manière statique. Les connaissances
sont donc consistantes au sein de l’application Bibster.
Bibster
Représentation
RDF
Connaissance
Logique Complétude
Non
Oui
Monde
N/A
TABLE 3.27 – Représentation des connaissances dans Bibster
Bibster
Comportement
Décision Logique Réflexivité
Java
N/A
Non
TABLE 3.28 – Comportement des agents dans Bibster
3.3.11
Conclusion de l’état de l’art sur les agents
Nous avons focalisé notre étude sur deux classes de critères, la représentation des
connaissances et les comportements des agents. Le tableau 3.29 permet de mettre en
perspective les différentes approches de représentation des connaissances, le tableau
3.30 décrit quant à lui les approches en matière de comportement.
La problématique de représentation des connaissances au sein des agents suit le
développement des technologies du web sémantique qui ont permi, grâce tout d’abord
à RDF puis à OWL d’améliorer les capacités de représentation des agents. Les moteurs
d’inférence logique liées à ces technologies permettent aux agents la découverte de
nouvelles connaissances à partir de celles déjà existantes. Cependant ces capacités ne
sont pas pleinement utilisées, notamment OWL, comme on peut le voir dans SEAGENT
ou AgentOWL, puisque la capacité de représentation n’est pas utilisée avec la logique de
description qui est à la base de ce langage. On a donc une sous-utilisation des capacités
de représentation et d’inférence. Toujours d’un point de vue logique, l’hypothèse de
monde fermé est très largement utilisée et comme nous l’avons vu en section 3.2 elle
n’est pas cohérente avec la représentation que nous nous faisons du monde. L’approche
logique au niveau des connaissances, en tant que système inférentiel est présente dans
les trois domaines que nous avons étudiés. Ce n’est pas une surprise car les outils
disponibles (Prolog ou logique de description) s’intègre sans difficulté technique dans
tout type d’architecture. Il est plus étonnant de noter que les technologies plus récentes
(bien que OWL soit une recommandation W3C depuis Février 2004) sont en premier lieu
intégrées dans les approches génériques (langages de programmation et plates-formes),
les applications dédiées utilisant des technologies plus anciennes.
122
Chapitre 3. Etat de l’art
Les comportements des agents sont souvent disjoints de leur base de connaissance,
un langage comme Jazzyk y met par exemple un point d’honneur. Les applications dédiées fonctionnent à l’aide de langage objet, majoritairement le JAVA, ce qui exclut toute
sémantique dans les comportements d’agents. Pour pallier ce manque, les approches
de S-APL ou SEAGENT proposent une description sémantique de ces comportements,
pour la découverte et la composition de comportements en utilisant des mécanismes
inspirés des Web Services. Dans les trois domaines étudiés, les langages de programmation du comportement et ceux de la représentation de connaissance sont différents
dans la très grande majorité des cas, sauf pour les architectures BDI. Dans le cas précis
des architectures, le lien entre base de connaissance et comportement est réalisé au
niveau des croyances (B de BDI). L’implémentation de cette architecture se base sur
l’utilisation de raisonneur de type Prolog, ce qui restreint par conséquent la logique
utilisée pour la base de connaissances à la logique du premier ordre. Les logiques de
description utilisée dans OWL sont dotées d’une expressivité plus grande mais elles
n’ont pas été implémentées dans les architectures BDI. Les différentes tentatives (JASDL,
Argonaut) n’ont pas pu fournir d’implémentation. L’unification du comportement et de
la base de connaissance autour d’OWL reste donc un problème ouvert. La question de la
reflexivité dans les architectures est souvent ignorée dans le cadre des langages agents
alors que c’est à ce niveau qu’on pourrait s’attendre à la voir apparaître. Seuls S-APL et
une extension de Jason (non implémentée) proposent cette fonctionnalité, mais aucun de
manière satisfaisante. La dualité langage de raisonnement et langage d’implémentation
des fonctions est le facteur limitant à l’échange des comportements entre agents dans les
deux cas.
En conclusion, l’utilisation des technologies du web sémantique est un standard
incontestable dans le monde agent pour la représentation des connaissances. Cependant
l’utilisation des capacités de raisonnement n’est pas encore utilisée dans la réalisation
des comportements des agents. Nous discutons dans l’analyse en section suivante des
moyens d’aborder ce problème.
3.4 Analyse et mise en perspective
L’analyse de l’état de l’art se structure autour des questions que nous avons posées à
la fin du chapitre précédent. Tout d’abord nous analyserons la perspective de l’architecture des agents, en vue de permettre l’échange des différents composants d’une base
de connaissance. L’échange de ces composants introduit des problèmes d’intégrations
dans la base de connaissances des agents. Lors d’intéraction avec d’autres agents, il
est souhaitable de disposer d’un processus permettant de choisir ou non d’intégrer ces
nouvelles connaissances. En nous basant sur les notions définies en épistémologie nous
discutons des approches pouvant apporter des pistes pour ce problème.
Section 3.4. Analyse et mise en perspective
JASON
JASDL
Argonaut
3APL
S-APL
Nuin
JADE
AgentOWL
SEAGENT
CoMMA
KEx
Conoise-G
Bibster
ABITS
I-Help
PACF
AgentGeom
Connaissance
Représentation
Logique
Langages de programmation agents
AgentSpeak(type Prolog)
Horn
OWL et AgentSpeak
DL et Prolog
OWL
DL et Prolog
type Prolog
Horn
RDF
Premier ordre
Variable
Variable
Agents au sein des plates-formes
RDF
Non
OWL
DL
OWL 19
N/A
Applications
Documents et métadonnées
Non
Documents et métadonnées
Non
RDF
Non
RDF
Oui
CG/RDF
Non
Prolog
Horn
Java
Oui
Arbres
Non
123
Complétude
Monde
Non
Non
Non
Non
Non
Non
Fermé
Fermé
Fermé
Fermé
Fermé
Fermé
N/A
Non
N/A
N/A
Ouvert
Ouvert
Oui
Oui
Oui
Fermé
Oui
Oui
Non
Oui
N/A
N/A
Fermé
N/A
N/A
N/A
N/A
TABLE 3.29 – Récapitulatif des représentations des connaissances
3.4.1
Agents et composants
Nous avons recherché dans trois catégories (langages de programmation agent, plateforme agents et des applications basées sur des agents) une architecture supportant nos
besoins d’échange de connaissances. A la question d’une architecture agent pouvant
supporter l’échange des différents composants de l’AOA, nous avons vu qu’aucune des
architectures proposées ne permet de le faire. Toutes les architectures d’agents qui ont été
présentées utilisent en grande majorité un langage de bas niveau pour le comportement
et un langage du web sémantique pour représenter la base de connaissances (S-APL,
VKC, Nuin). Dans les architectures de type BDI (Jason, 3APL, Jadex), on retrouve
une approche similaire dans la dualité des langages au sein des agents. Chaque agent
possède au moins deux langages, un qui permet d’exprimer le comportement au sens de
l’approche BDI (i.e. AgentSpeak) et un langage de plus bas niveau (Java). Les applications
que nous avons présenté en section 3.3.10 souffre toutes de limitations semblables.
La volonté d’unification se retrouve dans des approches comme JASDL, dans le
travaux de Moreira, Argonauts et S-APL. Cependant aucune ne permet d’unifier comportement et connaissance. S-APL, le seul de ces langages dont une implémentation est
124
Chapitre 3. Etat de l’art
JASON
JASDL
Argonaut
3APL
S-APL
Nuin
JADE
AgentOWL
SEAGENT
CoMMA
KEx
Conoise-G
Bibster
ABITS
I-Help
PACF
AgentGeom
Comportement
Décision
Logique
Langages de programmation agents
BDI/AgentSpeak
Horn
BDI/AgentSpeak
Horn
BDI/AgentSpeak
Horn
Règles(type Prolog)
Horn
CWM
Premier ordre
BDI (NuinScript)
Horn
Agents au sein des plates-formes
Java
N/A
Java
N/A
Java
N/A
Applications
Ad hoc
N/A
Ad hoc
N/A
Ad hoc
N/A
Ad hoc
N/A
Ad hoc
N/A
Ad hoc
N/A
Ad hoc
N/A
Ad hoc
N/A
Réflexivité
Non 20
Non
Non
Non
Oui
Non
Non
Oui
Oui
Non
Non
Non
Non
Non
Non
Non
Non
TABLE 3.30 – Récapitulatif des comportments agents
fournie, propose de réutiliser des composants Java partagé entre les agents. L’appel à un
langage de bas niveau est toujours présent.
Dans la conclusion de l’article présentant JASDL, il est mis en avant que JASDL
permet de définir des nouvelles intéractions au niveau de l’ontologie, mais qu’à la différence d’Argonauts ou les implémentations de ces intéractions doivent être faites en
JAVA, celle de JASDL sont réalisées en AgentSpeak, soit un niveau au dessus. De plus,
il est très important de noter que hormis S-APL, les approches précédentes (JASDL et
Argonauts) n’ont pas été implémentées. Si nous n’en connaissons pas les raisons exactes,
notre hypothèse est que la complexité de l’approche BDI, combinée à celle d’OWL doit
être très difficile à mettre en œuvre. A la lumière de ces considérations, deux problèmes
d’architecture ne permettent pas la réalisation de l’échange des composants d’une base
de connaissance. Tout d’abord, l’utilisation de deux langages pour les agents, un pour
les comportements et un pour les connaissances ou pour les actions est limitant. Mais on
pourrait contourner cette difficulté en réalisant deux modules réflexifs, l’un pour chaque
langage. De nombreuses architectures sont réalisées en Java, il suffirait par exemple dans
le cas de JASDL de permettre l’échange lié de plans, croyances et d’implémentations
d’action. Cette approche ne nous parait satisfaisante. D’un point de vue de conception
Section 3.4. Analyse et mise en perspective
125
logicielle, il est plus simple d’utiliser seulement un seul langage. En terme de représentation de connaissances, OWL s’est imposé dans de nombreuses architectures récentes et il
nous semble être un choix judicieux. Nous sommes alors tentés de résoudre le problème
de la même manière que Moreira [Moreira06]. Le second problème intervient alors, par
la complexité de la réalisation. Le fait qu’aucune implémentation ait été proposée peut
être une raison suffisante de ne pas vouloir définir une architecture BDI utilisant un
raisonneur OWL. En effet l’architecture BDI est séduisante par ses possibilités, mais elle
est complexe à mettre en œuvre avec des logiques de description. Il est plus judicieux
dans une approche que nous souhaitons implémentable de procéder plus simplement.
A l’aide du langage de règles SWRL, dont la syntaxe est compatible avec OWL
(c’est-à-dire que l’on peut définir une ontologie contenant des éléments OWL et SWRL
dans le même fichier), il est possible de définir un comportement sous forme de règles
exécutables par un interpréteur. L’architecture BDI étant complexe à implémenter et
n’étant pas requise pour notre approche, le premier prototype des VKC fonctionnant avec
divers types de comportements, nous pouvons nous orienter sur une autre approche.
Il faut noter que le langage SWRL ne permet pas à lui seul de programmer des agents
(absence de fonctions d’entrées/sorties entre autres). L’utilisation d’un langage de plus
bas niveau est alors nécessaire. Le problème de la définition de nouvelles actions et
leurs implémentations dans des langages de plus bas niveau que OWL (par exemple
AgentSpeak ou Java) peut être résolu de manière simple. JASDL ou S-APL proposent
de définir parallèlement de nouvelles actions en des déclarant dans les ontologies et en
donnant une implémentation liée à cette déclaration (en JAVA pour S-APL, AgentSpeak
pour JASDL). Nous proposons de définir un nombre fini d’actions dont on établit
la correspondance entre l’ontologie et l’implémentation. Pour définir de nouvelles
actions, on les compose à partir des actions prédéfinies dans l’ontologie. Le but de cette
approche est d’avoir un interpréteur universel à tous les agents, capables d’éxécuter un
comportement reçu lors d’une intéraction, sans avoir à transmettre d’implémentation
dans un langage de bas niveau. Toutes les actions basiques sont communes aux agents.
Les actions complexes sont réalisées à l’aide de ces briques de base.
En ce qui concerne la structure de l’agent, nous avons vu que l’architecture BDI
semblait difficile à mettre en œuvre en OWL, de plus elle n’est pas requise pour notre
implémentation. C’est pourquoi nous proposons d’utiliser le concept des machines
étendues à état finis (EFSM), pour représenter les comportements des agents. Pour le
confort du lecteur, nous donnons ci-après un bref rappel de cette notion.Les EFSM
sont des versions étendues des automates finis classiques, ce qui signifie concrètement
qu’à chaque transition est associée un ensemble d’actions qui seront exécutées lors de la
transition [Cheng93]. Ces automates se définissent formellement de la manière suivante :
Une EFSM est un 7-tuple M = ( I, O, S, D, F, U, T ) avec
– S un ensemble de symboles d’états,
126
Chapitre 3. Etat de l’art
– I un ensemble de symboles d’entrées,
– O un ensemble de symboles de sorties,
– D un espace linéaire de dimension n D1 × . . . × Dn ,
– F un ensemble de fonctions d’activations f i : D → {0, 1},
– U un ensemble de fonctions de mise à jour ui : D → D,
– T un relation de transition, T : S × F × I → S × U × O
une EFSM est dite déterministe, si et seulement si T est une application de S × F ×
I dans S × U × O. C’est-à-dire qu’à chaque triplet état, symboles d’entrée, fonction
d’activation, on associe un seul triplet état, symboles de sortie, fonction de mise à jour.
Plus simplement, lorsque les conditions (F) sont remplies pour la transition (T) de la
machine d’un état vers le suivant (les états sont notés S), un ensemble d’opérations U
est effectué.
Les EFSM nous fournissent un cadre permettant de réaliser simplement des comportements d’agents définis seulement en OWL et SWRL, donc au niveau sémantique.
Nous présentons dans le chapitre suivant notre proposition de modèle d’agent se basant
sur les EFSM.
3.4.2
Echanges des différents types de connaissances
Le point central de notre approche est de rendre possible l’échange entre agents des
différents composants qui constituent la base de connaissances d’un agent. Dans le cas
des connaissances représentées de manière logique, le fonctionnement des raisonneurs
fait écho à la théorie de la justification. Cependant le cas des connaissances qui ne
relèvent pas du domaine logique est encore ouvert. La question de la justification de
ces connaissances lors d’un échange entre agent est cruciale. Quelles sont les raisons
ou justifications qui doivent inciter un agent à accepter certaines connaissances (non
logiques) et à en refuser d’autres ?
La spéficité des agents gérant des connaissances par rapport aux systèmes basés sur
des connaissances est la capacité d’action. Si l’on considère ce qui relève de l’action des
agents (comportement de l’agent, plans dans les architectures BDI) comme connaissance
échangeable, il est nécessaire de faire intervenir un processus de justification dans les
échanges de telles connaissances.L’étude de la théorie de la justification concernant les
connaissances empiriques nous donne une solution par l’expérimentation. L’exemple
de la connaissance du chemin, dont l’interlocuteur ne peut être convaincu qu’en expérimentant ce chemin 21 (cf page 62) est tout à fait adaptable à un système d’agent
communiquant.
21. Il est possible d’argumenter le fait que le chemin est justifiable de manière logique par la connaissance
d’une carte, auquel cas c’est la carte qui devra être soumise à l’expérience pour être justifiée.
Section 3.4. Analyse et mise en perspective
127
A cette fin, nous proposons une différentiation des connaissances au niveau de l’agent
selon le niveau auquel elles interviennent dans l’architecture. Nous avons précédemment
exclu les architectures BDI de notre approche, les considérations qui suivent s’appliquent
aux autres architectures 22 . Les connaissances empiriques entrainent (par définition de
l’expérience) une exécution d’actions de la part de l’agent expérimentant, actions qui ont
des conséquences sur son environnement. D’un point de vue de conception logicielle,
ces connaissances étant exécutables, elles font partie des comportements de l’agent. Les
connaissances justifiables logiquement sont placées dans la partie classique de la base
de connaissances de l’agent et ne sont pas exécutées. Cependant cette différentiation
des connaissances sur le plan de l’exécution ne doit pas entrainer une différence dans
la représentation et le stockage. En effet les connaissances empiriques peuvent faire
intervenir des concepts définis dans les connaissances empiriques.
En nous basant sur la définition épistémologique de la connaissance et les réflexions
précédentes, nous abordons la question de la mise en œuvre de ces connaissances sous
l’angle de l’architecture des agents en partant du niveau de la définition de la connaissance ou nous avons établi la distinction entre connaissance justifiables logiquement
et connaissance empiriques. Au niveau de l’agent, nous devons disposer de capacités
de représentation pour chacun des types de connaissance. Dans le premier cas, un formalisme logique doit être supporté, dans le second cas, aucun formalisme précis n’est
prescrit.La figure 3.21 résume les différents éléments constituant les agents.
Pour résumer, nous avons identifié deux types de connaissances, les connaissances
justifiables au sens de la logiqe et les connaissances empiriques qui nécessitent une
expérience pour leur validation. Pour être utilisable par des agents, nous spécifions ainsi
les quatre composants suivants nécessaires aux agents :
– Une base de connaissances supportant un formalisme logique
– Un raisonneur pour la vérification des connaissances justifiables
– Une base de connaissances pour les connaissances empiriques
– Une moteur d’éxécution pour la vérification des connaissances empiriques
La section suivante présente les étapes de simplification et d’unification des composants.
3.4.3
Un modèle unifié des connaissances et des comportements
Notre approche nous permet de considerér un agent comme étant composé de
connaissances justifiables et empiriques. Il est souhaitable de disposer d’un modèle
unique pour ces connaissances, ou à défaut, d’un modèle de représentation cohérent
et compatible entre des deux types de connaissances. Par ailleurs, les connaissances
empiriques étant validées par l’expérience, elles consistent en une série d’actions que
22. Dans les architectures BDI, connaissance et comportement sont liés, ce qui n’est pas le cas ici
128
Chapitre 3. Etat de l’art
Connaissance: Opinion droite et
justifiée
Connaissance
Connaissances
démontrables
Représentation
niveau agent
Composants
de l’agent
Formalisme logique
pour la représentation
des connaissances
Base de connaissance
supportant un
formalisme logique
Moteur logique
Connaissances
empiriques
Connaissance exécutable par l’agent
Méthode d’évaluation
Base de connaissance
pour les connaissance
empiriques
Moteur d’exécution
et de vérification des
actions
F IGURE 3.21 – Composants nécessaires aux agents pour la mise en œuvre des connaissances
l’agent peut exécuter. Il s’agit donc d’un comportement de l’agent. Ceci nous conduit
donc à la recherche d’une modélisation unifiée de connaissance et de comportements.
Notre proposition est alors de représenter toutes les connaissances selon le même
formalisme, que ces connaissances soient justifiables de manière logique ou alors empiriques. La représentation des connaissances empiriques n’impose pas à priori de
formalisme très restrictif, comparé aux connaissances justifiables qui nécessitent une
représentation basée sur la logique et l’utilisation d’un raisonneur sémantique. Il se pose
alors la question de comment le formalisme basé sur la logique peut-il aussi être utilisé
pour représenter les comportements de l’agent ?
En partant du souhait de transposer une définition épistémologique de la connaissance dans les systèmes de gestion distribuées des connaissances, nous avons spécifié
les composants nécessaires à la réalisation de ces agents. Puis en étudiant les architectures existantes, nous avons identifié une analogie entre les besoins de représentation
des connaissances vérifiables par l’expérience et les comportements des agents. L’innovation de notre proposition de modèle d’agents sémantique se situe au niveau de la
représentation sémantique des comportements d’agents en tant que connaissance. Nous
souhaitons que toutes les connaissances des agents soient représentées dans le même
Section 3.4. Analyse et mise en perspective
129
formalisme et utilise un raisonneur commun. La section sur les agents et composants
(section3.4.1) a montré que les comportements peuvent être réalisés en utilisant les
langages OWL et SWRL, le langage OWL étant utilisé pour la base de connaissances
classique (connaissances justifiables).
Nous pouvons donc utiliser un seul raisonneur pour les deux types de connaissance. Pour les connaissances justifiables, le raisonneur est utilisé de manière classique,
pour inférer de nouvelles connaissances, mais aussi pour justifier l’ajout de nouvelles
connaissances. Lorsqu’un agent souhaite intégrer des connaissances reçues, il vérifiera
la consistance avec celles qui possède déjà et les intégrera le cas échéant. Dans le cas
de non consistance, l’agent utilise les fonctions d’explication du raisonneur pour déterminer la cause de non consistance. L’agent peut ensuite engager un dialogue avec son
interlocuteur pour argumenter de la validité ou non des connaissances. L’argumentation
dans les systèmes multi-agents est un vaste domaine de recherche qui est en dehors du
propos de nos travaux qui sont focalisés sur l’agent seul 23 . Concernant les connaissances
empiriques, le processus de justification nécessite l’exécution du comportement (enchainement des règles de l’EFSM) correspondant à la connaissance, puis de la vérification
d’une propriété à l’issue de cette éxécution. La figure 3.22 résume le rôle du raisonneur
logique en fonction de chacun des types de connaissances. La réalisation concrète de
l’architecture puis de l’impleméntation va suivre cette volonté de représentation des
comportements et des connaissances dans le même formalisme.
Base de
connaissances
Raisonneur
Découverte de
connaissances
Connaissances justifiables
Expliquer par
Justification déductive
Déduction
Explication
Maintenir la
consistance
Vérification de consistance
Connaissances
expérimentables
Vérification
des propriétés
Moteur logique
Comportements
Exécution de
comportements
Enchaînement de règles
F IGURE 3.22 – Rôles du raisonneur selon les types de connaissances
23. le lecteur intéressé pourra se reporter à la série des ateliers ArgMas : http://www.mit.edu/
~irahwan/argmas/
130
Chapitre 3. Etat de l’art
3.5 Conclusion
Nous avons présenté les trois domaines à l’intersection desquels se trouve domaine
de recherche : la gestion des connaissances, le web sémantique et les systèmes multiagents. Notre analyse s’est axé sur les problématiques définies à la fin du chapitre un :
l’intégration de tous les éléments de la base de connaissances des agents afin de les rendre
échangeables, étudier l’implication de l’échange des nouveaux types de connaissance et
la formalisation des communautés virtuelles de connaissance.
Nous avons abordé différents points dans le domaine des connaissances et et de la
gestion des connaissances, tout d’abord les définitions de la connaissance en épistémologie et dans le domaine de la gestion des connaissances. Puis nous avons présenté les
approches centralisées et décentralisées de gestion des connaissances. La définition de la
connaissance qui est utilisée dans l’approche appliqué de la gestion de connaissances
repose sur des considérations informatiques et non épistémologiques. La définition de la
connaissance qui se fait par opposition aux données et aux informations, se base sur une
succession de traitement informatique. Prenons l’exemple d’un capteur de température
dans une pièce : les données sont acquises d’un capteur et représentent une suite de
bits, sans signification. Ces données sont ensuite traitées pour en calculer la température
mesurée par le capteur, ce qui constitue alors l’information. Si l’on extrait d’un relevé de
température fournie par le capteur un modèle qui décrit l’évolution de la température
dans cette pièce, on a alors extrait une connaissance à partir des informations. Ces définitions, par niveau d’abstraction, sont en fait les étapes successives d’un traitement des
données suivant un chemin d’abstraction. Mais le but d’un système de gestion connaissances est, comme de nombreux systèmes informatique, de délester l’utilisateur humain
de tâches automatisable par la machine. C’est donc une définition de la connaissance
qui est aussi pour l’utilisateur qui doit prévaloir, plutôt qu’une approche technique. Ce
raisonnement ne s’applique pas seulement pas à la définition de la connaissance en
tant que "tout ce qui n’est pas information ou données", mais à toute définition de la
connaissance qui est imposée par la structure de la machine qui est amenée à traiter les
connaissances. La définition épistémologique ("La connaissance est une opinion droite
pourvue de raison) de la théorie de la justification nous semble être plus proche du fonctionnement "humain", c’est donc cette définition qui selon nous, doit être au centre des
systèmes de gestion des connaissances. Les travaux de Bonifacio ont mis en évidence la
notion d’autonomie de la connaissance et ont ouvert la voie à la gestion décentralisée des
connaissances. Cependant l’autonomie de la représentation des connaissances se limite
au domaine de la communauté. Cette autonomie de représentation doit être étendue
complètement jusqu’aux entités qui composent les communautés.
A l’étude des technologies du Web Sémantique, nous avons constaté que l’ensemble
des technologies n’est pas encore arrivé à maturité, notamment à cause des problèmes
induits par l’utilisation de ces logiques de description. La non-monotonie de ces logiques
Section 3.5. Conclusion
131
ainsi que l’hypothèse de monde ouvert ont considérablement freiné le développement de
ces technologies qui jusqu’à l’OWL était extrêmement simple. Le fait qu’aucun langage
de règles n’ait encore été choisi comme standard par le W3C (même si on peut parier
sur le SWRL) montre que la technologie n’est pas encore matûre pour une utilisation
industrielle ou grand public. Cependant l’état actuel des travaux est très encourageant,
et si les promesses initiales du Web Sémantique ne seront jamais tenues, il aura permis
l’accélération du développement de formats et de technologies pour la représentation
des connaissances. On peut penser que tout comme le langage KQML [Finin94] qui a
été utilisé à d’autres fins que celles pour lesquelles il a été conçu, les technologies et
standards du Web Sémantique trouveront (et trouvent déjà) un champ d’application
dans toutes les applications touchant à la gestion de connaissances. Le fonctionnement
des systèmes inférentiels comme ceux du web sémantique fait à notre sens, parfaitement
écho à la théorie de la justification que nous avons présentée au chapitre précédent. En
effet dans un tel système logique, il est possible de justifier par l’utilisation de raisonneur
de la validité d’une proposition au regard d’un système d’axiomes et de règles de
dérivation. Les raisonneurs permettent aussi de vérifier la consistance d’un système et
d’exhiber les points de discorde en cas de non consistance. Le langage OWL, basé sur
les logiques de description et par conséquent sur l’hypothèse d’un monde ouvert nous
parait parfaitement adapté à nos besoins de représentation et d’inférence dans le cadre
de nos recherches.
Dans l’étude des agents et des systèmes multi-agents, nous avons focalisé notre étude
sur deux classes de critères, la représentation des connaissances et les comportements
des agents. La problématique de représentation des connaissances au sein des agents
suit le développement des technologies du web sémantique qui ont permi, grâce tout
d’abord à RDF puis à OWL d’améliorer les capacités de représentation des agents. Les
moteurs d’inférence logique liées à ces technologies permettent aux agents la découverte
de nouvelles connaissances à partir de celles déjà existantes. Cependant ces capacités ne
sont pas pleinement utilisées, notamment OWL, comme on peut le voir dans SEAGENT
ou AgentOWL, puisque la capacité de représentation n’est pas utilisée avec la logique de
description qui est à la base de ce langage. On a donc une sous-utilisation des capacités
de représentation et d’inférence. Toujours d’un point de vue logique, l’hypothèse de
monde fermé est très largement utilisée et comme nous l’avons vu en section 3.2 elle
n’est pas cohérente avec la représentation que nous nous faisons du monde. L’approche
logique au niveau des connaissances, en tant que système inférentiel est présente dans
les trois domaines que nous avons étudiés. Ce n’est pas une surprise car les outils
disponibles (Prolog ou logique de description) s’intègre sans difficulté technique dans
tout type d’architecture. Il est plus étonnant de noter que les technologies plus récentes
(bien que OWL soit une recommandation W3C depuis Février 2004) sont en premier lieu
intégrées dans les approches génériques (langages de programmation et plates-formes),
les applications dédiées utilisant des technologies plus anciennes.
132
Chapitre 3. Etat de l’art
Les comportements des agents sont souvent disjoints de leur base de connaissance,
un langage comme Jazzyk y met par exemple un point d’honneur. Les applications dédiées fonctionnent à l’aide de langage objet, majoritairement le JAVA, ce qui exclut toute
sémantique dans les comportements d’agents. Pour pallier ce manque, les approches
de S-APL ou SEAGENT proposent une description sémantique de ces comportements,
pour la découverte et la composition de comportements en utilisant des mécanismes
inspirés des Web Services. Dans les trois domaines étudiés, les langages de programmation du comportement et ceux de la représentation de connaissance sont différents
dans la très grande majorité des cas, sauf pour les architectures BDI. Dans le cas précis
des architectures, le lien entre base de connaissances et comportement est réalisé au
niveau des croyances (B de BDI). L’implémentation de cette architecture se base sur
l’utilisation de raisonneur de type Prolog, ce qui restreint par conséquent la logique
utilisée pour la base de connaissances à la logique du premier ordre. Les logiques de
description utilisée dans OWL sont dotées d’une expressivité plus grande mais elles
n’ont pas été implémentées dans les architectures BDI. Les différentes tentatives (JASDL,
Argonaut) n’ont pas pu fournir d’implémentation. L’unification du comportement et de
la base de connaissances autour d’OWL reste donc un problème ouvert. La question de
la reflexivité dans les architectures est souvent ignorée dans le cadre des langages agents
alors que c’est à ce niveau qu’on pourrait s’attendre à la voir apparaître. Seuls S-APL et
une extension de Jason ([Ancona04b], non implémentée) proposent cette fonctionnalité,
mais aucun de manière satisfaisante. La dualité langage de raisonnement et langage
d’implémentation des fonctions est le facteur limitant à l’échange des comportements
entre agents dans les deux cas. l’utilisation des technologies du web sémantique est un
standard incontestable dans le monde agent pour la représentation des connaissances.
Cependant l’utilisation des capacités de raisonnement n’est pas encore utilisée dans la
réalisation des comportements des agents.
L’analyse qui a suivi a montré que l’utilisation des langages du web sémantique
permettait la mise en place des deux types de connaissances (justifiables et empiriques)
au sein d’une architecture d’agents. Tout d’abord nous avons établi le rapprochement
entre le caracètre exécutable des connaissances empiriques (qui produisent une action)
et les comportements des agents. L’architecture BDI qui établit un lien direct entre
processus de décision, comportement et connaissance semblait toute indiquée pour
remplir cette tâche. Cependant les tentatives infructueuses d’implémentation d’une telle
architecture ont orienté notre choix sur une architecture basée autour des machines
étendues à état finis (EFSM).
Nous avons ensuite montré que les langages OWL et SWRL permettaient la réalisation d’une base de connaissances homogène permettant de décrire à la fois les
connaissances justifiables et empiriques. L’utilisation d’un raisonneur unique pour l’inférence des connaissances, la justification des deux types de connaissance ainsi que
Section 3.5. Conclusion
133
l’exécution des comportements est alors possible. Nous présentons dans le chapitre
suivant, une architecture réalisant cette unification.
3.5.1
Conclusion de l’analyse
Dans cette analyse, nous avons établi montré que l’utilisation des langages du web
sémantique permettait la mise en place des deux types de connaissances (justifiables et
empiriques) au sein d’une architecture d’agents. Tout d’abord nous avons établi le rapprochement entre le caracètre exécutable des connaissances empiriques (qui produisent
une action) et les comportements des agents. L’architecture BDI qui établit un lien direct
entre processus de décision, comportement et connaissance semblait toute indiquée
pour remplir cette tâche. Cependant les tentatives infructueuses d’implémentation d’une
telle architecture ont orienté notre choix sur une architecture basée autour des machines
étendues à état finis (EFSM).
Nous avons ensuite montré que les langages OWL et SWRL permettaient la réalisation d’une base de connaissances homogène permettant de décrire à la fois les
connaissances justifiables et empiriques. L’utilisation d’un raisonneur unique pour l’inférence des connaissances, la justification des deux types de connaissance ainsi que
l’exécution des comportements est alors possible.
L’homme est infiniment grand par rapport à l’infiniment petit et infiniment petit
par rapport à l’infiniment grand ; ce qui le réduit presque à zéro.
Vladimir Jankélévitch
4
Un modèle d’agents sémantiques
136
Chapitre 4. Un modèle d’agents sémantiques
Plan du chapitre
4.1
Architecture . . . . . . . . . . . . . . . . . . . . . .
4.1.1
Base de connaissances et Comportements
4.1.2
Interpréteur . . . . . . . . . . . . . . . . .
4.1.3
Actions de bas niveau et plate-forme . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
137
138
139
139
4.2
Programmation des agents . . . . . . .
4.2.1
Syntaxe du langage . . . . . . .
4.2.2
actions SWRL standards . . . .
4.2.3
Actions spécifiques aux agents
4.2.4
Définition de nouvelles actions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
140
141
141
143
145
4.3
Structure de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.3.1
Modèle sémantique des agents . . . . . . . . . . . . . . . . . . 146
4.4
Représentation des connaissances empiriques . . . . . . . . . . . . . . 148
4.5
Exécution d’un scénario . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Section 4.1. Architecture
137
’ ANALYSE de l’état de l’art précédent a abouti sur une architecture d’agent sémantique utilisant les machines étendues à états finis pour représenter les comportements sous formes de règles SWRL. Cependant SWRL ne contient pas toutes les
fonctionnalités nécessaires à la programmation d’un agent. SWRL est un langage de
règles sémantique, qui est dépourvu de toutes actions de bas niveaux (accés aux fichiers,
communication réseau, . . .). Pour pallier ce manque, nous choisissons une architecture
en couhes qui permet l’utilisation d’un langage de plus bas niveau pour compléter les
fonctions manquantes à la réalisation de l’agent. Nous présentons cette architecture dans
la section suivante.
L
La programmation des EFSM requiert la définition de règles spécifiques SWRL et de
la mise en place d’un interpréteur qui exécutera les règles et les actions présentes dans le
conséquent. La grammaire du langage ainsi que la structure de contôle de l’interpréteur
font l’objet des sections 4.2 et 4.3. Les spécifications issues de l’interpréteur permettent
de définir le modèle sémantique des agents (section 4.3.1) qui permet la réflexivité, les
agents ayant connaissance de leur propre structure. Puis nous présentons l’extension du
modèle pour le support des connaissances empiriques.
Enfin nous présentons l’exécution d’un scénario pour illustrer le fonctionnement pas
à pas de l’interpréteur et les intéractions entre les différentes couches de l’interpréteur.
4.1 Architecture
La construction d’une architecture en couches est un choix dû au fait que le langage
de règles ne contienne pas toutes les fonctionnalités nécessaires à la programmation d’un
agent. SWRL est un langage de règles sémantique, qui est dépourvu de toutes actions
de bas niveaux (accés aux fichiers, communication réseau, . . .). Pour pallier ce manque,
nous choisissons une architecture en ccouhes qui permet l’utilisation d’un langage de
plus bas niveau pour compléter les fonctions manquantes à la réalisation de l’agent.
Cette approche, dans le cas du choix de SWRL comme langage de règles, se justifie
par la difficulté d’extension d’un interpréteur SWRL. De plus, pour la communication
inter-agents, il est souhaitable par souci d’intéropérabilité de respecter les standard
FIPA-ACL. De nombreuses implémentations de ces standards existent, notamment en
JAVA.
L’architecture des agents (Fig. 4.1) est composée des trois couches suivantes :
1. Base de connaissances et de Comportements
2. Interpréteur
3. Actions de bas niveau et Plate-Forme
138
Chapitre 4. Un modèle d’agents sémantiques
OWL - SWRL
Base de connaissances et de comportements
Teste les transitions
Séquences d’actions
Messages reçus
(sémantisés)
JAVA
Pellet
Jena
Interpréteur
Démarre les actions
Messages reçus
Actions de bas niveau
Intéraction avec la plate-forme
JAVA
JADE
F IGURE 4.1 – Architecture des agents
4.1.1
Base de connaissances et Comportements
Cette couche, dite sémantique, est la plus haute couche de l’architecture. Elle contient
l’ensemble des connaissances de l’agent, justifiables et empiriques. Ces connaissances
sont composées de concepts OWL (classes, instances, propriétés et opérations) et de
règles SWRL pour les connaissances justifiables. Les connaissances empiriques sont
décrits à l’aide des mêmes termes OWL et SWRL, dans une ontologie que nous définirons
à la partie 4.3.1.
Les comportements de l’agent sont écrits à l’aide de règles SWRL, nous expliciterons
ensuite l’écriture des comportements. Notons dès à présent qu’un avantage significatif
de notre approche est l’usage de SWRL, dont la syntaxe étend celle de OWL. En effet
les termes de la base de connaissances de l’agent sont directement manipulés dans
les règles décrivant les comportements (cf Section 3.2.4.4), aucune transformation des
connaissances pour les manipuler à l’aide de règles n’est requise.
Section 4.1. Architecture
4.1.2
139
Interpréteur
L’intérpréteur constitue la structure de contrôle ainsi que l’interface entre les couches
de haut et bas niveaux. L’interpréteur comprend un le raisonneur tel que décrit dans la
figure 3.22 qui intéragit avec la couche sémantique pour les différentes actions( déclenchement des règles décrivant le comportement de l’agent, vérification de consistance,
explication, . . .). Si des actions de bas niveaux doivent être exécutées, l’interpréteur gère
les appels à la couche inférieure. Nous détaillons le fonctionnement de l’interpréteur
dans la section 4.3.
4.1.3
Actions de bas niveau et plate-forme
Les actions exécutables par l’agent se séparent en plusieurs catégories. On distingue
d’une part les actions du langage de règles SWRL qui sont exécutées par le raisonneur
et d’autre part celles les actions de bas niveau. Ces actions de bas-niveau, comme nous
l’avons indiqué précédemment sont les actions requises au fonctionnement d’un agent
et qui ne sont pas disponibles parmi les prédicats de SWRL. Au sein de ces actions de
bas niveau, on distingue deux catégories d’actions selon leur portée : les actions internes
et les actions externes. Les actions internes concernent les actions dont l’effet porte sur
l’agent lui-même alors que les actions externes concernent les intéractions de l’agent
avec son environnement. Une action interne modifie l’état de l’agent alors qu’une action
interne intéragit avec l’environnement et ne modifie pas l’état interne de l’agent.
Actions internes
La base de connaissances des agents est exprimée en OWL, c’est à dire en utilisant
les concepts suivants : classes, propriétés et individus. A chacun de ces concepts, sont
associées trois opérations : création,modification et suppression. Seulement la première
de ces opération est supportée SWRL. Comme seule la création est possible en SWRL, la
liste suivante montre les opérations qui doivent être effectuées par la couche basse de
l’architecture :
– modification/suppression de propriétés
– modification/suppression del’appartenance à une classe
– modification/suppression d’individus
Actions externes
Ce sont les actions exécutées par les agents pour intéragir avec son environnement.
Nous considérons que les agents évoluent dans un environnement électronique. Ce qui
restreint donc les actions possibles à l’échange de messages entre agents. Il y a donc
deux actions basiques, l’envoi et la réception de messages. Les actions relatives à la
communication se basent sur une plate-forme d’agents. Les messages sont structurés
selon la spécification FIPA-ACL (nous proposons une implémentation basée sur JADE
140
Chapitre 4. Un modèle d’agents sémantiques
dans le chapitre 6). Lors de la réception d’un message, celui-ci est stocké dans la file
des messages reçus dans la base de connaissance. Les agents sont compatibles avec la
spécification FIPA ACL 1 . En plus des éléments standards, tels que émetteur, destinataire
et contenu, la spécification FIPA-ACL impose de nombreux paramètres tels que l’URI
de l’ontologie utilisée et la performative. A l’aide de ces deux actions, il est possible
de construire des intéractions complexes (cf spécification FIPA). Les actions externes
permettent aussi l’intéraction avec une plate-forme d’agents.
4.2 Programmation des agents
L’ordonnancement des règles n’étant pas possible en SWRL, il faut utiliser un autre
moyen qu’un ensemble de règles pour décrire le comportement d’un agent. Les machines
à états finis étendues proposent une solution adaptée à la programmation d’agents à
l’aide de règles.La structure des agents se basent sur le formalisme des machines ou
automates à états finis étendues déterministes (deterministic EFSM). Les séquences
d’action qui représentent un comportement seront décrites sous forme de machines à
états finis étendues.
Dans le cadre des agents sémantiques, on établit les correspondances suivantes,
les symboles d’entrées sont les symboles reçus par l’agent, ceux de sortie sont ceux
envoyés par l’agent. Les fonctions d’activation sont les conditions portant sur l’état
interne de l’agent, c’est-à-dire sa base de connaissances. Les actions de mise à jour, sont
un ensemble d’actions qui sera exécuté par l’agent à l’issue de la transition. L’espace D
est ici l’espace des propositions représentables dans la base de connaissances, c’est à dire
l’union des ontologies OWL et des règles SWRL.
On peut représenter une machine à états finis étendues sous forme d’un ensemble
de règles du type suivant :
condition, etat → etat, miseajour
(4.1)
Avec condition qui regroupe les fonctions d’activation et les messages recus, et mise à
jour qui regroupe les messages expédiés ainsi que les modifications apportées à la base
de connaissances de l’agent.
Il est important de noter que la notion d’état dans notre cas est purement artificielle.
Elle sert à permettre l’ordonnancement des règles et ne doit pas être comprise comme
un état mental de l’agent.
1. http://www.fipa.org/repository/aclspecs.html
Section 4.2. Programmation des agents
4.2.1
141
Syntaxe du langage
La syntaxe des règles acceptées par l’interpréteur est basée sur celle de SWRL.
L’ensemble des règles constitue un sous-ensemble des règles SWRL définies dans
[Horrocks04] :
SAM ⊂ SWRL
La syntaxe des règles est donnée en notation EBNF (Extended Backus Normal Form)
dans la figure 4.2. Les règles contiennent deux éléments principaux, l’antécédent (SAMantecedent) et le conséquent (SAMconsequent). L’antécédent contient les conditions de
déclenchement de la règle. Ces conditions portent sur l’état courant de l’agent ainsi
que sur des concepts de sa base de connaissance. Ces dernières conditions sont facultatives (atom*). Une transition peut s’exécuter sans poser de conditions explicites sur les
connaissances de l’agent. Ce type de transition est dénotée transition libre.
Le conséquent des règles spécifie la séquence d’actions de bas niveaux qui doivent
être exécutées, les opérations effectuées par des primitives SWRL (par exemple l’assertion) ainsi que l’état d’arrivée de la transition. Cette liste spécifiée par a-list est liée au
conséquent par aActions. Les éléments non-terminaux de la grammaire sont définis dans
l’ontologie du modèle d’agent. Ces éléments sont les suivants :
– EtatCourant : classe qui définit l’état courant de l’agent. Présent dans l’antécédent
de la règle, il constitue une condition d’activation.
– EtatSuivant : classe qui définit l’état suivant de l’agent. Présent dans le conséquent
de la règle, il indique à l’interpréteur la variable qui définit l’état suivant.
– ValeurEtat : relation qui associe un état à une valeur.
– finListe : élément de fin de liste pour les actions.
– aNomParametre : associe un paramètre à un nom.
– aValeurParametre : associe un paramètre nommé à une valeur.
Les paramètres des différentes actions sont définies par aNomParametre et aValeurParametre.
4.2.2
actions SWRL standards
Les actions existantes en SWRL (SWRL built-ins en anglais) se répartissent en sept
catégories [Horrocks04] :
1. Comparaison
2. Mathématiques
3. Booléens, valeurs
4. Chaînes de caractères
5. Date, temps et durée
6. URI
142
SAMrule
Chapitre 4. Un modèle d’agents sémantiques
::= ’Implies(’ URIreference
{ annotation }
SAMantecedent SAMconsequent ’)’
SAMantecedent::= EtatCourant(’i-variable’)’
ValeurEtat’(’i-variable’ ’i-variable’)’ atom*
SAMconsequent::= EtatSuivant’(’i-variable’)’
aActions’(a-list’)’ atom*
ValeurEtat’(’i-variable’ ’i-variable’)’
a-list
action
::= aContenu(action) aSuivant(a-list)
| finListe
::= URIreference
aNomParametre(a-name)
a-name
::= aValeurParametre(i-object i-object)
atom
::= description ’(’ i-object ’)’
| dataRange ’(’ d-object ’)’
| individualvaluedPropertyID
’(’ i-object i-object ’)’
| datavaluedPropertyID
’(’ i-object d-object ’)’
| sameAs ’(’ i-object i-object ’)’
| differentFrom
’(’ i-object i-object ’)’
| builtIn
’(’ builtinID { d-object } ’)’
builtinID
::= URIreference
endlist
::= URIreference
i-object
::= i-variable | individualID
d-object
::= d-variable | dataLiteral
i-variable
::= ’I-variable(’ URIreference ’)’
d-variable
::= ’D-variable(’ URIreference ’)’
F IGURE 4.2 – EBNF du langage interprété. Ce langage est un sous ensemble de SWRL
Section 4.2. Programmation des agents
143
7. Listes (type listes RDF)
Il est important de noter que les listes ne sont disponibles que avec OWL-Full, qui est
non décidable. Nous avons précédemment choisi la décidabilité (OWL-DL et SWRL-DL),
par conséquent il faut retirer les listes des actions SWRL disponibles. Notre approche
requiert l’utilisation de liste, pour représenter les connaissances empiriques ainsi que les
comportements, nous utilisons donc une ontologie tierce OWLList [Drummond06] qui
permet de définir des séquences en OWL-DL.
4.2.3
Actions spécifiques aux agents
Les actions spécifiques sont celles qui sont requises pour la réalisation d’agents et qui
n’existent pas en SWRL. Nous avons déjà énoncé deux catégories, les actions internes
dont le résultat est une modification de l’état interne de l’agent et les actions externes
dont le résultat influe sur l’environnement extérieur des agents. Dans le cadre d’échanges
de connaissance dans lequel nous nous sommes placé, ces actions se restreignent à des
échanges de messages avec les entités du système.
Actions internes :
Les connaissances justfiables sont représentées à l’aide des concepts OWL (classes,
propriétés, individus. . .). Pour chacun de ces concepts on doit disposer des trois opération
élémentaires, à savoir : création,modification,suppression. A l’issue de l’éxécution d’une
règle SWRL, seule la création (par assertion) est possible. L’hypothèse de monde ouvert
entraîne le non support des négations comme but ou négation par l’échec. En pratique
il est donc possible de faire l’assertion de propriétés sur des individus ou des classes
dans le conséquent d’une règle. L’exemple suivant issue du document SWRL montre
l’assertion possible de la propriété oncle par la composition des propriétés parent et frère :
parent(?x, ?y) ∧ f rre(?y, ?z) ⇒ oncle(?x, ?z)
Mais les règles suivantes sont impossibles. La première présente un cas de négation
l’échec et la suivante un cas d’inférence non-monotonie. Il est par conséquent impossible
de supprimer une information dans le conséquent de la règle. Cependant cette opération
peut-être d’une grande utilité dans le cas qui nous concerne.
¬ Personne(?x ) ⇒ NonHuman(?x )
parent(?x, ?y) ∧ f rre(?y, ?z) ⇒ ¬tante(?x, ?z)
On peut contourner la restriction pour cette dernière règle en spécifiant que les domaines
de oncle et tante sont disjoints.
144
Chapitre 4. Un modèle d’agents sémantiques
Les actions internes déléguées à la couche inférieure de l’architecture sont les suivantes :
– Ajout,modification,supression de propriétés
– Modification, suppression de l’appartenance à une classe
– Ajout,modification,supression d’invidivus
– Ajouter, modifier, supprimer les domaines de définition d’une propriété.
Actions externes :
Comme nous l’avons énoncé prédécemment, les actions externes sont restreintes aux
échanges avec les entités du système.Les communications inter-agents ont été normalisés
dans la norme FIPA-ACL (voir annexe B), les agents se basent sur la norme ACL pour la
structure des messages.
Les messages reçus sont stockés dans une liste de type OWLList. Les actions externes sont les suivantes : envoiMessage et messagerecu. La première action prend en
paramètre tout les champs d’un message standard FIPA-ACL, on peut citer entre autres
émetteur,destinataire,ontologie, performative. La seconde action permet d’accéder aux
messages reçus qui sont stockés dans la liste.
A partir de ces simples intéractions, toujours en suivant les spécifications de la
FIPA il est possible de construire des échanges de nature complexe tels que propostion,abonnement,contrat. Les différents champs du message sont représentés dans la
base de données OWL en utilisant les propriétés hasPerformative, hasContent, hasSender .
Actions Internes
Fonctions
SWRL
Assertions
Comparaisons
Mathématiques
Chaînes de caractères
Booléens
Date, temps et durée
URI
Fonctions
de bas
niveaux
Création
Classes
Individus
Relations
Modification : idem
Suppression : idem
Actions Externes
X
Envoi de messages
Réception de messages
Interactions avec la plate-forme
F IGURE 4.3 – Actions selon les couches de l’architecture
Section 4.3. Structure de contrôle
4.2.4
145
Définition de nouvelles actions
Le modèle présenté dans la section précédente spécifie une liste d’actions de base
pour la gestion de connaissance et l’échange de messages. La définition de nouvelles
actions se fait par composition d’actions atomiques. Une seconde méthode qui aurait
été d’étendre l’ensemble des actions de bas niveaux pose un problème d’interopérabilité entre les agents qui ne partageraient pas tous les mêmes actions. L’approche par
composition est donc celle qui est retenue.
Ces nouvelles actions sont une composition d’actions de bas niveaux et de primitives
SWRL. Ces actions, sont de type composées (voir Fig 4.6). Pour définir ces nouvelles
actions, nous utilisons le même principe que pour réprésenter le comportement d’un
agent. Les actions composées sont un ensemble de règles constituant une machine à
états finis étendue.
4.3 Structure de contrôle
Base de connaissances
et
Comportement
Moteur de
règles
Clock
Messages reçus
Noms et paramètres
des actions
Règles et états
Interpréteur
Paramètres
Des actions
Paramètres
Des messages
Messages sortants
Actions interne
Actions
externes
Messages reçus
F IGURE 4.4 – Interpréteur des agents, inspiré de [Shoham91]
146
Chapitre 4. Un modèle d’agents sémantiques
L’interpréteur que nous proposons repose sur le principe des EFSM que nous avons
présenté précédemment. Les transitions entre les états sont décrites par des règles SWRL.
Dans ces règles on peut effectuer des actions existantes dans SWRL (primitives SWRL).
Les actions qui ne sont pas incluses dans les primitives SWRL seront exécutées par les
couches basses de l’architecture. Le cycle de l’interpréteur est décrit dans l’algorithme 1.
Algorithm 1: Cycle de l’interpréteur
1
2
3
4
5
6
7
8
9
10
début
etatCourant ←− sDebut;
tant que etatCourant 6= sFin faire
temp ←− valeurEtatSuivant();
si temp 6= etatCourant alors
enlevePropriete(etatCourant, aValeur );
listeActions ←− getlisteActions();
si executeAction(listeActions) alors
ajoutePropriete(etatCourant, temp) ;
sinon ajoutePropriete(etatCourant, erreur )
fin
Les états entre les transitions sont explicites. L’interpréteur est initialisé à l’état
sDebut qui est l’état de départ pour chaque comportement. sFin étant l’état final. Le
cycle se termine quand etatCourant = sFin (ligne 3). Si une transition est active, alors la
valeur de l’état suivant sera différente de celle de l’état actuel. L’interpréteur fait appel
au moteur de règles (cf figure 4.4) à la ligne 5, pour obtenir la valeur de la variable
etatSuivant. L’état courant est alors réinitialisé, et l’interpréteur récupère ensuite la liste
des actions de bas niveau à exécuter. Si ces dernières sont exécutées avec succès, alors
l’état suivant est activée et le cycle continue. En cas d’erreur lors de l’exécution de ces
actions, l’interpréteur place dans l’agent dans un état d’erreur.
4.3.1
Modèle sémantique des agents
. Ces règles portent sur des concepts fixés par l’architecture spécifiée dans la partie
4.1 et dont la syntaxe a été donné dans la partie précédente. Les concepts OWL ainsi
définis, représentent le modèle sémantique des agents. Ces agents possèdent donc une
représentation de leur propre architecture dans leur base de connaissance. Construit à
partir des spécifications données dans les parties 4.1 et 4.3, le modèle OWL résultant est
présenté dans la figure 4.5.
Les différents états possibles de l’agent sont des instances de la classe State. Il existe
deux états spéciaux sDebut et sFin, le premier étant l’état initial, le second, l’état final.
Section 4.3. Structure de contrôle
147
Chaque comportement d’agent doit débuter par sDebut et terminer par sFin, la relation
entre comportement et état du schéma 4.6, montre la nécessité de ces deux états particuliers pour chaque comportement. La liste des actions à exécuter lors d’une transition
ainsi que les messages reçus sont des instances de listes de type OWLList 2 . Les actions
de bas niveaux sont des instances la classe Action
1
0..*
1
Connaissance Empirique
1
1
possède
Agents
Agent Courant
Propriété
valeur : String
possède
0,1
1
Pile d'exécution
1
0,1
1..*
Comportement
nom : String
Adresse : String
1
1
2..*
1..*
1
1
1
1
<<interface>>
I/O
Etat Courant
Etat
Règle SAM
nom : String
<<realize>>
Entrée
ListeActions
1
0..*
<<realize>>
Sortie
Actions
nom : String
run() : void
Action interne
Action externe
F IGURE 4.5 – Ontologie résultante de l’architecture
La figure 4.6 décrit l’ontologie résultante de l’architecture que nous avons spécifiée
précédemment.
2. http://www.co-ode.org/ontologies/lists/
148
Chapitre 4. Un modèle d’agents sémantiques
Action
subClassOf
subClassOf
disjointWih
Atomic Action
Composed Action
isa
subClassOf
subClassOf
disjointWih
Internal Action
External Action
ActionList
F IGURE 4.6 – Ontologies des agents : hiérarchie des actions
4.4 Représentation des connaissances empiriques
Les connaissances empiriques ont été définies comme étant une séquence d’actions
associée à une propriété. A l’issue de l’exécution de cette séquence d’actions, la propriété
doit être vérifiée. Ces connaissances sont représentées de la manière suivante dans la
base de connaissances :
– Une séquence d’actions du même type qu’un comportement (OWLList d’Actions)
– La propriété qui doit être vraie à l’issue de l’éxécution
– Les paramètres et leur types (variables et classes).
– Une requète
– Des exemples de valeur de paramètres et des résultats attendus à l’issue de la
requète (optionnel)
Lorsqu’un agent reçoit une connaissance empirique, il l’éxécute de la manière suivante : tout d’abord il initialise les paramètres de l’éxécution. Puis il exécute la série
d’actions de la même manière qu’un comportement, en exécutant les actions lors de
transition entre les états. A la fin de cette exécution, la base de connaissances de l’agent a
été modifiée, soit de manière interne, soit par la réception de messages issus d’échanges
avec des agents. La requète sur la base de connaissances permet d’obtenir le résultat de
cette exécution, puis soit d’afficher le résultat à l’utilisateur qui confirmera ou invalidera
le résultat. L’agent émetteur de la connaissance peut choisir de fournir des paramètres à
titre d’exemple pour justifier de sa bonne foi.
Section 4.5. Exécution d’un scénario
149
Exemple : fonction factorielle
Prenons le cas d’un agent nommé Alice disposant des connaissances de base, c’est à
dire de son propre modèle et des actions standards définies précédemment. Il dispose
des opérations mathématiques standards fournies par SWRL 3 : addition, multiplication,
puissance, . . .. Un deuxième agent, Bob, sait quant à lui, en plus des connaissances
dont dispose Alice, calculer la factorielle d’un entier. Il utilise l’algorithme standard de
multiplication successive.
La fonction mathématique swrlb :add est vraie si la somme du premier et du
deuxième argument est égale au troisième. Pour obtenir la somme de 3 et 5 dans la
variable n, on appelle la fonction somme ceci : swrlb :add(3,5,n).
L’algorithme en langage s’écrit alors de la manière suivante (on omet volontairement
la variable intermédiaire dans les additions en précédant la destination par ? ) :
Paramètre : n, de type xsd : integer
Variables : i, j, k, de type xsd : integer, initialisées à 1.
Etats : sDebut, sFin et un état intermédiaire A.
Règles
1. etatcourant=Sdebut AND i < n ⇒ etatsuivant=A AND swrlb :add(j,1, ?k)
AND swrlb :mult(j,k, ?j) AND swrlb :add(i,1, ?i)
2. etatcourant=A AND i < n ⇒ etatsuivant=sDebut
3. etatcourant=A AND i = n ⇒ etatsuivant=sFin
Requète : Comparaison de la valeur de j avec celle de l’exemple.
Exemples : [(3,6),(5,120)]
4.5 Exécution d’un scénario
Pour illustrer le mécanisme de fonctionnement des agents, nous allons détailler pas
à pas l’exécution d’un comportement simple. Prenons l’exemple suivant, l’agent Alice
veut envoyer une question à l’agent Bob. Alice s’enregistre auprès des pages jaunes de
la plate-forme (nous proposons dans la section suivante une implémentation basée sur
JADE). Bob répond ensuite à Alice. Si le message que reçoit Alice est de Bob. S’il s’agit de
la réponse à son message précédent, alors Alice ajoute la réponse de Bob dans sa base de
connaissances. L’EFSM correspondant au comportement d’Alice est illustré par la figure
4.7. La colonne de gauche montre les actions de bas niveau exécutées lors des transition.
Les conditions de déclenchement des transitions se trouvent dans la colonne de droite.
La première transition est libre de condition, elle est exécutée lors du démarrage d’Alice.
registerDF est alors exécuté, c’est à dire Alice s’enregistre auprès du système de pages
jaunes. Si l’action retourne vrai, alors l’instruction suivante, c’est à dire l’envoi d’un
3. http://www.daml.org/2004/04/swrl/builtins.html#8.2 accédé le 23/12/2009
150
Chapitre 4. Un modèle d’agents sémantiques
aRecu(?x)
^ aPerformative(x,Answer)
^ aEmetteur(x, Bob)
^ hasContent(x,?y)
sDebut
A
1.
2.
RegisterDF
EnvoiMessage
sFin
AddIndividual
Paramètre
Valeur
Performative
Query
Contenu
Select ?x
Destinataire
«Bob»
Paramètre
Valeur
Individu
?y
F IGURE 4.7 – Exemple illustratif (a), Scénario
message à Bob, est exécutée. La règle qui décrit cette transition est la suivante :
EtatCourant(?x )
∧ ValeurEtat( x, sDebut)
∧ EtatSuivant(?y)
⇒ ValeurEtat(y, A)
∧ aContenu(SequenceActions, registerDF )
∧ aSuivant(SequenceActions, item)
∧ aContenu(item, EnvoiMessage)
∧ aNomDeParametre( EnvoiMessage, Destinataire)
∧ aValeurDeParametre( Destinataire, Bob)
. . . idem avec les autres parametres
∧ aSuivant(item, f inDeListe)
Pour vérifier si une nouvelle transition doit être exécutée, l’interpréteur (la couche
intermédiaire) interroge la base de connaissances de l’agent pour connaître la valeur
de EtatSuivant. Si cette dernière est différente de la valeur de EtatCourant cela signifie
qu’une transition doit être exécutée. L’interpréteur lit ensuite les valeurs des actions
contenues dans SequenceActions ainsi que leur paramètres respectifs. La séquence d’action correspondant à la première transition de la figure 4.7 est illustrée dans la figure 4.8.
L’action EnvoiMessage possède trois paramètres dont les valeurs sont indiquées par la
propriété aValeurParametre.
La règle spécifiant la deuxième transition contient des conditions sur le message
reçu. Il faut en effet vérifier que le message a été envoyé par Bob et qu’il a été envoyé en
réponse au message d’Alice. On vérifie donc les propriétés Emetteur et Performatives sur
le dernier message reçu.
EtatCourant(?x )
Section 4.5. Exécution d’un scénario
151
∧ ValeurEtat( x, A)
∧ EtatSuivant(?y)
∧ aRecu(?z)
∧ aPer f ormative(z, Answer )
∧ aEmetteur (z, Bob)
∧ aContenu(z, ?w)
⇒ ValeurEtat(y, sEnd)
∧ aContenu( ActionSequence, AjoutInstance)
∧ aSuivant( ActionSequence, f inDeListe)
∧ aNomDeParametre( AjoutInstance, nom)
∧ aValeurDeParametre(nom, w)
Nous détaillons ensuite les échanges entre les différentes couches de l’architecture pour
l’exécution de la première transition.
Bob
aValeurParametre
Question
Select ?x from..
aValeurParametre
Destinataire
aNomParametre
aValeurParametre
Performative
aNomParametre
Contenu
aNomParametre
EnvoiMessage
RegisterDF
aContenu
{RegisterDF,
EnvoiMessage}
aContenu
{EnvoiMessage}
aSuivant
{}
aSuivant
F IGURE 4.8 – Exemple illustratif (b), Structure de données de la séquence d’actions
4.5.0.1
Exécution d’une transition
L’exécution d’une transition fait intervenir les 3 couches de l’architecture. Les
échanges entre les couches lors de la première transition sont représentés dans la figure
4.9. Tout d’abord l’interpréteur interroge la couche sémantique pour connaitre la valeur de EtatSuivant. On a alors EtatSuivant = A. Comme A 6= sDebut, l’interpréteur
récupère ensuite la séquence des actions de bas niveau à exécuter. SequenceAction =
RegisterDF, EnvoiMessage. L’interpréteur fait alors appel à la fonction de bas niveau
RegisterDF. Si celle-ci est exécutée avec succés, les paramètres de EnvoiMessage sont
152
Chapitre 4. Un modèle d’agents sémantiques
A
EtatCourant = A
Execute
EnvoiMessage
Execute
Regiser DF
Actions
atomiques
{RegisterDF
EnvoiMessage}
Couche
intermédiaire
Valeur de
EtatSuivant?
Base de
connaissance
Valeur de
SequenceActions?
ensuite récupérés et l’action est appellée avec ses paramètres. Si elle est exécutée avec
succès, l’interpréteur modifie l’état de l’agent dans la couche sémantique pour que
EtatCourant = A. La transition est alors terminée et le cycle d’exécution reprend par la
comparaison des valeurs de EtatSuivant et EtatCourant.
F IGURE 4.9 – Exemple illustratif (c), Flux de la transition de l’état sDebut vers l’état A
4.6 Conclusion
Le modèle et l’architecture d’agent que nous avons présenté résulte de l’application
d’une définition épistémologique de la connaissance. Les connaissances des deux types
ont été représentés à l’aide du formalisme fourni par les standards OWL et SWRL. Le
langage de règles SWRL ne permettant la programmation d’agents, nous avons proposé
une architecture en couches pour compléter avec les fonctions requises en terme de
communication et de gestion de la base de connaissances. Pour compléter les fonctions
requises, nous avons spécifié un nombre fini d’actions qui est commun à tous les agents.
L’utilisation d’un nombre fini d’action permet une interopérabilité complète entre les
agents sémantiques en évitant le problème de double définition des actions (au niveau
sémantique et opérationnel).
Notre approche a été de représenter les connaissances empiriques en nous basant sur
la représentation des comportements de l’agent, c’est-à-dire sous forme de connaissances
exécutables. L’architecture que nous avons spécifiée permet de représenter toutes les
connaissances de l’agent au même niveau d’abstraction et de disposer de méthodes
adaptées à la justification des connaissances au sein d’un système multi-agents dédié à
la gestion des connaissances.
Section 4.6. Conclusion
153
La problématique posée en début de chapitre, la mise en œuvre d’une définition épistémologique de la connaissance basée sur la distinction entre connaissances empiriques
et connaissances justifiables a été réalisée au travers d’un modèle d’agent sémantique.
Le modèle permet de prendre en compte les différents aspects de la connaissance et de
les rendre échangeables entre les agents.
Si l’objectif fixé a été atteint, des bénéfices non attendus ont été obtenus lors de
la réalisation. Tout d’abord, le fait de ne pas dépendre d’un langage de bas-niveau
en particulier, tout agent implémentant le modèle et les actions de bas niveaux (en
C++, JAVA ou autre langage), sera capable d’échanger ses connaissances et surtout ses
connaissances empiriques et comportements. Le deuxième avantage est l’unicité de
la base de connaissances, qui en plus des connaissances classiques, contient aussi les
comportements de l’agent.
Un homme qui cherche la vérité se fait savant ; un homme qui veut laisser sa
subjectivité s’épanouir devient peut-être écrivain. Mais que doit faire un homme
qui cherche quelque chose situé entre les deux ?
Robert Musil - "L’homme sans qualité"
5
Communautés Virtuelles de Connaissances à
base d’agents
156
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
Plan du chapitre
5.1
Conception de l’ontologie . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1
Formalisation Ensembliste . . . . . . . . . . . . . . . . . . . . .
5.1.2
Ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.3
Agents Sémantiques et ontologie des communautés virtuelles
de connaissances . . . . . . . . . . . . . . . . . . . . . . . . . .
157
157
163
167
5.2
Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.2.1
Description du scénario . . . . . . . . . . . . . . . . . . . . . . 169
5.2.2
Conclusion de l’exemple . . . . . . . . . . . . . . . . . . . . . . 172
5.3
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Section 5.1. Conception de l’ontologie
157
Pour formaliser les VKC, nous avons choisi de procéder tout d’abord par une formalisation à l’aide de l’outil mathématique commun que représentent les ensembles et
relations. L’expressivité et la simplicité de ce cadre formel ont été déterminant dans notre
choix. De plus, il ne se restreint pas à l’utilisation d’une technologie, mais permet au
contraire de définir en amont les éléments qui seront implémentés dans une technologie.
Notre formalisation se base sur notre expérience dans le domaine, sur les recherches
théoriques de Calmet et Maret ainsi que sur les différentes implémentations que nous
avons décrites dans le premier chapitre.
Pour compléter le lien entre cette formalisation et les agents, nous définissons une
ontologie des commaunutés virtuelles de connaissances qui est intégrable dans la base
de connaissances de ces agents. Pour ce faire, nous traduisons les ensembles par des
classes et les fonctions par des relations. Nous présentons ensuite différents exemple
d’utilisation de cette ontologie.
Dans la description formelle des communautés virtuelles de connaissances, nous
introduisons le concept de protocoles qui va permettre d’établir le lien avec les connaissances échangeables par les agents sémantique. Nous représentons ces protocoles sous
formes de règles interprétables par les agents SAM, afin de rendre opérationnelle l’utilisation des communautés sous forme d’ontologie.
Nous présentons ensuite une application qui illustre les atouts de notre approche et
permet de montrer une mise en œuvre des différents concepts que nous avons définis.
Le but de l’exemple est d’illustrer la transmission d’une connaissance empirique (l’utilisation de communautés de connaissances, décrite par l’ontologie) puis son utilisation
pour permettre à un agent d’acquérir des connaissances.
5.1 Conception de l’ontologie
Nous présentons dans les sections suivantes la définition de l’ontologie des communautés virtuelles de connaissance en commencant par la formalisation ensemblise,
puis la réalisation de l’ontologie et finalement le lien avec le modèle d’agent sémantique
défini au chapitre précédent.
5.1.1
Formalisation Ensembliste
Pour formaliser les VKC, nous avons choisi de procéder tout d’abord par une formalisation à l’aide de l’outil mathématique commun que représentent les ensembles et
relations. L’expressivité et la simplicité de ce cadre formel ont été déterminant dans notre
choix. De plus, il ne se restreint pas à l’utilisation d’une technologie, mais permet au
contraire de définir en amont les éléments qui seront implémentés dans une technologie.
Notre formalisation se base sur notre expérience dans le domaine, sur les recherches
158
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
théoriques de Calmet et Maret ainsi que sur les différentes implémentations que nous
avons décrites dans le premier chapitre.
Le premier ensemble que nous définissons est celui des agents qui composent les
communautés (dénoté ensemble M). Ces agents peuvent être autonomes ou dirigés
par un utilisateur humain. Les communautés regroupent des agents autour d’un (ou
plusieurs) élément(s) commun(s), que l’on nomme le thème. L’ensemble de ces éléments
est appellé S pour ensemble des sujets. Nous avons vu dans le premier chapitre que les
agents n’ont pas tous les mêmes fonctions au sein d’une communauté, par exemple le
leader peut dissoudre une communauté alors qu’un membre ne peut que la quitter. Ces
fonctions (leader,membre,. . .) sont liées à des actions possibles au sein de la communauté
(dissoudre, rejoindre, envoyer un message). Nous noterons les fonctions ou rôles comme
appartenant à l’ensemble R, l’ensemble A contient l’ensemble des actions possibles. Pour
lier les agents aux rôles et les rôles aux actions, nous définisson les relations rr et r p .
L’ensemble le plus intéressant au sens de nos travaux est celui des protocoles (ensemble P). Nous entendons par protocoles les règles de communication qui régissent les
intéractions au sein d’une communauté. Notre but est de tirer partie de la possibilité
d’échange de connaissance exécutable entre les agents au sein de cette formalisation.
Nous souhaitons en effet que les connaissances des communautés soient "opérationnelles" pour les agents. Ces protocoles appartenant à l’ensemble P décrivent l’implémentation des actions auxquelles nous les associons par la relation r p .
Nous proposons la formalisation suivante pour les VKC : unee communauté c appartenant à l’ensemble des communautés C est un tuple : c ∈ C = { M, R, A, P, S, rr , r a , r p }
où M, R, A, P, S sont des ensembles et rr , r a , r p sont des relations entre ces ensembles.
Ensembles
– M est un ensemble d’agents, qui décrit les agents appartenant à la communauté.
Une communauté possède au moins un agent, qui est le créateur de cette communauté. | M | ≥ 1.
– R est un ensemble de rôles possibles au sein de la communauté.
– A est un ensemble d’actions, qui sont les actions possibles dans la communauté.
Les actions classiques sont rejoindre,quitter, . . .. Pour que la notion de communauté
ait un sens, A doit être non vide. Auquel cas on aurait une commaunuté vidée de
toute action possible, dans laquelle seule le créateur est membre.
– P est un ensemble de protocoles. Un protocole décrit les règles d’échanges entre
deux agents au sein de la communauté. A chaque action on associe un protocole
qui permet de réaliser cette action. A chaque communauté c est aussi associé
un protocole, qui décrit le fonctionnement de la communauté, c’est-à-dire l’ordonnancement des actions. Par exemple, on commence d’abord par rejoindre la
communauté, ensuite on échange des messages, puis on quitte la communauté. La
cardinalité de P est supérieure ou égale à un (conséquence de A non vide).
Section 5.1. Conception de l’ontologie
159
– S est un ensemble de sujets qui sont le centre d’intérêt de la communauté.
Relations
– rr ⊆ M × R est une relation entre l’ensemble des agents M et l’ensemble des rôles
R. Cette relation décrit les rôles associés à chaque agent au sein d’une communauté.
A chaque agent on associe au moins un rôle. Cependant certains rôles peuvent être
inoccupés au sein d’une communauté. De ce fait la relation rr est totale à gauche 1 .
– r a ⊆ R × A est une relation entre l’ensemble R des rôles et l’ensemble A des
actions. A chaque rôle on associe les actions qui sont permises dans la communauté.
Chaque rôle disposant au moins d’une actions dans la communauté, la relation rr
est totale à gauche.
– r p ⊆ R × A × P est la relation qui à chaque couple (rôle,action) associe un protocole. Prenons par exemple l’action de rejoindre la communauté, le protocole sera
différent si l’agent est membre ou créateur, dans le premier cas il sera émetteur de
la requête, dans le second cas, il traitera la requête.
5.1.1.1
Communauté zéro
La communauté zéro c0 ∈ C ou communauté minimale est la plus petite communauté que l’on puisse construire, dans laquelle il y a un transfert possible d’informations
entre les membres. D’aucun pourrait penser intuitivement que la communauté minimale
contient 3 actions, rejoindre,envoyermessage,quitter, on peut en fait définir une communauté avec seulement deux actions envoyermessage,quitter. Cette communauté fonctionne
comme une mailing-list ou l’envoi d’un message sur la liste entraine l’ajout comme
membre de la liste. Pour quitter la liste, on envoie un message au créateur de la liste
qui retire l’agent de la liste. La figure 5.1 illustre cet exemple. Bob est le créateur de la
communauté, Chuck et Dave sont des membres de la liste. Alice envoie un message à
Bob selon le protocole associé à envoyerMessage et au participant, Bob suit le protocole
associé au créateur et transfère le message aux membres de la liste. Finalement Alice est
ajoutée comme membre de la liste par Bob.
Pour les protocoles, ils seront notés avec un + à la fin si l’agent qui va executer
l’action associée est émetteur de l’action, et - si il est destinataire.
En reprenant la formalisation précédente on obtient :
– M = { Alice, Bob, Chuck, Dave}
– R = {createur, membre}
– A = {envoyerMessage, quitter }
– P = {envoyerMessage+, quitter +, envoyerMessage−, quitter −}
– |S| ≥ 1, le sujet de la communauté.
1. Une relation R ⊆ X × Y est dite totale à gauche ssi pour tout x dans X il existe un y dans Y tel que
( x, y) ∈ R.
160
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
Chuck
Alice
message
membre
Bob
Nouveau membre
Créateur
Dave
membre
F IGURE 5.1 – Execution de envoyerMessage dans la communauté c0
– Associations rôles agent :
– ( Alice, membre) ∈ rc
– ( Bob, crateur ) ∈ rc
– (Chuck, membre) ∈ rc
– ( Dave, membre) ∈ rc
– Associations rôles actions :
– (createur, quitter ) ∈ rc
– (createur, envoyerMessage) ∈ rc
– (membre, quitter ) ∈ rc
– (membre, envoyerMessage) ∈ rc
– Associations rôles, actions et protocoles :
– (createur, envoyerMessage, envoyerMessage−) ∈ r p
– (createur, createur, quitter −) ∈ r p
– (membre, quitter, quitter +) ∈ r p
– (membre, envoyerMessage, envoyerMessage+) ∈ r p
5.1.1.2
Protocoles
Les protocoles spécifient les règles de communication entre les différents agents. A
chaque action dans la communauté est associée un protocole. Ce protocole décrit les
règles de communication d’agents en spécifiant le contenu des messages échangés lors
de cette communication.
5.1.1.3
Exemple : Communauté 0
Pour illustrer notre propos nous décrivons les règles d’envoi d’un messsage dans le
cadre de la communauté-0 présentée ci-dessus. La spécification du protocole d’envoi
sous forme de diagramme séquence est présentée en figure 5.2.
Section 5.1. Conception de l’ontologie
161
Communauté 0 : Broadcast
membre
créateur
Membre 1
Membre N
Envoi message
Broadcast du message
F IGURE 5.2 – Diagrame de séquence du protocole envoyerMessage de la communauté 0
5.1.1.4
Vue d’une communauté
Chaque agent ne possède pas la même vision de la communauté. En effet, en fonction
de son rôle et de son historique dans la communauté, un agent ne possèdera pas les
mêmes informations que ses homologues. Prenons toujours pour exemple la communauté zéro, Alice qui vient de rejoindre la communauté, ne sait pas que Bob et Chuck sont
membres de la communauté, de même elle ne sait quels sont les messages qui ont été
échangés avant son entrée dans la communauté. Par contre Bob qui est le créateur de
communauté, connaît la liste de tous les membres et possède un historique de tous les
messages.
Concernant les protocoles qui régissent la communauté, il n’est pas nécessaire que
chaque agent ait connaissance de tous les protocoles. Il est même souhaitable pour des
raisons de sécurité que chaque agent ne possède que les protocoles qui sont nécessaires
à son intéraction avec la communauté.
5.1.1.5
Efficacité des VKC
Les VKC sont un moyen de partager des connaissances entre les agents, selon
les protocoles d’échanges utilisés les VKC peuvent être plus ou moins efficaces. Pour
162
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
mesurer l’efficacité de ces communautés nous définissons l’efficacité de l’échange des
connaissances de la manière suivante :
– One note At l’ensemble des agents présents dans la communauté au temps t.
– On note KT,i,t l’ensemble des connaissances reçues par l’agent i sur le thème T au
temps t.
– On note f i K → [0, 1] la fonction de l’ensemble des connaissance K vers l’intervalle
[0, 1] qui représente l’intérêt de l’agent i pour une connaissance. Zéro indique un
intérêt nul et un un intérêt maximal.
– On note KgT,t l’ensemble des connaissances échangées sur le thème T au sein de
la communauté au temps t.
On définit alors l’efficacité de la distribution des connaissances par la formule suivante (adaptée de nos travaux [Calmet06]) :
EKDT (t) =
∑i ∈ At
| f (KT,i,t |
|KgT,t |
| At |
(5.1)
Par définitions la fonction EKD prend ses valeurs dans [0, 1]. Elle est maximale
quand tout les agents trouvent un intérêt dans toutes les connaissances échangées dans
le système et minimale quand aucune connaissance n’est intéressante. L’EKD donne une
mesure de l’évolution au cours du temps de cette efficacité. Son intégrale normalisée
R t2
sur le temps
t1
EKDT (dt)
t2−t1
indique l’efficacité moyenne dans la période entre t1 et t2. De la
même manière, sa dérivée
5.1.1.6
dEDKT (t)
dt
indique la variation instantanée de l’efficacité.
Conclusion
Dans cette partie nous avons présenté une formalisation ensembliste des VKC basées
sur les travaux précédents et sur des éléments identifiés lors de différentes implémentations. A la lumière des travaux réalisés sur l’échange de connaissances qui peuvent être
exécutées par un agent, nous avons défini une formalisation des VKC qui permet de
prendre en compte cette notion afin d’opérationnaliser cette connaissance des VKC. La
notion de protocole a été définie pour intégrer des connaissances exécutables au sein de
la formalisation. Nous avons ensuite décrit la communauté zéro, qui est la communauté
la plus simple que l’on puisse réaliser avec notre formalisation et qui permet d’illustrer
notre approche et l’utilisation de protocoles. La prochaine étape est d’adapter cette
formalisation au format OWL qui est celui manipulé par nos agents. C’est l’objet de la
prochaine sous-partie.
Section 5.1. Conception de l’ontologie
5.1.2
163
Ontologie
Nous avons présenté une formalisation ensembliste des communautés virtuelles de
connaissances, ainsi qu’une spécification plus précise des protocoles, s’appuyant sur
les règles qui régissent le comportement des agents. Pour compléter le lien entre cette
formalisation et les agents, nous définissons une ontologie des commaunutés virtuelles
de connaissances qui est intégrable dans la base de connaissances de ces agents. Pour ce
faire, nous traduisons les ensembles par des classes et les fonctions par des relations.
Le changement par rapport à la formalisation ensembliste concerne la relation ternaire r p qui ne peut exprimer directement en OWL. En OWL les relations sont par
définition binaires. Pour contourner cette limitation, nous introduisons une classe intermédiaire qui possède les deux propriétés requises. Pour la relation r p , ceci se traduit
par l’ajout de la classe intermédiaire AP (pour Action Protocole). Cette méthode fait
partie, avec deux autres des méthodes de conception préconisée par le W3C dans la
note 2 concernant les relations n-aires . les figures 5.3 et 5.4 montrent le fonctionnement
de cette classe intermédiaire.
Actions
Rôles
Protocoles
F IGURE 5.3 – Relation ternaire, impossible à représenter en OWL
Actions
hasAction
hasAP
Rôles
AP
hasProtocol
Protocoles
F IGURE 5.4 – Introduction de la classe AP, pour représenter la relation r p
2. http://www.w3.org/TR/swbp-n-aryRelations/
164
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
Classes
Les différentes classes de l’ontologie sont en partie celles définies lors de la formalisation ensembliste. La classe Agent représente un agent. La classe LeaderAgent
est une sous-classe de Agent et représente les agents ayant le rôle de leader dans la
communauté. La classe Role décrit les différents rôles possibles qui sont liés à des
actions (classe CommunityAction) et des protocoles (classe Role. La classe AP permet
de représenter la relation ternaire entre un rôle, une action et un protocole. Finalement
la classe Topic décrit le sujet ou thème d’une communauté. Le tableau suivant liste ces
classes.
Nom
Description
AP
Agent
Community
CommunityAction
LeaderAgent
LeaderRole
Protocol
Role
Topic
Thing
Thing
Thing
Thing
Agent
Roles
Thing
Thing
Thing
Action/Protocole pour relation ternaire
Agent
Communauté virtuelle de connaissances
Action, associée à une communauté
Agent de type leader
Rôle de leader
Protocole de communication
Roles dans la communauté
Sujet/Thème
Relations
Les relations de l’ontologie sont de même très proches des relations introduites précédemment. La relation hasTopic associe une communauté à un sujet. Une communauté
est reliée à ses membres par les relations inverses memberOf et hasMember. Les rôles
sont à la fois liées aux agents et aux communautés. La relation entre rôles et agents
est donnée par memberHasRole. Celle avec les communautés est décrite par hasRole
et son inverse roleOf. Les rôles sont aussi liés aux actions et aux protocoles qui leur
sont associés par l’intermédiaire des relations hasAP, hasAction et hasProtocol qui
représentent la relation ternaire.
Nom
Source
But Description
hasTopic
hasAP
hasAction
hasProtocol
hasMember
memberOf
hasRole
roleOf
memberHasRole
Community
Roles
AP
AP
Community
Agent
Community
Community
Agent
Topic
AP
CommunityAction
Protocols
Agent
Community
Role
Role
Roles
associe une communauté à un sujet
relation associant des actions et protocoles à u
associe un AP à une action
associe un AP à un protocole
défini les membres d’une communauté
inverse de hasMember
associe un rôle à une communauté
inverse de hasRole
associe un rôle à un agent
L’ontologie est donnée sous forme d’expression ainsi qu’au format N3 en annexe A.
Section 5.1. Conception de l’ontologie
5.1.2.1
165
Vue des agents
La vue d’une communauté dans la base de connaissances d’un agent se traduit
par les différentes instances des classes qu’il possède. Dans l’exemple précédent de la
communauté zéro, les agents Alice et Bob possèdent les différentes vues suivantes :
Alice – Topic : le sujet de la communauté
– Roles : membre, créateur
– Membres : Alice,Bob
– MemberHasRole : Alice → membre
Bob → createur
– Actions : envoyerMessage+,quitter
Bob –
–
–
–
Topic : le sujet de la communauté
Roles : membre, créateur
Membres : Alice,Bob,Chuck,Dave,
MemberHasRole : Bob → createur
Alice → membre
Chuck → membre
Dave → membre
– Actions : envoyerMessage+,envoyerMessage-,quitter
– Topic : le sujet de la communauté
Roles : membre, créateur
Membres : Alice,Bob,Chuck,Dave
MemberHasRole : Alice → membre
Bob → createur
– Actions : envoyerMessage+,quitter
Chuck
–
–
–
Dans le cas d’une communauté centralisée telle que la communauté-0, il apparaît que
seul le créateur de la communauté possède une vue complète de la communauté. Dans
le cas de communautés décentralisées, le créateur possède l’ensemble des protocoles de
communication, cependant il ne connaît pas l’intégralité des agents appartenant à la
communauté et possède de ce fait une vue partielle.
La notion de vue de la communauté est capitale puisqu’elle permet de maintenir la
connaissance d’une communauté tout au long de sa durée de vie.
5.1.2.2
Un exemple : Yahoo ! Groups
Afin d’illustrer l’utilisation de notre formalisation, nous allons décrire le fonctionnement du service de groupes de discussion fourni par Yahoo ! 3 . Les groupes Yahoo ! ont
été créé en 1998 et font partie des 5 applications les plus utilisées du réseau Yahoo !. Les
groupes Yahoo offrent les fonctionnalités suivantes aux utilisateurs :
3. http://fr.groups.yahoo.com
166
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
– Messages : Envoie par mail au groupe. Possibilité de suppression d’un message.
– Album Photo : Organisé en album
– Stockage de fichier
– Annuaire de liens : description de chaque lien, organisé en répertoire
– Sondages
– Base de données : possibilité de créer 10 tables
– Liste des membres
– Calendrier
– Promotion : boîte HTML pour la promotion du site
Les créateurs et managers du groupe peuvent quant à eux accéder aux fonctionnalités
supplémentaires suivantes :
– Invitation : pour inviter des membres
– Gestion des membres : validation et suppression de comptes
– Gestion des messages : validation et suppression
– Options : message d’accueil, . . .
Pour représenter les communautés virtuelles que constituent les Yahoo ! Groups
avec l’ontologie définie précédemment, nous allons tout d’abord identifier les différents
rôles au sein des communautés. Les rôles de membres, manager et créateur sont ceux
spécifiés par Yahoo ! Groups. A ces 3 rôles s’ajoutent celui de Yahoo ! en tant qu’hébergeur
des communautés et fournisseur d’un service de recherche de ces communautés. La
cardinalité du créateur est de 1, puisqu’il ne peut y avoir qu’un seul créateur, il en est
de même pour l’hébergeur. Les rôles de manager et utilisateur ne sont pas limités en
nombre.
Les fonctionnalités décrites précédemment permettent de définir les actions, tout
d’abord celles associées aux membres, manager et créateur (au nombre de 29) :
– Messages : {EnvoiMessage, SuppressionMessage}
– Album Photo : {CréerAlbum, SupprimerAlbum, AjouterPhoto, SupprimerPhoto}
– Stockage de fichier : {CréerRépertoire, SupprimerRépertoire, AjouterFichier, SupprimerFichier}
– Annuaire de liens : {CréerRépertoireAnnuaire, SupprimerRépertoireAnnuaire, AjouterLien, SupprimerLien, EditerLien}
– Sondages : {CréerSondage, SupprimerSondage, AjouterRéponse, FinVote}
– Base de données : {CréerTable, SupprimerTable, AjouterValeur, SupprimerValeur}
– Liste des membres : {AfficherListe, VoirProfil}
– Calendrier : {AjouterEvenement, SupprimerEvenement, EditerEvenement}
– Promotion : {CréerBoîte}
Les 6 actions réservées aux managers et au créateur :
– Invitation : {InviterMembre}
– Gestion des membres : {ValiderMembre, SupprimerMembre}
– Gestion des messages : {ValiderMessage, SupprimerMessage}
Section 5.1. Conception de l’ontologie
167
– Options : {DéfinirMessageAccueil}
Enfin l’action DissolutionCommunauté qui met un terme à la communauté est réservée au créateur et à l’hébergeur. L’ontologie des Yahoo ! Groups contient donc
29+6+1 = 35 actions. Les relations rôles actions sont au nombre de 101 : 29 ×
|{membre, createur, manager }| + 6 × |{manager, createur }| + 1 × |{createur, hebergeur }|.
L’ontologie possède deux fois plus de protocoles que d’action, chaque action ayant un
protocole pour l’émetteur et un pour le récepteur. A noter que l’hébergeur est ici le seul
récepteur des actions.
Cet exemple permet d’illustrer l’utilisation de l’ontologie que nous de définir dans
un cas concret d’un réseau de communautés existant et très largement utilisé.
5.1.2.3
Conclusion
La transformation de la formalisation ensembliste en une ontologie OWL est un
processus qui a nécessité peu de modifications par rapport à la version de départ. Les
formalismes étant relativement proches dans le concept, seule la relation ternaire a
du être transformée. Les spécificités de OWL, telles que les relations inverses et les
restrictions sur les relations permettent d’exprimer pleinement notre approche des
communautés dans une ontologie qui est manipulable par les agents.
Chaque agent possède une vue différente de la communauté puisque chaque agent
selon rôle ou le moment ou il a rejoint la communauté, ne possède pas les mêmes
informations. Nous avons illustré ce concept à l’aide de la communauté zéro. L’exemple
des Yahoo ! Groups a quant à lui illustré le fonctionnement de l’ontologie ainsi que son
expressivité pour décrire un cas réel.
5.1.3
Agents Sémantiques et ontologie des communautés virtuelles de connaissances
Dans la description formelle des communautés virtuelles de connaissances, un point
reste à éclaircir. En effet, nous n’avons donné aucune précision quant à la nature des
protocoles. Ces protocoles décrivent les mécanismes de communication entre les agents
ainsi que les actions à effectuer à la récéption d’un message. Ces protocoles sont donc
représentables comme des comportements pour les agents SAM, puisqu’ils contiennent
des actions à effectuer. Nous allons donc représenter ces protocoles sous formes de règles
interprétables par les agents SAM.
En utilisant les spécifications sur les agents SAM, nous pouvons définir plus précisément la notion de protocoles pour ces agents. Les messages échangés par les agents
utilisent la norme FIPA-ACL et les différents champs qui les composent sont définis
dans l’annexe C.
168
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
L’expression des protocoles sous forme de règles éxécutables, permet de décrire
totalement l’implémentation d’une communauté, et de transformer cette formalisation
en une formalisation « utilisable » en opposition avec une formalisation « descriptive ».
En reprenant l’exemple du protocole de la communauté-0 à la figure 5.2 nous pouvons maintenant décrire ce protocole sous forme de règles SWRL telles que définies au
chapitre précédent. La notation " ?x" signifie que x est utilisée comme variable (mode en notation Prolog) dans la règle.
Emetteur : Envoi un message au créateur de la communauté, avec une performative de
requète, le contenu du message est celui du message à transférer et le protocole du
message est "envoyerMessage" comme défini ci-dessus.
⇒ creator (?y) ∧ message(?x ) ∧ hasContent( x, content)
∧hasPer f ormative( x, ”request”) ∧ hasProtocol ( x, ”envoyerMessage”)
∧hasReceiver ( x, y) ∧ sendMessage( x )
Createur : Si un message respectant les spécifications de la règle est reçu alors le message
est transmis à tout les membres de la communauté et l’émetteur du message
devient alors membre de communauté.
receivedMessage(?x ) ∧ hasSender (?y)
∧hasPer f ormative( x, ”request”) ∧ hasProtocol ( x, ”envoyerMessage”)
⇒ member (y) ∧ member (?w)
∧hasReceiver ( x, w) ∧ sendMessage( x )
5.1.3.1
Conclusion
Les protocoles sont des séquences exécutables par l’agent, suivant les spécifications
que nous avons donné au chapitre précédent. Ils permettent une description sémantique complète de la communauté, qui ne se restreint pas à une simple spécification
de concepts, mais le fait qu’ils contiennent un code exécutable par l’agent rend cette
représentation sémantique des communautés opérationnelle et directement utilisable
par les agents. C’est un des apports principaux de notre approche. La représentation
sémantique des comportements des agents que nous avons défini au chapitre précédent
permet d’embarquer du code sémantique au sein d’une ontologie et par conséquent de
donner une implémentation de la communauté.
5.2 Application
Dans ce chapitre nous avons défini une formalisation, puis une ontologie des communautés de connaissance au format OWL. Au chapitre précédent, nous avons défini une
Section 5.2. Application
169
architecture d’agents sémantiques, qui permet, premièrement l’unification des connaissances et des comportement dans les formats du web sémantique et deuxièmement, la
représentation et l’échanges de connaissances empiriques et justifiables.
Le but de cette application est d’illuster au travers d’un exemple les atouts de notre
approche et de mettre en œuvre les différents concepts que nous avons défini. Nous
avons vu dans la section 5.1.1.2, un premier lien entre l’architecture des agents et l’ontologie des communautés de connaissance. Les protocoles qui définissent les intéractions
entre les agents au sein d’une communauté sont en fait des actions exécutables directement par les agents. Nous allons poursuivre dans cet exemple l’illustration des différents
concepts au travers d’un échange de connaissances entre agents.
Le but de l’exemple est d’illustrer la transmission d’une connaissance empirique
(l’utilisation de communautés de connaissances, décrite par l’ontologie en annexe A)
puis son utilisation pour permettre à un agent d’acquérir des connaissances.
5.2.1
Description du scénario
Ce scénario présente l’intégration d’agents SAM au sein d’un environnement hétérogène, dans lequel des agents de différentes natures évoluent et communiquent par
l’intermédiaire de messages respectant la norme FIPA-ACL. Cet exemple permet de
mettre en œuvre les concepts d’échanges de connaissances empiriques et de représentation ontologique des communautés de connaissance, tels que nous les avons énoncés
dans les chapitres précédents.
Dans ce scénario l’agent Julio, cherche à répondre à « La grande question sur la
vie, l’univers et le reste » 4 . Au début de ce scénario, l’agent Julio connaît seulement
l’agent Carmen. Il lui demande si elle connaît la réponse à la fameuse question. Carmen
ne connaît certes pas la réponse mais elle pense qu’il existe sûrement une communauté
de connaissances autour de ce thème. Elle indique alors à Julio le fonctionnement de
ces communautés de connaissances. Jusqu’ici Julio n’avait pas connaissance du concept
même de communautés de connaissances. Il apprend grâce à Carmen l’existence et le
fonctionnement de ces communautés. Au sein du système dans lequel Julio et Carmen
évoluent, d’autres agents (au nombre de 3 dans cet exemple) intéragissent au sein de
communautés virtuelles de connaissances. L’agent Julio, qui connaît désormais le fonctionnement des communautés de connaissances, va pouvoir rejoindre la communauté
sur le thème qui l’intéresse et finalement pouvoir obtenir la réponse tant désirée.
4. http://fr.wikipedia.org/wiki/La_grande_question_sur_la_vie,_l%27univers_
et_le_reste
170
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
Agents
Le scénario présente deux agents sémantiques, Julio et Carmen ainsi que trois agent
non sémantiques PagesJaunes, PenséesProfondes et Loonquawl. Les agents dits sémantiques
possède l’architecture que nous avons défini au chapitre précédent. Les agents non
sémantiques ne possède pas cette architecture.
Communautés
Les communautés de connaissances au sein du système possèdent les propriétés
suivantes :
– Les agents intéragissent au sein d’une communauté par le biais d’un tableau
noir qui est hébergé par l’agent créateur de la communauté. Les agents peuvent
lire et écrire des messages sur ce tableau, qui est structuré sous forme de pile.
Cette implémentation est présentée dans [Maret04b]. Nous représentons cette
implémentation comme une instance de notre modèle de commaunuté défini
précédemment.
– Le créateur de la communauté maintient la liste des agents membres de la communauté.
– Les communautés sont listées au sein d’un annuaire de communautés, aussi
appellé la « Communauté des communautés ». L’annuaire propose un service
d’enregistrement des communautés, chaque communauté est associée à un thème.
Du point de vue de la représentation des connaissances, le thème est une classe
OWL.
La communauté des commaunutés peut-être vue comme le point d’entrée d’un forum
distribué. Chaque discussion autour d’un thème est hébergée par un agent différent et le
mode de discussion est identique pour toutes les discussions.
Transmission d’une connaissance empirique
La connaissance transmise par Carmen est double, elle indique ce que sont les communautés de connaissances et comment y participer. Ce que sont ces communautés est
décrit par une instance des concepts de l’ontologie des VKC. Le comment est décrit par
une connaissance empirique, tel que spécifiée en section 4.4 :
– Une séquence d’action (voir figure 5.5) :
1. Charger l’ontologie décrivant les communautés.
2. Exécuter le protocole de recherche de communauté dans les pages jaunes
(communauté de communautés).
3. Si une communauté existe, exécuter le protocole pour rejoindre. Sinon créer
une communauté.
4. Procéder à l’échange de connaissances selon les protocoles de la communauté.
Section 5.2. Application
171
– La propriété qui doit être vraie à la fin de l’exécution : l’appartenance à une
communauté (si il n’existe pas de communauté, elle est alors créée par l’agent). Le
code SPARQL de cette propriété est donnée dans l’exemple 5.1
Exemple 5.1 Requète SPARQL : Appartenance de l’agent courant à une communauté
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX agentModel: <http://liris.cnrs.fr/julien.subercaze/
ontologies/agentModel.owl#>
PREFIX vkc: <http://liris.cnrs.fr/julien.subercaze/
ontologies/vkc.owl#>
PREFIX myc: <http://liris.cnrs.fr/julien.subercaze/
ontologies/testvkc.owl#>
SELECT count(?Community)
WHERE {
?Community rdf:type vkc:Community .
?Community vkc:hasmembers myc:ME .
}
Après utilisation de la connaissance transmise sur les communautés virtuelles, l’agent
qui utilise cette connaissance doit être en mesure de rejoindre une communauté. La
requète de l’exemple 5.1 renvoie le nombre de communautés auquel l’agent courant,
identifié par ME, appartient. Si ce nombre est supérieur à zéro, alors l’agent a pu utilisé la
connaissance qui lui a été transmise. Nous verrons par la suite qu’à l’issue de l’exécution
de la séquence d’actions, la propriété est vérifiée.
Déroulement
Au cours du scénario, l’agent Julio va tout d’abord intéragir avec Carmen qui lui
transmettra sa connaissance des communautés virtuelles de connaissances. Parallèlement Penséesprofondes crée une communauté autour du thème de la Grande question de
la vie, il déclare l’existence communauté aux PagesJaunes. Longhorn souhaite partager la
réponse qu’il possède avec d’autres agents connaît le fonctionnement des communautés
virtuelles de connaissances. Il recherche la communauté adéquate pour partager son
savoir. Il contacte alors les PagesJaunes puis rejoint la communauté initiée par Penséesprofondes et partage son message qui est inscrit sur le tableau de la communauté. Julio
a appris par Carmen, l’existence et le fonctionnement des communautés, il contacte
alors les Pagesjaunes, rejoint la communauté initiée par Penséesprofondes puis récupère la
réponse déposée par Longhorn. Les messages échangés entre les agents dans ce scénario
sont illustrés par la figure 5.6.
172
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
Evaluation interne
de l’agent
L’agent doit-il
rester dans la
communauté ?
Appartient à
une communauté
N’appartient pas
à une commaunuté
Obtenir la liste des
communautés sur
le thème
Changer
|Communautés|=0
|Communautés|>0
Choix de la
communauté
Rester
Création de la
communauté
Communauté
Communauté
Echange de
connaissances
F IGURE 5.5 – Exemple : utilisation des communautés virtuelles de connaissances. Séquence d’actions transmise par Carmen à Julio
5.2.2
Conclusion de l’exemple
Au travers des intéractions avec les différents agents de la communauté, l’agent
Julio a acquis un savoir-faire qui lui a permis d’obtenir la réponse à la grande question
fondamentale de la vie. Cet exemple a permi de montrer les possibilités ouvertes par
l’échange de connaissance empirique et de montrer une utilisation pratique de l’ontologie décrivant les communautés de connaissances. Deux caractéristiques principales ont
été mises en évidence : la transmission et l’utilisation de connaissance empirique et la
description de communautés virtuelles de connaissance à l’aide du formalisme défini
dans ce chapitre.
5.3 Conclusion
Nous avons présenté une formalisation ensembliste des VKC basées sur les travaux
précédents et sur des éléments identifiés lors de différentes implémentations. A la
Section 5.3. Conclusion
173
F IGURE 5.6 – Exemple : diagramme des messages échangés par les agents lors de
l’exécution du scénario sur la plate-forme JADE
lumière des travaux réalisés sur l’échange de connaissances qui peuvent être exécutées
par un agent, nous avons défini une formalisation des VKC qui permet de prendre
en compte cette notion afin d’opérationnaliser la connaissance des VKC. La notion
de protocole a été définie pour intégrer des connaissances exécutables au sein de la
formalisation. Nous avons ensuite décrit la communauté zéro, qui est la communauté la
plus simple que l’on puisse réaliser avec notre formalisation et qui permet d’illustrer
notre approche et l’utilisation de protocoles.
La transformation de la formalisation ensembliste en une ontologie OWL est un
processus qui a nécessité peu de modifications par rapport à la version de départ. Les
formalismes étant relativement proches dans le concept, seule la relation ternaire a
du être transformée. Les spécificités de OWL, telles que les relations inverses et les
restrictions sur les relations permettent d’exprimer pleinement notre approche des
communautés dans une ontologie qui est manipulable par les agents.
Chaque agent possède une vue différente de la communauté puisque chaque agent
selon rôle ou le moment ou il a rejoint la communauté, ne possède pas les mêmes
informations. Nous avons illustré ce concept à l’aide de la communauté zéro. L’exemple
des Yahoo ! Groups a quant à lui illustré le fonctionnement de l’ontologie ainsi que son
expressivité pour décrire un cas réel.
Nous avons ensuite présenté l’intégration des protocoles avec le concept d’agent
sémantique. Les protocoles sont des séquences exécutables par l’agent, suivant les spéci-
174
Chapitre 5. Communautés Virtuelles de Connaissances à base d’agents
fications que nous avons données au chapitre précédent. Ils permettent une description
sémantique complète de la communauté, qui ne se restreint pas à une simple spécification de concepts, mais le fait qu’ils contiennent un code exécutable par l’agent rend cette
représentation sémantique des communautés opérationnelle et directement utilisable
par les agents. C’est un des apports principaux de notre approche. La représentation
sémantique des comportements des agents que nous avons défini au chapitre précédent
permet d’embarquer du code sémantique au sein d’une ontologie et par conséquent de
donner une implémentation de la communauté.
Finalement nous avons présenté un exemple illustratif, détaillant les protocoles et les
intéractions entre les agents. Cet exemple a permis de montrer les possibilités ouvertes
par l’échange de connaissance empirique et de montrer une utilisation pratique de l’ontologie décrivant les communautés de connaissances. Deux caractéristiques principales
ont été mises en évidence : la transmission et l’utilisation de connaissance empirique et
la description de communautés virtuelles de connaissance à l’aide du formalisme défini
dans ce chapitre.
The brain is a computing machine connected with a spirit.
Kurt Gödel, in A logical journey : from Gödel to philosophy
6
Implémentation
176
Chapitre 6. Implémentation
Plan du chapitre
6.1
Choix techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
6.2
Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6.3
Exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.3.1
Initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.3.2
Comportements . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.4
Actions . . . . . . . . . . . . . .
6.4.1
Gestion des ontologies .
6.4.2
Entrées/Sorties . . . . .
6.4.3
Connaissance empirique
6.4.4
Communications . . . .
6.4.5
Appel des actions . . . .
6.5
Base de connaissances . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.5.1
Base minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.6
Conclusion et discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.6.1
Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
183
183
185
186
186
187
Section 6.1. Choix techniques
177
réalisation d’un prototype est une étape importante dans la validation de notre
approche. Nous présentons dans ce chapitre les différents éléments de l’implémentation de notre protoype. Dans une première partie nous détaillons et motivons les choix
techniques. Ensuite nous entrons dans le cœur même de l’application en décrivant la
structure de classes, nous énumérons et décrivons de manière systèmatique les classes
et méthodes. Nous présentons ensuite les différentes étapes d’exécution d’un agent, son
initialisation et le fonctionnement de l’interpréteur SAM. Cet interpréteur fait appel
aux actions de bas niveau qui complètent les actions SWRL. Nous détaillons en section
6.4 les actions de bas niveaux ainsi que le mécanisme d’appel de ces actions. Ensuite
nous présentons la structure de la base de connaissances qui permet d’exécuter des
comportements sémantiques. Nous listons les différents éléments spécifiés au cours des
sections précédentes.
L
A
Les difficultés rencontrées lors du développement du prototype font l’objet de la
section 6.6. Nous discutons au sein de cette même section des limitations techniques
du prototype et des moyens, le cas échéant de les dépasser. Nous terminons par les
perspectives offertes par le développement de ce prototype et présentons les futurs axes
de développement.
6.1 Choix techniques
Les contraintes de réalisation du prototype étaient extrêmement faibles. Seul le
support du langage FIPA-ACL pour l’interopérabilité avec l’ancien prototype était
requis. Nos critères de choix se sont donc avant tout portés sur la qualité et la simplicité
des librairies.
Dans la continuité du prototype développé dans le cadre des communautés de
connaissance nous avons choisi la plate-forme JADE pour implémenter notre prototype.
Les limitations montrées dans la section 2.1 étaient dues à l’implémentation des agents
au sein de la plate-forme JADE mais non à la plate-forme elle-même. L’expérience de la
plate-forme ainsi que la perspective de faire cohabiter simplement les agents des VKC
avec les agents sémantiques ont motivé ce choix.
Le choix du raisonneur s’est fait entre les différents raisonneurs proposant un support SWRL : RacerPro, Bossam, Pellet, KAON2 et Fact++. Bossam et RacerPro n’étant
plus maintenu depuis 2007, ils ont été rapidement écarté. L’utilisation de JADE nous
imposant une API Java, Fact++ (développé en C++) a été écarté. KAON2 et Pellet (tous
deux en JAVA et offrant un support DL-Safe) possèdent deux approches différentes. le
premier utilise un système déductif de type "Forward Chaining" alors que le second
utilise une approche par tableau calcul. Le but de notre prototype étant de fournir une
preuve de concept et non de manipuler de grandes ontologies, la méthode de raisonnement importait peu. Le support de SWRL (des fonctions built-ins) était au départ du
178
Chapitre 6. Implémentation
développement très partiel pour les deux raisonneurs. Le critère de sélection s’est donc
fait sur la qualité du développement du projet, les exemples fournis, l’activité du forum
de support et c’est Pellet qui a finalement remporté nos suffrages.
Pour la base de connaissances, nous avons utilisé la librairie AgentOWL de Laclavik
[Laclavik06b] qui propose un support OWL (en se basant sur Jena) pour les agents
JADE. Afin d’intégrer un support pour OWL et SWRL dans la base de connaissances des
agents, nous avons étendu la librairie AgentOWL pour permettre d’intégrer le support
du raisonneur Pellet au modèle Jena. L’échange de règles SWRL au travers d’une API
Java a nécessité l’utilisation de l’API Protege, Jena ne supportant pas l’ajout de règles
au modèle. En utilisant les compatibilités entre les deux modèles, nous maintenons une
représentation homogène. Une ontologie du projet Nuin [Dickinson03] a été intégrée
afin de représenter les messages FIPA-ACL au format OWL. L’ontologie OWLList de
Drummond [Drummond06] nous permet de représenter des séquences en OWL.
Les diagrammes de séquence et de classes ont été réalisés à l’aide des plugins
MaintainJ 1 et ObjectAID 2 pour Eclipse.
6.2 Classes
La classe SWRLAgent est la classe centrale de notre implémentation du modèle SAM.
Elle étend la classe abstraite SemanticAgent qui étend elle-même la classe Agent de
JADE. Cette classe SemanticAgent possède un attribut mem de type KnowledgeBase
qui représente la base de connaissances.
La seule implémentation de KnowledgeBase est la classe SWRLMemory qui permet de gérer la base de connaissances OWL et SWRL de l’agent. Cette classe est
adaptée de OWLMemory de la librairie AgentOWL de Michal Laclavik [Laclavik06a].
Le champ config définit les paramètres d’initialisation de la base de connaissances
(URL des fichiers de connaissances et de comportement). Le champ model de type
com.hp.hpl.jena.ontology.OntModel représente la vue JAVA de la base de
connaissances de l’agent. Le choix de Jena est du au choix du raisonneur Pellet. En
effet Pellet a été conçu pour être utilisé comme un raisonneur associé à un modèle Jena.
Pour cela nous initialisons le modèle Jena avec le raisonneur Pellet en utilisant la factory
ModelFactory :
model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);
Le modèle Jena est stocké en mémoire, il est cependant parfois nécessaire d’utiliser
un modèle de la librairie Protégé API pour certaines actions non disponibles dans
l’API Jena. Les deux modèles étant interchangeables, la librairie ProtegeOWL permet
1. http://www.maintainj.com
2. http://www.objectaid.com
+mem
SWRLMemory(String,String)
getBase(): String
initModel(): OntModel
performInference(String,boolean): void
memory2swrl(): void
setModel(OntModel): void
getModel(): OntModel
config: Config
model: OntModel
agent.core.memory
SWRLMemory
<<Java Class>>
setModel(OntModel): void
getModel(): OntModel
config: Config
model: OntModel
agent.core.memory
KnowledgeBase
<<Java Interface>>
#myAgent
jade.core.behaviours
ThreadedBehaviourFactory
<<Java Class>>
-tbf SWRLAgent()
chainRules(): void
extractParameter(String,HashMap<String,String>): String
setup(): void
executeActions(Individual): void
executeAction(String,HashMap<String,String>): void
retrieveParameters(Individual): HashMap<String,String>
noChildBehaviour(): boolean
stackSize(): int
popBehaviour(): void
num: int
agent.core.swrlagent
SWRLAgent
<<Java Class>>
agent.core.onto
SemanticAgent
<<Java Class>>
jade.core
Agent
<<Java Class>>
Behaviour
<<Java Class>>
MessageBehaviour(Agent,long)
onTick(): void
agent.core.swrlagent
MessageBehaviour
<<Java Class>>
action(): void
done(): boolean
done: boolean
agent.core.swrlagent
SemanticBehaviour
<<Java Class>>
jade.core.behaviours
SimpleBehaviour
<<Java Class>>
jade.core.behaviours
jade.core.behaviours
TickerBehaviour
<<Java Class>>
Section 6.2. Classes
179
F IGURE 6.1 – Diagramme de classe d’un agent
180
Chapitre 6. Implémentation
d’importer un modèle Jena et d’exporter un modèle Protégé au format Jena. L’appel
au raisonneur Pellet étant requis par l’interpréteur qui est le composant principal de
l’agent, le modèle Jena est la représentation permanente de la base de connaissances. Les
différentes méthodes de la classe sont décrites ci-dessous :
getBase : URL du fichier contenant la base de connaissances.
initModel : Initialisation du modèle en fonction de la configuration config.
performInference : Héritée de AgentOWL, réalise une inférence. Le fichier contenant la
règle est passé en paramètre, ainsi qu’un booléen indiquant si l’on souhaite garder
la trace des propositions inférées.
memory2swrl : sauvegarde la base de connaissances sous la forme d’un fichier. Le nom
et chemin du fichier sont définis dans config.
setModel : accesseur permettant de remplacer le modèle courant par celui passé en
paramètre.
getModel : accesseur permettant de consulter le modèle présent.
Pour gérer l’arrivée des messages et leur mise en file au sein de la base de connaissances, un processus dédié y est affecté en plus de celui dédié au comportement classique
de l’agent. Au niveau de l’architecture JADE il est possible d’affecter plusieurs comportements à un agent à l’aide de la classe ThreadedBehaviourFactory. Un agent
SWRLagent possède un objet tbt de type ThreadedBehaviourFactory pour gérer
ces comportements. Les comportements sont ensuite executés de manière parallèle. Les
deux comportements utilisés sont SemanticBehaviour en charge du comportement
principal de l’agent et MessageBehaviour en charge de la gestion des messages.
MessageBehaviour est un comportement de type TickerBehaviour. Ce type
de comportement est exécuté de manière périodique par l’invocation de la méthode
onTick(). Dans l’architecture JADE, un agent possède une queue de messages accessible par différentes méthodes. Le rôle de ce comportement est de transférer les messages
reçus de la couche JADE à la couche sémantique, en convertissant les messages ACL
reçus en instance OWL de la classe message.
Le comportement SemanticBehaviour est un comportement de type
jade.core.behaviours.SimpleBehaviour, c’est-à-dire un comportement simple
qui est appellé une fois. Ce comportement appelle l’interpréteur du langage SAM situé
dans la méthode chainRules de la classe SWRLAgent.
La classe SWRLAgent contient les méthodes implémentant l’interpréteur du langage
SAM. En tant qu’agent de type jade.core.agent.Agent, la méthode setup est invoquée lors de l’initialisation de l’agent. Cette méthode initialise la base de connaissances
en créant l’objet mem de type SWRLMemory. La méthode principale est chainRules qui
enchaîne les règles selon l’algorithme présenté en figure 1. Pour gérer la pile d’appel
Section 6.3. Exécution
181
des comportements, la méthode chainRules fait appel aux méthodes stackSize,
noChildBehaviour et popBehaviour. La méthode noChildBehaviour renvoie
vraie si le comportement courant est le seul comportement executé, c’est-à-dire qu’il
n’est pas le fils d’un comportement qui l’a invoqué. La méthode stackSize renvoie la
taille de la pile d’appel, et zéro quand noChildBehaviour renvoie vraie. Le rôle de
la méthode popBehaviour est de retirer le comportement courant de la pile d’appel,
l’ancien comportement père se retrouve alors comportement courant. Dans le cas ou il
n’y a pas de comportement père, l’agent termine.
La méthode chainRules fait appel au raisonneur Pellet qui exécute les fonctions SWRL de haut niveau, puis cette méthode extrait du conséquent des règles la
séquence des actions à exécuter ainsi que leurs paramètres respectifs. La méthode
executeActions exécute la séquence d’actions associée à une règle. Pour cela elle
fait appel à la méthode retrieveParameters pour extraire les paramètres de l’action
courante à exécuter, puis invoque la méthode executeAction qui appelle l’action à
exécuter. Nous détaillons les actions en section 6.4. La figure 6.1 présente les différentes
classes décrites.
6.3 Exécution
L’exécution d’un agent sémantique se fait en deux temps, tout d’abord l’initialisation
de l’agent qui comprend le chargement de la base de connaissances et le lancement
de l’interpréteur. La deuxième phase, le régime permanent est celui de l’exécution du
comportement sémantique de l’agent par l’interpréteur.
6.3.1
Initialisation
Lors du démarrage de l’agent SWRLAgent, comme toute classe héritant de
jade.core.agent.Agent, la méthode setup est invoquée. Cette méthode initialise la base de connaissances SWRLMemory qui fait appel à la configuration
chargée par la classe Config. Les deux comportements SemanticBehaviour et
MessageBehaviour sont appellés l’un après l’autre, chacun dans un processus séparé,
géré par la classe ThreadedBehaviourFactory. Le diagramme de séquence en figure
6.2 décrit l’initialisation d’un agent.
6.3.2
Comportements
Les deux processus (comportement au sens de JADE) SemanticBehaviour et
MesssageBehaviour nécessitent la synchronisation des ressources partagées. Le processus de l’interpréteur SAM peut accéder potentiellement à toute la base de connais-
182
Chapitre 6. Implémentation
F IGURE 6.2 – Diagramme de séquence de l’initialisation d’un agent
sances . Le processus de gestion des messages n’accède quant à lui qu’à la file de
messages. Il était donc nécessaire de synchroniser l’accés à cette file, ce qui est réalisé de
manière classique par un mutex (primitive d’exclusion mutuelle).
L’exécution du comportement de gestion des messages MessageBehaviour se
fait de manière régulière (temps paramétrable, fixé par défaut à 250ms). La méthode
onTick qui est invoqué par la factory des comportements regarde si la file des messsages de l’agent est non vide en appellant la méthode getCurQueueSize de la classe
jade.core.agent.Agent. Dans le cas ou un ou plusieurs messages sont présents
dans cette liste, les messages sont convertis dans au format OWL puis intégré à la liste
des messages en attente de la base de connaissances. Nous avons réutilisé l’ontologie
FIPA-ACL définie par Ian Dickinson pour le framework Nuin 3 [Dickinson03]. La structure de séquence des messages au sein de la base de connaissances n’étant pas définie
en OWL (à la différence des listes RDF), nous avons fait appel à l’ontologie OWLList de
Drummond [Drummond06]. Cette même ontologie est aussi utilisée pour représenter
les séquences d’actions. Dans le cas ou un message est présent dans la liste de l’agent
(au niveau agent JADE), l’agent essaye d’acquérir le mutex de la file des messages. Une
fois acquis, l’agent ajoute un message en fin de liste.
Le comportement SemanticBehaviour exécute l’interpréteur SAM par l’invocation de la méthode chainRules. Cette méthode enchaîne les règles SAM en partant
3. http://www.nuin.org/ontology/fipa-acl.owl
Section 6.4. Actions
183
de l’état BEGIN. Un comportement SAM termine si l’état courant est END 4 . Un comportment pouvant invoquer un autre comportement, une pile des appels est maintenue
au niveau de la base des connaissances. Une variable currentBehaviour pointe vers
le comportement courant. La propriété calledBy permet de lier les comportements
au sein de la pile d’appel. Lorsque que l’interpréteur détecte END comme état courant,
il évalue la longueur de la pile d’appel, puis le cas échéant dépile le comportement
terminé (à l’aide de la méthode popBehaviour) puis exécute le comportement père.
Pour maintenir le contexte des comportements empilés, chacun possède une valeur
currentState qui indique la valeur de l’état courant au moment ou un comportement
fils a été invoqué. Toutes les autres variables sont considérées comme globale à la base
de connaissances. L’exécution d’une règle de transition est effectuée dans un premier
temps par le raisonneur Pellet qui exécute les actions de haut niveau (SWRL built-ins,
voir fig). L’interpréteur SAM détecte ensuite le changement de la valeur NextState
dans la base de connaissances, il charge alors la liste des actions qui se situe au niveau
de la variable AL (pour Action List). Cette liste est une OWLsList, tout comme la liste
des messages reçus. L’exécution de la séquence d’actions se fait en exécutant une à une
les actions par l’invocation de la méthode executeAction. Nous décrivons dans la
section suivante le mécanisme d’appel de ces actions et nous en donnons la liste. La
figure 6.3 présente le diagramme d’activité des agents SAM (sans le comportement de
gestion des messages).
6.4 Actions
Les actions de bas niveau sont invoquées par l’interpréteur dans l’ordre spécifié par
la liste. Les actions qui doivent être exécutées sont liées par la propriété hasNext, les
paramètres sont liées à l’action (qui est une instance de l’action qu’elle représente) par la
propriété hasParameterName qui définit le nom du paramètre. Ce nom prend ensuite
une valeur avec owl:hasValue.
Toutes les actions de bas niveau sont des instances de la classe agent.core.actions.Action.
Ces actions implémentées sont au nombre de 19. Elles sont séparées en 4 catégories :
gestion des ontologies, entrées/sorties, connaissance empirique et communications.
Nous détaillons ces actions dans les sections suivantes.
6.4.1
Gestion des ontologies
Les actions de manipulation des ontologies : création, modification et suppression
pour chacun des types de ressources doivent être implémentées dans les actions de
4. Les éléments END, BEGIN et OUTPUT sont des éléments de la base de connaissances OWL, ils sont
définis en section 6.5
184
Chapitre 6. Implémentation
Diagramme d’activité des agents
Rouge : appel au raisonneur Pellet
Vert : appel aux fonctions de bas niveau
Initialisation de l’agent :
démarrage de l’agent JADE
Chargement de la
base des connaissances
Chargement du comportement
Démarrage
Etatcourant= début
Exécution première règle:
1 Lecture de l’état suivant
2 Exécution des fonctions sémantiques
Etatsuivant = END
Mise à jour
Étatcourant=etatsuivant
Etatsuivant <> END
Pas d’action
Lecture de la taille de la pile
des comportements
Taille<>0
Lecture de la
liste des actions
Taille = 0
Lecture de
l’action à exécuter
Action présente
Dépiler
Passage à l’action suivante
Récupération des paramètres
Exécution de l’action
F IGURE 6.3 – Diagramme d’activité UML des agents
bas niveaux. Nous avons montré en section 4.2.3 que certains de ces actions peuvent
être effectuées par le raisonneur. Cependant l’ordre d’exécution des actions est fixé. Le
raisonneur étant appellé en premier, les actions de haut niveau seront effectuées avant
celles de bas niveau. Il se peut que l’on souhaite effectuer certaines actions (comme par
exemple affecter une propriété ou une valeur à un individu) après l’exécution des actions
de haut niveau. Ces fonctions existent donc dans les actions de haut et bas niveaux. Les
Section 6.4. Actions
185
autres fonctions de gestion des ontologies sont définies exclusivement à bas niveau. Le
tableau suivant liste toutes les actions de gestion des ontologies.
Nom
CreateIndivudal
ModifyIndividual
DeleteIndividual
CreateClass
ModifyClass
DeleteIndividual
CreateProperty
ModifyProperty
DeleteProperty
Paramètres
Description
class : URI de la classe
name : nom de l’individu
oldName : ancien nom
newName : nouveau nom
name : nom de l’individu
Création d’un individu
name : nom de la classe
oldName : ancien nom
newName : nouveau nom
nom de la classe : nom de la classe
Création d’une classe
Modification d’une classe
name : nom de la propriété
param1 : paramètre 1
param2 : paramètre 2
type : type de la modification
name : nom de l’individu
Création d’une propriété
Modification de la propriété
Modification d’un individu
Suppression d’un invididu
Suppression d’une classe
Suppression d’un invididu
La méthode modifyProperty doit permettre d’effectuer les opération de modification suivante sur une propriété :
– Changement du nom
– Changement de la classe/Individu de départ
– Changement de la valeur d’arrivée (classe/individu/littéral)
– Révocation de l’application de la propriété sur une classe/individu
Ces méthodes de gestion des ontologies ont été partiellement implémentées, au fur
et à mesure des besoins pour la mise en œuvre des scénarios. Elles devront à terme être
totalement implémentées.
6.4.2
Entrées/Sorties
Deux actions qui n’étaient pas spécifiés initialement ont été rajoutées. La première,
DisplayValue permet d’afficher une valeur sur la sortie standard. Si la ressource est
une classe, son nom est affiché. Si la ressource est un individu, on afficher son nom et
dans le cas ou il possède une valeur (hasValue), on affiche cette valeur. La seconde action,
SaveMemoy a pour but de sauvegarder l’état de la base de connaissances dans un fichier.
Le nom de ce fichier est spécifié dans la configuration de l’agent à son lancement.
Nom
Paramètres
Description
DisplayValue
SaveMemory
uri : URI de la ressource
Aucun
Affiche une valeur à l’écran
Sauvegarde la base de connaissances dans un fichier
186
6.4.3
Chapitre 6. Implémentation
Connaissance empirique
Pour valider les connaissances empiriques ou justifiables, nous avons défini deux
actions qui sont CheckConsistency et RunQuery. La première permet de vérifier la
consistance de la base de connaissances. La méthode de vérification de la consistance
fait appel à validate de com.hp.hpl.jena.rdf.model.InfMOdel. Le résultat du
rapport de validation (méthode isValid()) est placée dans OUTPUT. Cette action est
utilisé pour choisir d’intégrer ou non de nouvelles connaissances dans la base, si elles
sont consistantes avec la base. La seconde action permet d’exécuter une requète SPARQL
sur la base de connaissances, le résultat étant aussi stocké dans OUTPUT. Elle est utilisée
pour valider les comportements empiriques selon la méthode définie en section 4.4.
L’action LoadBehaviour permet de charger un comportement et de l’exécuter. C’est la
fonction qui est appellée lorsqu’un comportement fait appel à un autre comportement.
Le comportement courant est alors placé dans la pile d’appel. Son contexte qui est
constitué de son état courant est sauvegardé. Le comportement appellé est alors exécuté.
Nom
RunQuery
LoadBehaviour
CheckConsistency
6.4.4
Paramètres
Description
query : requète
Exécute une requète SPARQL.
Le résultat est stocké dans OUTPUT
Chargement d’un comportement
Vérifie la consistance
de la base de connaissances
avec les ressources (optionnel)
uri : uri
ressources : URI
(Optionnel)
Communications
Les agents communiquent entre eux en utilisant le support de la plate-forme JADE.
Nous avons pour cela implémenter la méthode SendMessage, qui prend en paramètre
un individu de la classe OWL représentant les messages FIPA-ACL ainsi que son destinataire (ce paramètre s’est révélé être superflu puisque contenu dans l’ontologie du
message, mais a été conservé par souci de rétrocompatibilité). Les messages sont ajoutés
par le comportement messageBehaviour dans une file de message. Le système de
pages jaunes de JADE (Directory Finder) sera noté ici DF. Deux actions permettent
d’intéragir avec le DF, RegisterDF et AskDF. La première action permet d’enregistrer
l’agent courant auprès du système de pages jaunes. La seconde permet quant à elle de
rechercher des services dans le DF.
Section 6.4. Actions
187
Nom
Paramètres
Description
RegisterDF
AsKDF
Aucun
ServiceName : nom du service
dest : agent récepteur
content : URI/nom du fichier
dest : agent récepteur
content : URI du message
sender : expéditeur
Enregistre l’agent au DF
Requète d’existence de service
Envoi d’un comportement
à un agent
Envoi d’un message
SendBehaviour
SendBMessage
ReceiveMessage
Réception avec attente active
La méthode ReceiveMessage est utilisée dans le cas ou l’on souhaite attendre
explicitement l’arrivée d’un message d’un expéditeur précis avant de continuer le
traitement.
La figure 6.4 présente 13 de ces actions, l’inteface Action étant au centre, les classes
étant groupé par catégories sur chaque coté. Les 6 actions non représentées sont celles
de création, modification et suppression des classes et propriétés.
6.4.5
Appel des actions
Lorsque l’interpréteur récupère les actions à exécuter depuis la base de connaissances, il en connait le nom et les paramètres sous forme de chaînes de caractères.
Ces actions doivent ensuite être exécutées par l’interpréteur. L’exécution de ces actions par l’interpréteur se fait par les mécanismes de réflection de JAVA. Les actions
prennent deux paramètres ; l’agent qui les exécute ainsi que l’ensemble des paramètres
de l’action qui est représenté par une Hashmap. L’appel d’une action se fait par l’intermédiaire de la méthode executeAction de la classe SWRLAgent. Le nom de l’action est
passé à la méthode ainsi que les paramètres (actionName et parameters). Une classe
JAVA de type Class typée sur l’interface Action est instanciée à l’aide de la méthode
Class.forName du package java.lang.reflect. Une instance de l’action est ensuite créée par un appel à la méthode newInstance sur la classe précédemment créée.
L’action est ensuite exécutée en appellant sa méthode run avec en argument l’agent courant et les paramètres de la fonction. Le code JAVA de cette méthode executeAction
est donné dans le listing 6.1.
Listing 6.1– executeAction de la classe SWRLAgent
1
2
p r o t e c t e d synchronized void e x e c u t e A c t i o n ( S t r i n g actionName ,
HashMap< S t r i n g , S t r i n g > parameters ) {
3
4
5
6
7
Class <Action > c l a s s e ;
try {
c l a s s e = ( Class <Action >) C l a s s . forName ( " agent . c o r e . a c t i o n s . " +
actionName + " Action " ) ;
Action a c t = ( Action ) c l a s s e . newInstance ( ) ;
188
Chapitre 6. Implémentation
<<Java Class>>
<<Java Class>>
DisplayValueAction
SaveMemoryAction
agent.core.actions
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
run(SWRLAgent,HashMap<String,String>): void
<<Java Class>>
AskDFAction
agent.core.actions
<<Java Class>>
run(SWRLAgent,HashMap<String,String>): void
CreateIndividualAction
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
<<Java Class>>
RegisterDFAction
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
<<Java Class>>
ModifyIndividualAction
<<Java Class>>
SendBehaviourAction
agent.core.actions
agent.core.actions
<<Java Interface>>
Action
run(SWRLAgent,HashMap<String,String>): void
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
run(SWRLAgent,HashMap<String,String>): void
<<Java Class>>
DeleteIndividualAction
<<Java Class>>
agent.core.actions
SendMessageAction
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
run(SWRLAgent,HashMap<String,String>): void
<<Java Class>>
ReceiveMessageAction
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
<<Java Class>>
RunQueryAction
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
<<Java Class>>
LoadBehaviourAction
<<Java Class>>
CheckConsistencyAction
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
agent.core.actions
run(SWRLAgent,HashMap<String,String>): void
F IGURE 6.4 – Diagramme de classes des actions
Section 6.5. Base de connaissances
a c t . run ( t h i s , parameters ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
8
9
10
11
12
189
}
6.5 Base de connaissances
La base de connaissances avant l’exécution d’un agent se trouve dans deux fichiers,
cette structure est héritée de la librairie AgentOWL qui différenciait les concepts et
instances dans deux fichiers séparés. Dans notre approche le comportement initial et
le reste de la base de connaissances sont dans deux fichiers distincts. Les fichiers sont
accessibles soit par URI soit par leur emplacement local.
6.5.1
Base minimale
Dans les sections précédentes nous avons spécifié ou évoqué différents éléments de
la base de connaissances. Nous listons ici les différentes classes, valeurs et propriétés
requises pour le fonctionnement de l’agent. Ces éléments constituent l’ontologie du
modèle de l’agent. Cette ontologie doit être importée dans la base de connaissances. Ce
sont les valeurs de ces ressources qui seront accédées et modifiées par l’interpréteur
pour exécuter le comportement des agents.
Classes
Le modèle des agents SAM définit six classes (au sens OWL), qui sont les classes
représentant les agents, les états, les valeurs des états, les actions, les comportements,
les actions éxecutables. La classe agent décrit les agents évoluant dans la société. Dans
l’implémentation l’agent possède une valeur (owl :hasValue) qui est son adresse dans
la plate-forme JADE. Les états sont décrits par la classe State, la valeur de l’état est
une chaîne de caractère. Deux valeurs sont spéciales, BEGIN et END qui spécifient le
commencement et la fin d’un comportement.
La classe Action décrit les actions de bas niveaux exécutables par l’interpréteur.
La classe ExecAction est une classe similaire à Action, les valeurs des individus
de ExecAction sont des individus de Action. Cette "copie" s’avère nécessaire pour
pouvoir exécuter dans la même séquence d’action deux fois la même action avec des
paramètres différents 5 . La classe Behaviour représente les comportements des agents.
5. Prenons l’exemple d’envoi du même message à deux destinataires différents dans la même séquence
d’actions. Il est nécessaire d’avoir deux instances de SendMessage possédant des paramètres différents.
Pour cela nous avons introduit la classe ExecAction. Dans ce cas précis, les deux instances de ExecAtion
ont toutes deux la même valeur : SendMessage mais possèdent des paramètres différents.
190
Chapitre 6. Implémentation
Nom
Agent
State
Action
Behaviour
ExecAction
restriction
Description
Prend une valeur de type String
Prend une valeur de type String
Même valeur que Action
Représente un agent
Etat au sens des EFSM
Action de bas niveau
Comportement
Action de bas niveau
A ces classes que nous avons définies, s’ajoutent les classes importées des ontologies
OWLList et FIPA-ACL (ontologie représentant les messages FIPA ACL).
Individus
Deux individus de la classe State sont nécessaires pour le fonctionnement. Ce
sont les états CurrentState et NextState. Le rôle de ces états est de donner la
valeur de l’état courant et celle de l’état suivant dans le cas ou une règle est active.
Ces individus sont lus par l’interpréteur JAVA (dans la méthode chainRules) pour
déterminer l’exécution d’une transition. Les 19 actions décrites dans la partie précédentes
sont des individus de la classe Action. Il existe un comportement particulier qui est le
comportement courant de l’agent, représenté par CurrentBehaviour et qui prend ses
valeurs dans les individus de classe comportement. De la même manière il existe une
liste d’actions particulières : la liste des actions qui doivent être exécutées. Cette liste AL
(pour ActionList) est un individu de la classe OWLList. Similairement, pour représenter
la file de réception des messages, on utilise ML (pour MessageList) lui aussi individu de
la classe OWLList.
Nom
Classe
Description
CurrentState
NextState
{SendMessage,. . . }
CurrentBehaviour
AL
ML
OUTPUT
State
State
Actions
Behaviour
OWLList
OWLList
Object
L’ensemble des 19 actions
Comportement courant
Liste des actions à exécuter
Liste des message
Résultat du traitement
Propriétés
Les propriétés nécessaires au fonctionnement d’un agent sont au nombre de trois.
La propriété calledBy, de cardinalité 1, sert à représenter l’appel d’un comportement
à un autre. La propriété behaviourLocation permet de donner l’emplacement d’un
comportement, soit par son chemin sur le disque, soit par URI. La dernière propriété
hasParameterName indique pour une action à exécuter le nom d’un paramètre, qui
doit nécessairement pointer sur un individu, puisque ce dernier doit avoir pour valeur
(hasValue) un littéral.
Section 6.6. Conclusion et discussion
191
Nom
Départ
Destination
Description
calledBy
behaviourLocation
hasParameterName
Behaviour
Behaviour
ExecAction
Behaviour
String et URIreference
Individu
Pile des appels
Emplacement d’un comportement
Nom du paramètre
6.6 Conclusion et discussion
La mise en œuvre du prototype a permis de valider l’approche théorique par une
réalisation simple. Les limitations sur les capacités d’échanges des agents (restriction au
RDF) mises en évidence dans la section 2.5.1 ont été dépassées. La spécification d’un
nombre fini d’actions de bas niveaux a permis de résoudre le problème de la dualité des
langages que présentaient les autres approches vues dans l’état de l’art. L’unification de
la base de connaissances autour des formats OWL et SWRL et la programmation d’agents
à l’aide de ces langages permet l’échange de tout élément de la base de connaissances de
l’agent : comportement, communication, sécurité, cognition. Le langage de bas niveau,
ici le JAVA est limité à la réalisation de l’interpréteur, le contenu (connaissance et
comportement) d’un agent est en OWL-DL et SWRL exclusivement. L’unification de
la base de connaissances a été réalisé par l’unification des langages représentant les
différents composants initiaux, en alignant ces langages sur ceux de plus haut niveau, en
l’occurrence OWL-DL et SWRL. En ce sens les objectifs concernant l’architecture d’agent
ont été atteints. Les connaissances justifiables et empiriques coexistent au sein de la
base de la connaissance des agents et sont échangeables, les spécifications des chapitres
précédents ont ainsi été mises en œuvre.
Cette réalisation présente certaines limitations techniques. Les premières limitations
lors du développement du prototype sont venus du raisonneur dont le support des
fonction SWRL étaient alors (fin 2008) très limité. A l’époque certaines fonctions de
comparaison avaient été implémenté en bas niveau. Le choix d’utilisation de Pellet s’est
avéré payant puisque au fil des mois les fonctions SWRL ont une à une été intégrées à
Pellet (excepté quelques fonctions sur les dates et heures).
La gestion dynamique des messages au travers d’un second processus (MessageBehaviour)
s’est imposé au cours des tests et n’avait pas été prévu lors de la phase de spécification.
En effet le seul support de la réception par attente active limitait considérablement les
possibilités du prototype. La synchronisation de la file des messages a été réalisé de
manière simple par l’utilisation d’un mutex sur l’ensemble de la file. Il est possible de
réaliser un mécanisme de synchronisation plus efficace mais nettement plus fastidieux à
mettre en œuvre en implémentant un mutex par message et en gérant la conservation de
la structure de liste (en cas de suppression d’un message par exemple). Les performances
à un mutex étant largement satisfaisante pour les besoins de nos travaux, ce système
pourra faire l’objet d’une implémentation dans une nouvelle version du prototype.
192
Chapitre 6. Implémentation
Une seconde limitation concerne la gestion des variables associées à un prototype.
Pour des raisons de simplicité, toutes les variables de l’interpréteur sont globales, seul
l’état courant lors de l’appel à un autre comportement est sauvegardé. Il faudrait alors
étendre le modèle de l’agent pour associer un contexte d’exécution plus complet pour
chaque comportement.
Concernant la validation de code, les propriétés des OWLList en réduisent considérablement les possibilités. En effet, les implémentations de OWL-DL sont ici un
facteur limitant qui ne permet pas d’exclure les cycles des OWLList [Drummond06].
Une séquence d’action peut-être cyclique et donc ne jamais terminer.
Certaines fonctions n’ont pas été (ou partiellement) implémentées. En particulier
certaines fonctions de la gestion d’ontologies qui n’étaient pas nécessaires au développement de scénarios et de tests ont été écarté du développement pour des questions
de temps. Ce prototype se veut avant tout une preuve de concept, permettant de valider une approche, mais ne se veut en aucun cas comme un système fonctionnel de
développement d’agent sémantique.
6.6.1
Perspectives
Au dela des limitations technique d’implémentation, le prochain défi du prototype
est de simplifier la programmation de comportement. En effet la programmtion de
comportement sous forme SWRL est fastidieuse pour le programmeur d’agent. Le
principe de machines à états finis permet de transformer un graphique représentant le
programme directement en règles SAM. La génération automatique de code à partir de
graphiques est la prochaine grande étape du projet. Nous pensons nous orienter vers le
développement d’un plugin pour Eclipse pour réaliser cette tâche.
L’implémentation a permis de réaliser le transfert de connaissance empirique et de
valider l’approche. Nous avons aussi pu mettre en œuvre l’ontologie des communautés
virtuelles de connaissances. Dans la continuité de nos travaux concernant l’efficacité
des communautés [Calmet06], il est maintenant intéressant de lancer de nouvelles
simulations avec des agents qui disposent de la capacité d’échanges de protocoles des
communautés. Il est alors possible de lancer des expérimentations sur un cadre plus
large, de comparer les différents types de communautés et détecter des convergeances
dans les modes de transmission des connaissances.
Les processus d’intéraction entre agents sont basiques et il serait intéressant d’intégrer des travaux théoriques concernant les processus d’argumentation. Les travaux de
Amgoud sur la sélection d’arguments basée sur la justification [Amgoud10] font écho au
cadre théorique que nous avons défini. La réalisation du prototype SAM peut permettre
de mettre en œuvre ces travaux théoriques.
Une sortie, c’est une entrée que l’on prend dans l’autre sens
Boris Vian
7
Conclusion
194
Chapitre 7. Conclusion
Plan du chapitre
7.1
Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.2
Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
195
Cette thèse conclut avec une révision des travaux présentés et une évaluation des
objectifs proposés à l’issue de la présentation des scénarios motivants. La portée des
résultats principaux est résumée, les limites sont discutées et les directions pour des
travaux futurs sont suggérées.
La gestion de connaissances au sein des organisations est un problème récent qui
a été abordé selon des perspectives diverses telles que l’informatique, la gestion des
connaissances, la psychologie . . .. Les recherches menées par Maret et Calmet sur la
modélisation des connaissances d’entreprises ont mis l’accent sur une approche informatique basée sur le paradigme agent afin de prendre en compte l’aspect décentralisé des
connaissances. Ces travaux ont abouti aux approches d’abstraction orientée agent (AOA)
et de communautés virtuelles de connaissances (VKC). Dans la définition des VKC
donnée dans le premier chapitre, la base de connaissances des agents ne contient pas
seulement des ontologies, mais aussi trois autres composants (cognition, communication
et sécurité). Cependant, l’implémentation montre une différence de traitement entre
les différents composants. En effet les ontologies sont les seules parties de la base de
connaissances qui sont échangeables entre les agents. Les trois autres composants sont
programmés sont internes à l’agent et ne peuvent être échangés lors d’intéractions. Nous
avons étudié dans cette thèse comment ces composants peuvent être mis en œuvre de
manière à être échangéables entre les agents. L’échange de connaissances de nature à être
exécutées par l’agent introduit de nouveaux problèmes de justification ou de validation
de ces connaissances.
L’analyse de l’état de l’art a montré que l’utilisation des langages du web sémantique
permettait la mise en place des deux types de connaissances (justifiables et empiriques)
au sein d’une architecture d’agents. Tout d’abord nous avons établi le rapprochement
entre le caracètre exécutable des connaissances empiriques (qui produisent une action)
et les comportements des agents. L’architecture BDI qui établit un lien direct entre
processus de décision, comportement et connaissance semblait toute indiquée pour
remplir cette tâche. Cependant les tentatives infructueuses d’implémentation d’une telle
architecture ont orienté notre choix sur une architecture basée autour des machines
étendues à état finis (EFSM). Nous avons ensuite montré que les langages OWL et SWRL
permettaient la réalisation d’une base de connaissances homogène permettant de décrire
à la fois les connaissances justifiables et empiriques. L’utilisation d’un raisonneur unique
pour l’inférence des connaissances, la justification des deux types de connaissance ainsi
que l’exécution des comportements est alors possible.
Un modèle d’agent sémantique respectant ces spécifications a été conçu. Les connaissances des deux types ont été représentés à l’aide du formalisme fourni par les standards
OWL et SWRL. Le langage de règles SWRL ne permettant la programmation d’agents,
nous avons proposé une architecture en couches pour compléter avec les fonctions
requises en terme de communication et de gestion de la base de connaissances. Pour
compléter ces fonctions, nous avons spécifié un nombre fini d’actions qui est commun
196
Chapitre 7. Conclusion
à tous les agents. L’utilisation d’un nombre fini d’action permet une interopérabilité
complète entre les agents sémantiques en évitant le problème de double définition des
actions (au niveau sémantique et opérationnel).
Ce modèle permettant d’échanger des connaissances exécutables, nous sommes
revenus au concept de VKC. Nous avons transformé l’utilisation des VKC en une
connaissance échangeable entre les agents. Pour ce faire, nous avons formalisé le concept
de VKC, tout d’abord par une formalisation à l’aide de l’outil mathématique commun
que représentent les ensembles et relations. Pour compléter le lien entre cette formalisation et les agents, nous avons défini une ontologie des commaunutés virtuelles de
connaissances qui est intégrable dans la base de connaissances des agents sémantiques.
Dans la description formelle des communautés virtuelles de connaissances, nous avons
introduit le concept de protocoles qui permet d’établir le lien avec les connaissances
échangeables par les agents sémantiques. Nous représentons ces protocoles sous formes
de règles interprétables par les agents SAM, afin de rendre opérationnelle l’utilisation
des communautés sous forme d’ontologie. Cette formalisation a aussi permet de rendre
compte d’un type plus large de VKC en ne se restreignant pas à l’implémentation présentée dans les motivations mais en permettant de représenter un spectre plus large de
communautés.
Nous avons implémenté le modèle d’agent sémantique pour valider notre approche.
Le code source du prototype est disponible en open source. La liste des publications
concernant nos travaux est donnée en annexe C.
7.1 Discussion
L’approche que nous proposons se base sur une consistance des connaissances. Une
connaissance non consistante avec celles d’un agent sera rejeté par ce dernier. D’autres
approches proposent des bases de connaissances dont la consistance est locale, ces
approche dites multi-contexte [Giunchiglia93] permettraient des raisonnements sur des
inconsistances en utilisant des logiques non monotones et des règles-pont (bridge rules
en anglais). Ces logiques non-monotones sont sous le feu des critiques des théoriciens
depuis leur introduction 1 [Girard07], et leurs fondations apparaissent pour le moins
instables. Il faut donc approcher avec précaution ces logiques, nous avons choisi de les
éviter. Notre système permet aux agents de posséder des connaissances qui sont inconsistantes avec celles des autres agents, pour autant la transmission de ces connaissances
entre deux agents est alors impossible, le récepteur ne pouvant accepter d’inconsistance
dans sa propre base.
L’aspect de la sécurité a été volontairement mis de côté tout au long de cette thèse.
Les problématiques de confidentialité, de confiance dans les échanges sont des problé1. http://plato.stanford.edu/entries/logic-nonmonotonic/ cf conclusion
Section 7.2. Perspectives
197
matiques importantes dans le domaine de la gestion des connaissances, notamment
dans le cadre d’organisation ou l’accés aux données doit être restreint selon la place dans
l’organisation. En effet lors de la transmission de connaissances empiriques, la connaissance transmise sous forme d’une séquence d’actions et d’une propriété est alors testée
par le récepteur. Un agent doté de mauvaises pourrait alors transmettre une séquence
d’actions malicieuses, de la même manière que les chevaux de troie se transmettent.
Notre approche de la gestion des connaissances se situe en amont de ces problématiques,
mais elles constituent un potentiel de développement futur des recherches, notamment
en ce qui concerne les connaissances empiriques.
L’implémentation du prototype présente certaines limitations techniques. Pour des
raisons de simplicité, toutes les variables de l’interpréteur sont globales, seul l’état courant lors de l’appel à un autre comportement est sauvegardé. Il faudrait alors étendre le
modèle de l’agent pour associer un contexte d’exécution plus complet pour chaque comportement. Concernant la validation de code, les propriétés des OWLList en réduisent
considérablement les possibilités. En effet, les implémentations de OWL-DL sont ici un
facteur limitant qui ne permet pas d’exclure les cycles des OWLList [Drummond06].
Une séquence d’action peut-être cyclique et donc ne jamais terminer. Certaines fonctions
n’ont pas été (ou partiellement) implémentées. En particulier certaines fonctions de la
gestion d’ontologies qui n’étaient pas nécessaires au développement de scénarios et de
tests ont été écarté du développement pour des questions de temps. Ce prototype se veut
avant tout une preuve de concept, permettant de valider une approche, mais ne se veut
en aucun cas comme un système fonctionnel de développement d’agent sémantique.
7.2 Perspectives
L’implémentation que nous avons présenté dans cette thèse est une preuve de concept
qui démontre la faisabilité de notre approche. La difficulté de la programmation des
agents sémantiques est dûe à l’absence d’une interface de développement intégrée.
La meilleure approche selon nous consisterait en une une extension d’Eclipse pour
permettre au développeur de programmer visuellement les agents. Les actions étant en
nombre fini, il est très simple de proposer une interface visuelle pour le développement
rapide d’application utilisant des agents sémantiques. Une telle interface permettrait
de réduire le temps de développement et autoriserait le développement d’applications
mettant en œuvre un nombre plus large d’agents.
L’implémentation a permis de réaliser le transfert de connaissance empirique et de
valider l’approche. Nous avons aussi pu mettre en œuvre l’ontologie des communautés
virtuelles de connaissances. Dans la continuité de nos travaux concernant l’efficacité
des communautés [Calmet06], il est maintenant intéressant de lancer de nouvelles
simulations avec des agents qui disposent de la capacité d’échanges de protocoles des
198
Chapitre 7. Conclusion
communautés. Il est alors possible de lancer des expérimentations sur un cadre plus
large, de comparer les différents types de communautés et détecter des convergeances
dans les modes de transmission des connaissances.
Les processus d’intéraction entre agents sont basiques et il serait intéressant d’intégrer des travaux théoriques concernant les processus d’argumentation. Les travaux de
Amgoud sur la sélection d’arguments basée sur la justification [Amgoud10] font écho au
cadre théorique que nous avons défini. La réalisation du prototype SAM peut permettre
de mettre en œuvre ces travaux théoriques.
Les connaissances acquises et les concepts développés au cours de cette thèse nous
amène à revoir notre position sur la faisabilité d’une architecture BDI basée sur un
raisonneur sémantique. Si les travaux théoriques de Moreira [Moreira06] n’ont pas
abouti à une implémentation, nous avons une idée plus précise des problèmes qui ont
pu être rencontrés. Le problème de la révision des croyances requiert une intervention
externe au raisonneur pour la suppression de croyances (problème aussi identifié par
[Halaschek-Wiener06]), le second problème qui nous apparait est celui de l’activation
des plans. Les raisonneurs sémantiques ne privilégient pas de règles en particulier et
toutes les règles sont potentiellement activables, la représentation des plans sous forme
de règles SWRL par exemple est alors impossible. Nous pensons qu’il est possible de
contourner cette difficulté par l’introduction d’un concept similaire aux états utilisés
dans les EFSM, permettant la sélection d’un plan. Le troisième point qui doit être développé est l’intéraction entre le raisonneur et l’exécution des actions. A la différence de
notre approche, nous pensons qu’il est nécessaire de développer une interface au sein du
raisonneur, qui permet l’exécution d’action lors de la classification de ressources correspondantes à des actions. Cette interface permet la révision des croyances (intervention
externe sur la base de connaissances) et l’exécution des actions.
A
Annexe : Ontologie
200
Chapitre A. Annexe : Ontologie
Plan du chapitre
A.1 Ontologie sous forme d’expression . . . . . . . . . . . . . . . . . . . . 201
A.2 Ontologie au format N3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Section A.1. Ontologie sous forme d’expression
A.1 Ontologie sous forme d’expression
Classes
AP
AP v ∀ hasProtocol Protocols
AP v ∀ hasActions CommunityActions
AP v Thing
AP v ¬ Agent
AP v ¬ Roles
AP v ¬ Topic
AP v ¬ Protocols
AP v ¬ CommunityActions
AP v ¬ Community
Agent
Agent v ∀ membershasroles Roles
Agent v ≥ 1 membershasroles Thing
Agent v Thing
Agent v ¬ Protocols
Agent v ¬ Roles
Agent v ¬ CommunityActions
Agent v ¬ Topic
Agent v ¬ AP
Agent v ¬ Community
Community
Community v Thing
Community v ∀ hasMember Agent
Community v ≥ 1 hasMember Thing
Community v ¬ Topic
201
202
Chapitre A. Annexe : Ontologie
Community v ¬ Roles
Community v ¬ CommunityActions
Community v ¬ Agent
Community v ¬ AP
Community v ¬ Protocols
CommunityActions
CommunityActions v ¬ Protocols
CommunityActions v ¬ Agent
CommunityActions v ¬ Community
CommunityActions v ¬ Roles
CommunityActions v ¬ Topic
CommunityActions v ¬ AP
LeaderAgent
LeaderAgent ≡ ∃ membershasroles LeaderRole
LeaderAgent v Agent
LeaderRole
LeaderRole v Roles
Protocols
Protocols v ¬ CommunityActions
Protocols v ¬ Agent
Protocols v ¬ Roles
Protocols v ¬ Topic
Protocols v ¬ AP
Protocols v ¬ Community
Section A.1. Ontologie sous forme d’expression
Roles
Roles v Thing
Roles v ∀ hasAP AP
Roles v ¬ Community
Roles v ¬ Agent
Roles v ¬ Protocols
Roles v ¬ Topic
Roles v ¬ CommunityActions
Roles v ¬ AP
Thing
Topic
Topic v ¬ Community
Topic v ¬ Agent
Topic v ¬ Roles
Topic v ¬ Protocols
Topic v ¬ CommunityActions
Topic v ¬ AP
Propriétés d’objets
hasAP
∃ hasAP Thing v Roles
> v ∀ hasAP AP
hasActions
∃ hasActions Thing v AP
> v ∀ hasActions CommunityActions
203
204
Chapitre A. Annexe : Ontologie
hasMember
∃ hasMember Thing v Community
> v ∀ hasMember Agent
hasProtocol
∃ hasProtocol Thing v AP
> v ∀ hasProtocol Protocols
membershasroles
∃ membershasroles Thing v Agent
> v ∀ membershasroles Roles
A.2 Ontologie au format N3
@prefix
@prefix
@prefix
@prefix
@prefix
@prefix
@prefix
@prefix
@prefix
@prefix
@prefix
[]
a
protege:
xsp:
sqwrl:
rdfs:
swrl:
default:
swrlb:
xsd:
owl:
rdf:
swrla:
<http://protege.stanford.edu/plugins/owl/protege#> .
<http://www.owl-ontologies.com/2005/08/07/xsp.owl#> .
<http://sqwrl.stanford.edu/ontologies/built-ins/3.4/sqwrl.owl#> .
<http://www.w3.org/2000/01/rdf-schema#> .
<http://www.w3.org/2003/11/swrl#> .
<http://liris.cnrs.fr/~jsuberca/vkcs.owl#> .
<http://www.w3.org/2003/11/swrlb#> .
<http://www.w3.org/2001/XMLSchema#> .
<http://www.w3.org/2002/07/owl#> .
<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<http://swrl.stanford.edu/ontologies/3.3/swrla.owl#> .
owl:AllDifferent .
default:AP
a
owl:Class ;
rdfs:comment "ActionProtocol"^^xsd:string ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf
[ a
owl:Restriction ;
owl:allValuesFrom default:Protocols ;
owl:onProperty default:hasProtocol
] ;
rdfs:subClassOf
Section A.2. Ontologie au format N3
205
[ a
owl:Restriction ;
owl:allValuesFrom default:CommunityActions ;
owl:onProperty default:hasActions
] ;
owl:disjointWith default:Protocols , default:Community ,
default:Roles , default:Agent , default:CommunityActions , default:Topic .
default:Community
a
owl:Class ;
rdfs:comment "Virtual Knowledge Community"^^xsd:string ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf
[ a
owl:Restriction ;
owl:allValuesFrom default:Agent ;
owl:onProperty default:hasMember
] ;
rdfs:subClassOf
[ a
owl:Restriction ;
owl:minCardinality "1"^^xsd:int ;
owl:onProperty default:hasMember
] ;
owl:disjointWith default:Protocols , default:AP ,
default:Roles , default:Agent , default:Topic , default:CommunityActions .
<./vkcs.owl>
a
owl:Ontology ;
owl:imports <http://sqwrl.stanford.edu/ontologies/built-ins/3.4/sqwrl.owl> ,
<http://swrl.stanford.edu/ontologies/3.3/swrla.owl> .
default:LeaderAgent
a
owl:Class ;
rdfs:subClassOf default:Agent ;
owl:equivalentClass
[ a
owl:Restriction ;
owl:onProperty default:membershasroles ;
owl:someValuesFrom default:LeaderRole
] .
default:Topic
a
owl:Class ;
rdfs:comment "Topic of a community"^^xsd:string ;
owl:disjointWith default:Protocols , default:AP ,
default:Roles , default:Community , default:Agent , default:CommunityActions .
default:Protocols
a
owl:Class ;
206
Chapitre A. Annexe : Ontologie
rdfs:comment "Protocols used to communicate between agents.
A protocol is SAM Behaviour."^^xsd:string ;
owl:disjointWith default:AP , default:Roles ,
default:Community , default:Agent , default:Topic , default:CommunityActions .
default:hasProtocol
a
owl:ObjectProperty ;
rdfs:domain default:AP ;
rdfs:range default:Protocols .
default:hasAP
a
owl:ObjectProperty ;
rdfs:domain default:Roles ;
rdfs:range default:AP .
default:Roles
a
owl:Class ;
rdfs:comment "Roles of agent in a given community"^^xsd:string ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf
[ a
owl:Restriction ;
owl:allValuesFrom default:AP ;
owl:onProperty default:hasAP
] ;
owl:disjointWith default:Protocols , default:AP ,
default:Community , default:Agent , default:Topic , default:CommunityActions .
default:membershasroles
a
owl:ObjectProperty ;
rdfs:domain default:Agent ;
rdfs:range default:Roles .
default:Agent
a
owl:Class ;
rdfs:subClassOf owl:Thing ;
rdfs:subClassOf
[ a
owl:Restriction ;
owl:allValuesFrom default:Roles ;
owl:onProperty default:membershasroles
] ;
rdfs:subClassOf
[ a
owl:Restriction ;
owl:minCardinality "1"^^xsd:int ;
owl:onProperty default:membershasroles
] ;
owl:disjointWith default:Protocols , default:AP ,
Section A.2. Ontologie au format N3
207
default:Roles , default:Community , default:Topic , default:CommunityActions .
default:hasMember
a
owl:ObjectProperty ;
rdfs:domain default:Community ;
rdfs:range default:Agent .
default:hasActions
a
owl:ObjectProperty ;
rdfs:domain default:AP ;
rdfs:range default:CommunityActions .
default:LeaderRole
a
owl:Class ;
rdfs:subClassOf default:Roles .
default:CommunityActions
a
owl:Class ;
rdfs:comment "Actions that can be executed in the community"^^xsd:string ;
owl:disjointWith default:Protocols , default:AP ,
default:Roles , default:Community , default:Agent , default:Topic .
B
Annexe : Langages de communication agents
210
Chapitre B. Annexe : Langages de communication agents
Plan du chapitre
B.1
Langages de programmation agents . . . . . . . . . . . . . . . . . . . . 211
Section B.1. Langages de programmation agents
211
B.1 Langages de programmation agents
Les langages de programmtion d’agents permettent de développer le comportement
d’agents autonomes. Pour que ces agents soient capables d’intéragir entre eux, sans se
soucier du langage de programmation utilisé, il faut que ces agents soient dotés d’un
langage de communication commun. Deux langages de communication ACL pour Agent
Communication Language en anglais, ont été développé. Ces deux langages, KQML (pour
Knowledge Query and Manipulation Language) et FIPA-ACL sont tous deux basés
sur la théorie des actes de langages du philosophe américain John Searle. Dans ces
langages, les agents échangent des messages qui sont caractérisés par leurs performatifs.
Un performatif est un acte de communication, comme par exemple demander, informer,
répondre, . . ..
B.1.0.1
KQML
Le langage KQML 1 a été developpé par un comité mis en place par le DARPA
(Defense Advanced Research Projects Agency) dans le cadre du projet d’échanges des
connaissances Knowledge Sharing Effort 2 . Initialement le KQML devait être un langage
d’échanges de connaissances, comme par exemple KIF (Knowledge Interchange Format)
[Genesereth92]. KQML a ensuite été proposé comme langages de communications
d’agents [Finin94].
Un message KQML doit contenir au moins les éléments suivants :
– Une performative qui indique la nature de l’acte de communication
– Une ontologie à laquelle se réfère le contenu
– Un contenu
Un exemple de message KQML avec la performative ask-all (demande à tous les
agents) :
(ask-all
:content ‘‘geoloc(lax,(Long,Lat))’’
:language standard_prolog
:ontology geo-model3)
Le langage KQML a été utilisé avec succés dans de nombreuses applications 3 . Il est
maintenant délaissé au profit de son successeur, le FIPA-ACL.
1. http://www.cs.umbc.edu/KQML/kqmlspec.ps
2. http://ebiquity.umbc.edu/_file_directory_/papers/280.pdf
3. http://www-ksl.stanford.edu/knowledge-sharing/agents.html
212
B.1.0.2
Chapitre B. Annexe : Langages de communication agents
FIPA-ACL
La FIPA (Foundations for Intelligent Agents) 4 , initialement une association à but
non lucratif fondée qui est maintenant devenue un comité de standards de l’IEEE a
proposé de nombreux standards pour les agents et plus particulièrement un standard de
langages de communication qui a été adopté par de nombreuses plates-formes.
Le tableau B.1 montre les différents champs qui composent un message.
Parameter
performative
sender
receiver
reply-to
content
language
encoding
ontology
protocol
conversation-id
reply-with
in-reply-to
reply-by
Category of Parameters
Type of communicative acts
Participant in communication
Participant in communication
Participant in communication
Content of message
Description of Content
Description of Content
Description of Content
Control of conversation
Control of conversation
Control of conversation
Control of conversation
Control of conversation
TABLE B.1 – Paramètres des messages FIPA ACL
Les messages FIPA-ACL comportent nettement plus de champ et permettent l’élaboration de protocoles complexes entre agents, comme par exemple le CONTRACT-NET
[Smith80].
4. http://www.fipa.org
C
Annexe : Liste des publications
Liste de publications
[1] Julien Subercaze and Pierre Maret. Sam : Semantic agent model for swrl
rule-based agents. In INSTICC Press 2010, editor, ICAART 2010, Proceedings of the International Conference on Agents and Artificial Intelligence,
Volume 2 - Agents, pages 244–248, January 2010.
[2] Julien Subercaze and Pierre Maret. Semantic Agent Systems - Foundations
and Applications, , chapter Programming Semantic Agent for Distributed
Knowledge Management. Springer Verlag, November 2010.
[3] Christo Elmorr and Julien Subercaze. Handbook of Research on Developments in e-Health and Telemedicine: Technological and Social Perspectives,
chapter Knowledge Management in Health care., December 2009.
[4] Christo El Morr, Julien Subercaze, Marcia Rioux, and Mihaela DincaPanaitescu. Virtual knowledge network for human rights monitoring. In
Workshop on Web Intelligence and Virtual Enterprises (WIVE09), 10th
IFIP Working Conference on Virtual Entreprises (PRO-VE09), October
2009.
[5] Julien Subercaze, Christo El Morr, Pierre Maret, Adrien Joly, Matti
Koivisto, Panayotis Antoniadis, and Masayuki Ihara. Towards successful
virtual communities. In International Conference on Enterprise Information Systems, Lecture Notes in Business Information Processing, pages 677–
688, . Springer Berlin Heidelberg, May 2009.
[6] Christo Elmorr, Julien Subercaze, Pierre Maret, and Marcia Rioux. A virtual knowledge community for human rights monitoring for people with disabilities. In Piet Kommers, editor, IADIS International Conference WBC
2008, pages 78–84, July 2008.
[7] Pierre Maret, Julien Subercaze, and Jacques Calmet. Peer to peer model
for virtual knowledge communities. In AIKED’08, pages 365–370, March
2008.
[8] Pravin Pawar, Julien Subercaze, Pierre Maret, Bert-Jan van Beijnum, and
Dimitri Konstantas. Towards business model and technical platform for
the service oriented context-aware mobile virtual communities. In IEEE
Symposium on Computers and Communications ISCC, pages 103–110, .
IEEE Computer Society Press, July 2008.
[9] Julien Subercaze, Pravin Pawar, Pierre Maret, and Jacques Calmet. A
service oriented framework for mobile business virtual communities. In
Willy Picard Luis M. Camarinha-Matos, editor, Virtual Enterprises and
Collaborative Networks, pages 493–500, . Springer, September 2008.
[10] Julien Subercaze, Pierre Maret, Ngoc Minh Dang, and Ken Sasaki.
Context-aware applications using personal sensors. In Social-Informatics
ICST (Institute for Computer Sciences and Telecommunications Engineering), editors, BodyNets ’07: Proceedings of the ICST 2nd international
conference on Body area networks, pages 1–5, July 2007.
[11] Jacques Calmet, Julien Subercaze, and Pierre Maret. Simulation in virtual
knowledge communities. In Angel Oropeza Freddy Mapica, editor, Social
and Organizational Informatics and Cybernetics, pages 238–242, July 2006.
Bibliographie
[ACL-FIPAml]
ACL-FIPA. Fipa personal assistant specification (2000). FIPA,
http ://www.fipa.org/specs/fipa00083/XC00083B.html. 29, 35
[Alavi99]
Maryam Alavi & Dorothy Leidner. Knowledge Management Systems : Emerging Views and Practices from the Field. Hawaii International Conference on System Sciences, vol. 7, page 7009, IEEE
Computer Society, Los Alamitos, CA, USA, 1999. 68
[Amgoud10]
Leila Amgoud & Srdjan Vesic. Handling Inconsistency with
Preference-Based Argumentation. In Amol Deshpande & Anthony
Hunter, editeurs, SUM, volume 6379 of Lecture Notes in Computer
Science, pages 56–69. Springer, 2010. 192, 198
[Ancona04a]
D. Ancona & V. Mascardi. Coo-BDI : Extending the BDI model
with cooperativity. Lecture Notes in Computer Science, vol. 2990,
pages 109–134, Springer, 2004. 94, 98
[Ancona04b]
D. Ancona, V. Mascardi, J.F. Hubner & R.H. Bordini. CooAgentSpeak : Cooperation in AgentSpeak through plan exchange. In
Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems-Volume 2, page 705.
IEEE Computer Society, 2004. 94, 132
[Anicic07]
N. Anicic, N. Ivezic & A. Jones. An architecture for semantic
enterprise application integration standards. Interoperability of Enterprise Software and Applications, pages 25–34, Springer, 2007.
79
[Bachimont96]
M.B. Bachimont. Hermeneutique ma erielle et Artefacture : des machines qui pensent aux machines qui donnent a penser. Doctorat,
Ecole polytechnique - Service d’Informatique Médicale de l’Assistance Publique, 1996. 64
[Balmisse02]
G. Balmisse. Gestion des connaissances(outils et applications du
knowledge management). Entreprendre. Informatique, Vuibert,
2002. 65
[Barclay97]
R.O. Barclay & P.C. Murray. What is knowledge management. Knowledge Praxis, vol. 19, 1997. 18
218
BIBLIOGRAPHIE
[Bellifemine99]
F. Bellifemine, A. Poggi & G. Rimassa. JADE–A FIPA-compliant
agent framework. In Proceedings of PAAM, volume 99, pages
97–108. Citeseer, 1999. 29, 35, 108
[Berners-Lee00]
T. Berners-Lee & D. Connolly. CWM-closed world machine. Internet : http ://www. w3. org/2000/10/swap/doc/cwm. html,
2000. 103
[Biegel04]
Gregory Biegel & Vinny Cahill. A Framework for Developing Mobile, Context-aware Applications. percom, vol. 00, page 361, IEEE
Computer Society, Los Alamitos, CA, USA, 2004. 32
[Boissier01]
O. Boissier. Modèles et architectures d’agents. Principes et architectures des systèmes multi-agents, pages 71–107, 2001. 85
[Boley01]
Harold Boley, Said Tabet & Gerd Wagner. Design Rationale for
RuleML : A Markup Language for Semantic Web Rules. In Isabel F.
Cruz, Stefan Decker, Jérôme Euzenat & Deborah L. McGuinness,
editeurs, SWWS, pages 381–401, 2001. 79
[Bonifacio02a]
M. Bonifacio, P. Bouquet & P. Traverso. Enabling distributed knowledge management : Managerial and technological implications. Novatica and Informatik/Informatique, page 23, Citeseer, 2002. 11,
69, 70
[Bonifacio02b]
M. Bonifacio, R. Cuel, G. Mameli & M. Nori. A peer-to-peer architecture for distributed knowledge management. In Proceedings
of the 3rd International Symposium on Multi-Agent Systems,
Large Complex Systems, and E-Businesses (MALCEB’02). Citeseer, 2002. 69
[Bonifacio02c]
Matteo Bonifacio, Paolo Bouquet & Roberta Cuel. Knowledge
Nodes : the Building Blocks of a Distributed Approach to Knowledge.
J. of Universal Computer Science, vol. 8, no. 6, pages 652–661,
2002. 69
[Bonifacio03]
Matteo Bonifacio, Paolo Bouquet, Gianluca Mameli & Michele
Nori. Peer-Mediated Distributed Knowledge Management. In van
Elst et al. [van Elst04a], pages 31–47. 12, 19, 114, 115
[Bordini05a]
R. Bordini, J. H
"ubner & R. Vieira. Jason and the Golden Fleece of agent-oriented
programming. Multi-Agent Programming, pages 3–37, Springer,
2005. 98
[Bordini05b]
R.H. Bordini. Multi-agent programming : languages, platforms,
and applications. Springer, 2005. 96
[Bordini07]
R. Bordini, J. H
"ubner & D. Tralamazza. Using Jason to implement a team of gold
BIBLIOGRAPHIE
219
miners. Computational Logic in Multi-Agent Systems, pages
304–313, Springer, 2007. 98
[Boswell05]
J. Boswell. The Life of Samuel Johnson. Kessinger Publishing,
2005. 64
[Bryl06]
Volha Bryl, Paolo Giorgini & Stefano Fante. ToothAgent : A Multiagent System for Virtual Communities Support. In AOIS, pages
212–230, 2006. 113
[Buhler03]
P. Buhler & J.M. Vidal. Semantic web services as agent behaviors.
Agentcities : Challenges in Open Agent Environments, pages
25–31, Springer-Verlag, 2003. 107
[Calmet04]
Jacques Calmet, Pierre Maret & Regine Endsuleit. Agent-oriented
abstraction. Academia de Ciencias, Serie "A" de Matemeticas,
vol. 98, December 2004. 23, 25, 26, 112
[Calmet06]
Jacques Calmet, Julien Subercaze & Pierre Maret. Simulation
in Virtual Communities. In Proceeding of the Social and Organizational Informatics and Cybernetics (SOIC) conference 2006,
Orlando, Florida, USA, pages 238–242, 2006. 162, 192, 197
[Capuano00]
N. Capuano, M. Marsella & S. Salerno. ABITS : An agent based
Intelligent Tutoring System for distance learning. In Proceedings of
the International Workshop in Adaptative and Intelligent Webbased Educational Systems. Available at http ://virtcampus.
cl-ki. uni-osnabrueck. de/its-2000, pages 17–28, 2000. 12, 118,
119
[Chen04]
Wei Chen & Keith S. Decker. The Analysis of Coordination in an
Information System Application - Emergency Medical Services. In
Paolo Bresciani, Paolo Giorgini, Brian Henderson-Sellers, Graham Low & Michael Winikoff, editeurs, AOIS, volume 3508 of
Lecture Notes in Computer Science, pages 36–51. Springer, 2004.
113
[Cheng93]
K.T. Cheng & AS Krishnakumar. Automatic functional test generation using the extended finite state machine model. In Proceedings of
the 30th international conference on Design automation, pages
86–91. ACM New York, NY, USA, 1993. 125
[Clark01]
K. Clark, P.J. Robinson & R. Hagen. Multi-threading and message
communication in Qu-Prolog. Theory and Practice of Logic Programming, vol. 1, no. 03, pages 283–301, Cambridge Univ Press,
2001. 107
[Cobo07]
P. Cobo, J.M. Fortuny, E. Puertas & P.R. Richard. AgentGeom : a
multiagent system for pedagogical support in geometric proof problems.
220
BIBLIOGRAPHIE
International Journal of Computers for Mathematical Learning,
vol. 12, no. 1, pages 57–79, Springer, 2007. 118, 119
[Corby00]
O. Corby, R. Dieng & C. Hébert. A conceptual graph model for w3c
resource description framework. Lecture notes in computer science,
pages 468–482, Springer, 2000. 118
[Corby04]
O. Corby, R. Dieng-Kuntz & C. Faron-Zucker. Querying the semantic web with corese search engine. In ECAI, volume 16, page
705, 2004. 114
[Costantini92]
S. Costantini, P. Dell’Acqua & G. Lanzarone. Reflective agents in
metalogic programming. Lecture notes in computer science, pages
135–135, Springer, 1992. 93
[Damasio06]
C.V. Damasio, A. Analyti, G. Antoniou & G. Wagner. Supporting open and closed world reasoning on the web. Lecture notes in
computer science, vol. 4187, page 149, Springer, 2006. 19
[Davenport99]
T.H. Davenport, D.W. De Long & M.C. Beers. Successful knowledge
management projects. The Knowledge Management Yearbook
1999-2000, pages 89–107, Butterworth-Heinemann, 1999. 51
[Davenport00]
T.H. Davenport & L. Prusak. Working knowledge : How organizations manage what they know. Ubiquity, vol. 1, no. 24, ACM New
York, NY, USA, 2000. 64, 65
[Decker98]
Stefan Decker, Michael Erdmann, Dieter Fensel & Rudi Studer. Ontobroker : Ontology based Access to Distributed and SemiStructured Information. pages 351–369, Kluwer Academic Publisher, 1998. 75
[Dickinson03]
I. Dickinson & M. Wooldridge. Towards practical reasoning agents
for the semantic web. In Proceedings of the second international
joint conference on Autonomous agents and multiagent systems,
pages 827–834. ACM New York, NY, USA, 2003. 11, 104, 105, 106,
178, 182
[Dikenelli05]
O. Dikenelli, R.C. Erdur & O. Gumus. Seagent : a platform for developing semantic web based multi agent systems. In Proceedings of
the fourth international joint conference on Autonomous agents
and multiagent systems, page 1272. ACM, 2005. 110
[Drummond06]
N. Drummond, A. Rector, R. Stevens, G. Moulton, M. Horridge,
H. Wang & J. Seidenberg. Putting OWL in order : Patterns for
sequences in OWL. In Proc. 2nd Workshop on OWL : Experiences
and Directions. Citeseer, 2006. 143, 178, 182, 192, 197
BIBLIOGRAPHIE
221
[Ehrig03]
Marc Ehrig, Christoph Tempich, Jeen Broekstra, Frank van Harmelen, Marta Sabou, Ronny Siebes, Steffen Staab & Heiner Stuckenschmidt. SWAP : Ontology-based Knowledge Management with
Peer-to-Peer Technology. In Wissensmanagement, pages 17–20,
2003. 19, 68, 69, 120
[El Morr07]
C. El Morr & J. Kawash. Mobile virtual communities research : a
synthesis of current trends and a look at future perspectives. International Journal of Web Based Communities, vol. 3, no. 4, pages
386–403, Inderscience, 2007. 49
[El Morr09]
Christo El Morr, Julien Subercaze, Marcia Rioux & Mihaela
Dinca-Panaitescu. Virtual Knowledge Network for Human Rights
Monitoring. In Workshop on Web Intelligence and Virtual Enterprises (WIVE’09), 10th IFIP Working Conference on Virtual
Entreprises (PRO-VE’09), October 2009. 23, 48
[ElMorr07]
Christo ElMorr & Jalal Kawash. Mobile virtual communities research&#58 ; a synthesis of current trends and a look at future perspectives. Int. J. Web Based Communities, vol. 3, no. 4, pages 386–403,
Inderscience Publishers, Inderscience Publishers, Geneva, SWITZERLAND, 2007. 39
[Elmorr08]
Christo Elmorr, Julien Subercaze, Pierre Maret & Marcia Rioux.
A Virtual Knowledge Community for Human Rights Monitoring for
People with Disabilities. In Piet Kommers, editeur, IADIS International Conference WBC 2008, pages 78–84, July 2008. 23, 48
[Farooq02]
U. Farooq, PL Isenhour, J.M. Carroll & M.B. Rosson. MOOsburg++ : Moving towards a wireless virtual community. In Proceedings of the 2002 International Conference on Wireless Networks,
2002. 40
[Ferber89]
J. Ferber. Objets et agents : une étude des structures de représentation
et de communications en Intelligence Artificielle. Th ese d’informatique, Universit e Pierre et Marie Curie, Paris, vol. 6, 1989.
18
[Finin94]
T. Finin, R. Fritzson, D. McKay & R. McEntire. KQML as an agent
communication language. In Proceedings of the third international
conference on Information and knowledge management, page
463. ACM, 1994. 83, 131, 211
[FIPA02]
TC FIPA. Architecture Group, FIPA Abstract Architecture Specification. Rapport technique, Tech. Rep. XC00001K, Foundation for
Intelligent Physical Agents, Geneva, Switzerland, 2002. 107
222
BIBLIOGRAPHIE
[Fox00]
M.S. Fox, M. Barbuceanu & R. Teigen. Agent-oriented supply-chain
management. International Journal of Flexible Manufacturing
Systems, vol. 12, no. 2, pages 165–188, Springer, 2000. 87
[Gaborit96]
P. Gaborit. Planification distribuée pour la coopération multi-agents.
1996. 87
[Gandon02]
Fabien Gandon. Distributed Artificial Intelligence and Knowledge
Management : ontologies and multi-agent systems for a corporate
semantic web. Doctorat, INRIA and University of Nice - Sophia
Antipolis, 2002. 11, 113
[Ganek03]
A.G. Ganek & T.A. Corbi. The dawning of the autonomic computing
era. IBM Systems Journal, vol. 42, no. 1, pages 5–18, IBM Corp.,
2003. 88
[Gellersen02]
Hans W. Gellersen, Albercht Schmidt & Michael Beigl. Multisensor context-awareness in mobile devices and smart artifacts. Mob.
Netw. Appl., vol. 7, no. 5, pages 341–351, Kluwer Academic
Publishers, Hingham, MA, USA, 2002. 32
[Genesereth92]
M.R. Genesereth, R.E. Fikeset al. Knowledge interchange format,
version 3.0 reference manual, 1992. 211
[Georgeff89]
M.P. Georgeff & F.F. Ingrand. Decision-making in an embedded
reasoning system. In Proceedings of the Eleventh International
Joint Conference on Artificial Intelligence (IJCAI-89), pages 972–
978, 1989. 11, 92
[Gettier63]
E.L. Gettier. Is justified true belief knowledge ? Analysis, vol. 23,
no. 6, page 121, 1963. 63
[Girard07]
J.Y. Girard. Le point aveugle : Cours de logique : Tome 1, vers la
perfection. Hermann, Paris, 280p, 2007. 72, 196
[Giunchiglia93]
E. Giunchiglia, P. Traverso & F. Giunchiglia. Multi-context systems
as a specification framework for complex reasoning systems. J. Treur,
Th. Wetter (eds.), Formal specification of complex reasoning
systems, Ellis Horwood, pages 45–72, 1993. 196
[Goldman86]
A.I. Goldman. Epistemology and cognition. Harvard Univ Pr,
1986. 63
[Gruber93]
T.R. Gruberet al. A translation approach to portable ontology specifications. Knowledge acquisition, vol. 5, pages 199–199, Academic
Press, 1993. 72
[Haarslev07]
V. Haarslev, R. M
"oller & M. Wessel. RacerPro User’s Guide and Reference Manual
Version 1.9. 1, 2007. 79
BIBLIOGRAPHIE
[Haase05]
223
Peter Haase, Björn Schnizler, Jeen Broekstra, Marc Ehrig, Frank
van Harmelen, Maarten Menken, Peter Mika, Michal Plechawski,
Pawel Pyszlakand Ronny Siebes, Steffen Staab & Christoph Tempich. Bibster — A Semantics-Based Bibliographic Peer-to-Peer System.
Journal of Web Semantics, vol. 2, no. 1, 2005. 120
[Halaschek-Wiener06] C. Halaschek-Wiener, Y. Katz & B. Parsia. Belief base revision for
expressive description logics. OWL : Experiences and Directions,
vol. 2006, Citeseer, 2006. 198
[Heflin00]
J. Heflin & J. Hendler. Searching the Web with SHOE. In AAAI2000 Workshop on AI for Web Search, pages 35–40, 2000. 73
[Henricksen04]
Karen Henricksen & Jadwiga Indulska. A Software Engineering
Framework for Context-Aware Pervasive Computing. Percom, vol. 00,
page 77, IEEE Computer Society, Los Alamitos, CA, USA, 2004.
32
[Hesselman06]
C. Hesselman, A. Tokmakoff, P. Pawar & S. Iacob. Discovery and
composition of services for context-aware systems. Smart Sensing
and Context, pages 67–81, Springer, 2006. 45
[Hey04]
J. Hey. The data, information, knowledge, wisdom chain : The metaphorical link. Relatório técnico, Intergovernmental Oceanographic
Commission (UNESCO), 2004. 65
[Hindriks99]
K.V. Hindriks, F.S. De Boer, W. Van der Hoek & J.J.C. Meyer.
Agent programming in 3APL. Autonomous Agents and MultiAgent Systems, vol. 2, no. 4, pages 357–401, Springer, 1999. 11,
102
[Horn01]
P. Horn. Autonomic computing : IBM’s perspective on the state of
information technology. IBM TJ Watson Labs, NY, 15th October,
2001. 88
[Horrocks03]
I. Horrocks, P.F. Patel-Schneider & F. Van Harmelen. From SHIQ
and RDF to OWL : The making of a web ontology language. Web
semantics : science, services and agents on the World Wide Web,
vol. 1, no. 1, pages 7–26, Elsevier, 2003. 78
[Horrocks04]
I. Horrocks, P.F. Patel-Schneider, H. Boley, S. Tabet, B. Grosof &
M. Dean. SWRL : A semantic web rule language combining OWL
and RuleML. W3C Member Submission, vol. 21, 2004. 79, 141
[Hustadt94]
U. Hustadt. Do we need the closed world assumption in knowledge
representation. In Proc. of the 1st Workshop KRDB, volume 94.
Citeseer, 1994. 71
224
BIBLIOGRAPHIE
[Jansen02]
W. Jansen, GCA Steenbakkers, HPM Jagers & M. Khosrowpour.
Knowledge management and virtual communities. Knowledge mapping and management, page 281, Irm Pr, 2002. 49
[Jennings98]
N.R. Jennings, K. Sycara & M. Wooldridge. A roadmap of agent
research and development. Autonomous agents and multi-agent
systems, vol. 1, no. 1, pages 7–38, Springer, 1998. 85
[Katasonov08]
A. Katasonov & V. Terziyan. Semantic agent programming language
(S-APL) : A middleware platform for the Semantic web. In Proc. 2nd
IEEE International Conference on Semantic Computing, pages
504–511, 2008. 11, 103, 104
[Kawash05]
J. Kawash, C. El Morr, W. Charaf & H. Taha. Building Mobile
Virtual Communities for Public Transport Awarness. In 2005 2nd
International Conference on Mobile Technology, Applications
and Systems, pages 1–7, 2005. 40, 49
[Kephart03]
J.O. Kephart & D.M. Chess. The vision of autonomic computing.
Computer, pages 41–50, IEEE Computer Society, 2003. 88
[Klapiscak09]
T. Klapiscak & R. Bordini. JASDL : A practical programming approach combining agent and semantic web technologies. Declarative
Agent Languages and Technologies VI, pages 91–110, Springer,
2009. 11, 99, 100
[Klyne04]
G. Klyne, J.J. Carroll & B. McBride. Resource description framework (RDF) : Concepts and abstract syntax. W3C recommendation,
vol. 10, 2004. 77
[Laclavik06a]
Michal Laclavik, Marian Babik, Zoltan Balogh, Emil Gatial &
Ladislav Hluchý. Semantic Knowledge Model and Architecture for
Agents in Discrete Environments. In ECAI, pages 727–728, 2006.
109, 178
[Laclavik06b]
Michal Laclavik, Zoltan Balogh, Marian Babik & Ladislav Hluchý. AgentOWL : Semantic Knowledge Model and Agent Architecture.
Computers and Artificial Intelligence, vol. 25, no. 5, 2006. 19,
103, 178
[Lacy04]
L. Lacy & W. Gerber. Potential modeling and simulation applications
of the web ontology language-OWL. In Proceedings of the 36th
conference on Winter simulation, page 270. Winter Simulation
Conference, 2004. 79
[Lacy05]
L. Lacy, G. Aviles, K. Fraser, W. Gerber, A. Mulvehill & R. Gaskill.
Experiences using OWL in military applications. In Proc. of the First
OWL Experiences and Directions Workshop, volume 188, 2005.
79
BIBLIOGRAPHIE
225
[Leimeister04]
J.M. Leimeister & H. Krcmar. Revisiting the virtual community
business model. In Proceedings of the Tenth Americas Conference
on Information Systems. Citeseer, 2004. 39, 43
[Loke98]
S.W. Loke & A. Davison. LogicWeb : Enhancing the web with logic
programming. The Journal of Logic Programming, vol. 36, no. 3,
pages 195–240, Elsevier, 1998. 75
[Ma08]
Zongmin Ma & Huaiqing Wang. The semantic web for knowledge and data management : Technologies and practices. Information Science Reference - Imprint of : IGI Publishing, Hershey,
PA, 2008. 80
[Machado99]
I. Machado, A. Martins & A. Paiva. One for all and all in one : a
learner modelling server in a multi-agent platform. In Proceedings
of the seventh international conference on User modeling table
of contents, pages 211–221. Springer-Verlag New York, Inc. Secaucus, NJ, USA, 1999. 118
[Maret04a]
Pierre Maret & Jacques Calmet. Modeling Corporate Knowledge
within the Agent Oriented Abstraction. In CW, pages 224–231. IEEE
Computer Society, 2004. 23, 25
[Maret04b]
Pierre Maret, Mark Hammond & Jacques Calmet. Virtual Knowledge Communities for Corporate Knowledge Issues. In Marie Pierre
Gleizes, Andrea Omicini & Franco Zambonelli, editeurs, ESAW,
volume 3451 of Lecture Notes in Computer Science, pages 33–44.
Springer, 2004. 23, 25, 35, 87, 170
[Martinez01]
M. T. Martinez, P. Fouletier, K. H. Park & J. Favrel. Virtual enterprise - organisation, evolution and control. International Journal
of Production Economics, vol. 74, no. 1-3, pages 225 – 238, 2001.
117
[Mascardi05]
Viviana Mascardi, Daniela Demergasso & Davide Ancona. Languages for Programming BDI-style Agents : an Overview, 2005. 92
[Merali01]
Y. Merali & J. Davies. Knowledge capture and utilization in virtual
communities. In Proceedings of the 1st international conference
on Knowledge capture, page 99. ACM, 2001. 49
[Modi04]
Pragnesh Jay Modi, Manuela Veloso, Stephen F. Smith & Jean Oh.
CMRadar : A Personal Assistant Agent for Calendar Management. In
In Agent Oriented Information Systems, (AOIS, pages 134–148,
2004. 113
[Moreira06]
Á. Moreira, R. Vieira, R. Bordini & J. H
"ubner. Agent-oriented programming with underlying ontological
226
BIBLIOGRAPHIE
reasoning. Declarative Agent Languages and Technologies III,
pages 155–170, Springer, 2006. 99, 125, 198
[Norman04]
T.J. Norman, A. Preece, S. Chalmers, N.R. Jennings, M. Luck, V.D.
Dang, T.D. Nguyen, V. Deora, J. Shao, W.A. Grayet al. Conoise :
Agent-based formation of virtual organisations. Knowledge-Based
Systems, vol. 17, no. 2-4, pages 103–111, 2004. 12, 116
[Norvig03]
P. Norvig & SJ Russell. Artificial intelligence : a modern approach.
Prentice Hall, 2003. 86
[Novák08a]
P. Novák. Jazzyk : A programming language for hybrid agents with
heterogeneous knowledge representations. In Sixth International
Workshop on Programming Multi-Agent Systems. Springer, 2008.
106
[Novak08b]
P. Novak, D. Mainzer, M. Koster & B. Fuhrmann. Jazzbot : A nonmonotonically reasoning bot in a simulated 3D environment. 2008.
106
[Pacherie04]
É. Pacherie & J. Proust. Philosophie cognitive. Editions MSH,
2004. 63
[Pankratius04]
V. Pankratius, O. Sandel & W. Stucky. Retrieving content with
agents in web service e-learning systems. In IFIP Symposium on
Professional Practice in AI, IFIP WG12, volume 5, 2004. 118
[Parsia05]
B. Parsia, E. Sirin, B.C. Grau, E. Ruckhaus & D. Hewlett. Cautiously Approaching SWRL. Rapport technique, Technical report,
University of Maryland, 2005. 79
[Patel05]
J. Patel, W.T.L. Teacy, N.R. Jennings, M. Luck, S. Chalmers,
N. Oren, T.J. Norman, A. Preece, P.M.D. Gray, G. Shercliffet al.
Monitoring, policing and trust for grid-based virtual organisations.
In Proc. of the UK e-Science All Hands Meeting, pages 891–898,
2005. 117
[Patel06]
Jigar Patel, W. T. Luke Teacy, Nicholas R. Jennings, Michael Luck,
Stuart Chalmers, Nir Oren, Timothy J. Norman, Alun D. Preece,
Peter M. D. Gray, Gareth Shercliff, Patrick J. Stockreisser, Jianhua
Shao, W. Alex Gray, N. J. Fiddian & Simon Thompson. CONOISEG : agent-based virtual organisations. In Hideyuki Nakashima,
Michael P. Wellman, Gerhard Weiss & Peter Stone, editeurs, AAMAS, pages 1459–1460. ACM, 2006. 116, 117
[Pawar07]
P. Pawar, S. Srirama, B.J. van Beijnum & A. van Halteren. A Comparative Study of Nomadic Mobile Service Provisioning Approaches.
BIBLIOGRAPHIE
227
In The 2007 International Conference on Next Generation Mobile Applications, Services and Technologies, 2007. NGMAST’07,
pages 277–286, 2007. 46
[Pawar08]
Pravin Pawar, Julien Subercaze, Pierre Maret, Bert-Jan van Beijnum & Dimitri Konstantas. Towards Business Model and Technical Platform for the Service Oriented Context-Aware Mobile Virtual
Communities. In IEEE Symposium on Computers and Communications ISCC, pages 103–110. IEEE Computer Society Press, July
2008. 23, 24, 39
[Perez00]
P. Perez, K. Hervé, R. Dieng, O. Corby, A. Giboin, F. Gandon,
J. Quinqueton, A. Poggi, G. Rimassa, C. FIETTAet al. Corporate memory management through agents. E-business : Key Issues,
Applications and Technologies, pages 360–366, 2000. 113
[Pinyapong04]
Sineenard Pinyapong & Toshikazu Kato. Query Processing Algorithms for Time, Place, Purpose and Personal Profile Sensitive Mobile
Recommendation. In CW ’04 : Proceedings of the 2004 International Conference on Cyberworlds (CW’04), pages 423–430, Washington, DC, USA, 2004. IEEE Computer Society. 32
[Platon.94]
Platon. Théétète. Traduction, introduction et notes par M. Narcy,
Flammarion, Paris, 1994. 62
[Pokahr05]
A. Pokahr, L. Braubach & W. Lamersdorf. Jadex : A BDI reasoning
engine. Multiagent Systems Artificial Societies and Simulated
Organizations, vol. 15, page 149, Springer, 2005. 109
[Preece00]
Jenny Preece. Online communities - designing usability, supporting sociability. John Wiley & Sons, Ltd, Chichester, New York,
Weinheim, Brisbane, Toronto, Singapore, 2000. 48
[Rao95]
A.S. Rao & M.P. Georgeff. BDI agents : From theory to practice. In
Proceedings of the first international conference on multi-agent
systems (ICMAS-95), pages 312–319. San Francisco, 1995. 92
[Rao96]
A.S. Rao. AgentSpeak (L) : BDI agents speak out in a logical computable language. Lecture Notes in Computer Science, vol. 1038,
pages 42–55, Springer, 1996. 97
[Ritter95]
S. Ritter & KR Koedinger. Towards lightweight tutoring agents. In
AI-ED, 1995. 118
[Ritter96]
S. Ritter & K.R. Koedinger. An architecture for plug-in tutor agents.
Journal of Artificial Intelligence in Education, vol. 7, no. 3-4,
pages 315–347, Association for the Advancement of Computing
in Education, USA, 1996. 118
228
BIBLIOGRAPHIE
[Ritter97]
S. Ritter. Communication, cooperation and competition among multiple tutor agents. In Artificial Intelligence in Education, Proceedings of AI-ED, volume 97, pages 31–38, 1997. 118
[Rothaermel01]
F.T. Rothaermel & S. Sugiyama. Virtual internet communities and
commercial success : Individual and community-level theory grounded
in the atypical case of TimeZone. com. Journal of Management,
vol. 27, no. 3, page 297, South Manage Assoc, 2001. 43
[Rowley07]
J. Rowley. The wisdom hierarchy : representations of the DIKW
hierarchy. Journal of Information Science, vol. 33, no. 2, pages
163–180, Sage Publications, Inc., 2007. 65
[Salber98]
D. Salber & G. Abowd.
The Design and Use of a Generic Context Server.
Rapport technique, 1998.
Also
available as http://www-static.cc.gatech.edu/fce/
contexttoolkit/pubs/pui98.pdf. 32
[Schubert05]
P. Schubert & J.F. Hampe. Business models for mobile communities.
Published by the IEEE Computer Society, 2005. 39, 40
[Sharma98]
R. Sharma, V. I. Pavlovic & T. S. Huang. Toward multimodal humancomputer interface. Proceedings of the IEEE, vol. 86, no. 5, pages
853–869, 1998. 33
[Shi02]
H. Shi, S. Revithis & S.S. Chen. An agent enabling personalized
learning in e-learning environments. In Proceedings of the first
international joint conference on Autonomous agents and multiagent systems : part 2, pages 847–848. ACM New York, NY,
USA, 2002. 118
[Shoham91]
Y. Shoham. AGENT0 : A simple agent language and its interpreter.
In Proceedings of the Ninth National Conference on Artificial
Intelligence, volume 2, pages 704–709, 1991. 11, 12, 97, 145
[Shoham95]
Y. Shoham & M. Tennenholtz. On social laws for artificial agent
societies : Off-line design. Artificial Intelligence, vol. 73, no. 1-2,
pages 231–252, Elsevier, 1995. 87
[SILVENT03]
A.S. SILVENT, C. GARBAY, P.Y. CARRY & M. DOJAT. Rôle
des données, informations et connaissances dans la construction de
scénarios médicaux. Revue d’intelligence artificielle, vol. 17, no. 13, pages 207–212, Lavoisier, 2003. 11, 65, 66
[Sirin07]
E. Sirin, B. Parsia, B.C. Grau, A. Kalyanpur & Y. Katz. Pellet :
A practical owl-dl reasoner. Web Semantics : Science, Services
and Agents on the World Wide Web, vol. 5, no. 2, pages 51–53,
Elsevier, 2007. 78
BIBLIOGRAPHIE
229
[Smith80]
RG Smith. The contract net protocol : High-level communication
and control in a distributed problem solver. IEEE Transactions on
computers, vol. 100, no. 29, pages 1104–1113, 1980. 212
[Stankovsky05]
M. Stankovsky. Creating the discipline of knowledge management. Butterworth-Heineman, 2005. 67
[Stein05]
A. Stein, P. Hawking & P. Sharma. A classification of U-commerce
location based tourism applications. In AUSWeb05, The Eleventh
Australasian World Wide Web Conference, pages 2–6, 2005. 49
[Strugeon08]
Emmanuelle Grislin-Le Strugeon, Abdouroihamane Anli & Emmanuel Adam. Agent-oriented information systems iv, chapitre
A Methodology to Bring MAS to Information Systems, pages
90–104. 2008. 112
[Subercaze07]
Julien Subercaze, Pierre Maret, Ngoc Minh Dang & Ken Sasaki. Context-aware applications using personal sensors. In SocialInformatics ICST (Institute for Computer Sciences & Telecommunications Engineering), editeurs, BodyNets ’07 : Proceedings of
the ICST 2nd international conference on Body area networks,
pages 1–5, July 2007. 23, 39
[Subercaze08]
Julien Subercaze, Pravin Pawar, Pierre Maret & Jacques Calmet.
A Service Oriented Framework for Mobile Business Virtual Communities . In Willy Picard Luis M. Camarinha-Matos, editeur, Virtual
Enterprises and Collaborative Networks, pages 493–500. Springer, September 2008. 23, 24, 39
[Subercaze09]
Julien Subercaze, Christo El Morr, Pierre Maret, Adrien Joly,
Matti Koivisto, Panayotis Antoniadis & Masayuki Ihara. Towards
Successful Virtual Communities. In International Conference on
Enterprise Information Systems, May 2009. 48
[Sugimoto06]
C. Sugimoto, M. Tsuji, G. Lopez, H. Hosaka, K. Sasaki, T. Hirota
& S. Tatsuta. Development of a behavior recognition system using wireless wearable information devices. Wireless Pervasive Computing,
2006 1st International Symposium on, pages 1–5, 2006. 36
[Swaminathan98]
J.M. Swaminathan, S.F. Smith & N.M. Sadeh. Modeling supply
chain dynamics : A multiagent approach. Decision Sciences, vol. 29,
no. 3, pages 607–632, Blackwell Publishing Ltd, 1998. 87
[Tsarkov06]
D. Tsarkov & I. Horrocks. FaCT++ description logic reasoner :
System description. Lecture Notes in Computer Science, vol. 4130,
page 292, Springer, 2006. 78
230
BIBLIOGRAPHIE
[Tsoukas96]
H. Tsoukas. The firm as a distributed knowledge system : a constructionist approach. Strategic management journal, pages 11–25, John
Wiley and Sons, 1996. 68
[van Diggelen05]
Jurriaan van Diggelen, Virginia Dignum, Ludger van Elst &
Andreas Abecker, editeurs. Proceedings of the aamas 2005 workshop on agent-mediated knowledge management (amkm-2005),
2005. 70
[van Elst04a]
Ludger van Elst, Virginia Dignum & Andreas Abecker, editeurs.
Agent mediated knowledge management, international symposium amkm 2003, stanford, ca, usa, march 24-26, 2003, revised
and invited papers, volume 2926 of Lecture Notes in Computer
Science. Springer, 2004. 19, 218
[van Elst04b]
Ludger van Elst, Virginia Dignum & Andreas Abecker, editeurs.
Agent mediated knowledge management, international symposium amkm 2003, stanford, ca, usa, march 24-26, 2003, revised
and invited papers, volume 2926 of Lecture Notes in Computer
Science. Springer, 2004. 70
[Vassileva99]
J. Vassileva, J. Greer, G. McCalla, R. Deters, D. Zapata, C. Mudgal & S. Grant. A multi-agent approach to the design of peer-help
environments. In Proceedings of AIED, volume 99, pages 38–45,
1999. 118
[Vilmer05]
J.B.J. Vilmer. Réalité, Vérité et Connaissance. Une alternative à la
traditionnelle «Justified True Belief», inspirée de la «Wirklichkeit» du
Manuscrit de 1942 de W. Heisen. 2005. 63
[Virginia Dignum04]
Andreas Abecker Virginia Dignum Ludger van Elst, editeur. Proceedings of the ecai-2004 workshop on agent-mediated knowledge management (amkm-2004, 2004. 70
[Wac06]
K. Wac, A. van Halteren & D. Konstantas. QoS-Predictions Service :
Infrastructural Support for Proactive QoS-and Context-Aware Mobile
Services (Position Paper). In On the Move to Meaningful Internet
Systems 2006 : OTM 2006 Workshops, pages 1924–1933. Springer,
2006. 41
[Wang05]
Y.H. Wang, W.N. Wang & Y.H. Yen. An intelligent semantic agent
for e-learning message communication. In Advanced Information
Networking and Applications, 2005. AINA 2005. 19th International Conference on, volume 2, 2005. 119
[Weber68]
M. Weber, G. Roth & C. Wittich. Economy and society. New York,
page 4, 1968. 26
[Weissman00]
D. Weissman. A social ontology. Yale Univ Pr, 2000. 49
BIBLIOGRAPHIE
231
[Weithoener06]
T. Weithoener, T. Liebig, M. Luther & S. Boehm. What’s Wrong
with OWL Benchmarks ? In Proceedings of the Second International Workshop on Scalable Semantic Web Knowledge Base
Systems (SSWS 2006), pages 101–114, 2006. 83
[Widyantoro01]
D.H. Widyantoro, T.R. Ioerger & J. Yen. Learning user interest
dynamics with a three-descriptor representation. Journal of the American Society for Information Science and Technology, vol. 52,
no. 3, pages 212–225, John Wiley & Sons, 2001. 55
[Wiig00]
K.M. Wiig. Knowledge management : an emerging discipline rooted
in a long history. Knowledge Horizons, Butterworth-Heinemann,
Boston, MA, pages 3–26, 2000. 67
[Wilson02]
T.D. Wilson. The nonsense of knowledge management. Information
Research, vol. 8, no. 1, pages 8–1, Tom Wilson/Lund University
Libraries, 2002. 66
[Wooldridge95]
M. Wooldridge & N.R. Jennings. Intelligent agents : Theory and
practice. Knowledge engineering review, vol. 10, no. 2, pages
115–152, Cambridge [England] ; New York, NY : Cambridge
University Press,[1984-, 1995. 85
[Wooldridge99]
M. Wooldridge. Intelligent Agents in G. Weiss,Multiagent Systems :
A Modern Approach to Distributed Artificial Intelligence, 1999. 11,
86, 89, 91
[Wooldridge09]
M. Wooldridge. An introduction to multiagent systems. Wiley,
2009. 18
[Zambonelli01]
F. Zambonelli, N.R. Jennings & M. Wooldridge. Organizational
abstractions for the analysis and design of multi-agent systems. Lecture notes in computer science, pages 235–252, Springer, 2001.
87
[Zarri99]
G.P. Zarri, E. Bertino, B. Black, A. Brasher, B. Catania, D. Deavin,
L. Di Pace, F. Esposito, P. Leo, J. McNaughtet al. CONCERTO,
an environment for the’intelligent’indexing, querying and retrieval
of digital documents. Lecture notes in computer science, pages
226–234, Springer, 1999. 75

Documents pareils