DIstribution de COmposants
de Systèmes à BAse de Connaissances
(DICOSBAC)
Participants
Projet Orion
(S. Moisan) et Action Tick (A.
Ressouche) de l'Inria Sophia
Projets Sports
(J-P. Rigault) et Rainbow (A-M.
Dery & M. Fornarino) de l'I3S
Les systèmes à base de connaissances (SBC), pour le
pilotage de codes en particulier, sont amenés à évoluer
vers des architectures distribuées.
Les applications en grandeur réelle impliquent en effet de plus
en plus de participants (inter ou intra-entreprises) sur divers sites.
Les avancées
de la technologie des réseaux, alliées aux techniques
de pilotage de codes permettent d'envisager l'accès collaboratif
à des codes distants et le
partage de codes entre équipes de différentes disciplines.
Les applications sont multiples, on peut citer : le partage de bibliothèques
de codes
entre équipes de développement/ recherche, en vue de
comparaison de résultats, l'accès à des codes issus
de diverses équipes d'un même
domaine par des étudiants dans ce domaine, ou l'utilisation
dans des domaines applicatifs (médecine, biologie, agronomie) de
codes complexes
(de traitement et d'analyse d'images par exemple).
Le pilotage de codes permet ces partages et ces échanges sans
que le source des codes ne soit diffusé mais en rendant possible
le seul partage
de la compétence d'utilisation des codes.
Pour que cela soit possible il devient nécessaire d'étudier
les différentes modalités de distribution d'un SBC. En pilotage,
un SBC se décompose
en un moteur (lui-même décomposable en sous-parties),
une base de connaissances, des interfaces graphiques, les codes à
piloter et les
données. Ces différents constituants peuvent être
localisés sur différents sites. Non seulement les codes
et/ou les données ne sont pas
obligatoirement sur le même site, mais des parties du moteur
d'inférence lui-même peuvent être délocalisées,
pour des raisons de
performances, de particularités matérielles, etc. La
capacité d'un système à base de connaissances à
s'adapter en fonction de l'introduction de
nouvelles données ou composants, de la défaillance de
certains services ou de la volonté de prendre en compte de nouvelles
technologies est un
autre pré-requis à sa distribution.
La collaboration a donné lieu a des résultats à
divers niveaux : prototype informatique, étude
théorique et séminaire interdisciplinaire.
Les
apports de cette action sont prometteurs
pour la poursuite de nos recherches communes.
Nous avons étudié une première étape
vers la distribution de SBC : offrir une interface graphique de trace et
de contrôle à distance de bases de
connaissances. Cette interface, évolutive et adaptable selon
les besoins des experts, peut être déportée sur des
clients légers à distance de la
base de connaissances.
Le co-encadrement de stages nous a permis de développer un prototype
d'interface configurable sur un exemple simple de visualisation et de
contrôle d'un système à base de connaissances qui
simule un trafic routier .
Ce premier prototype, qui illustre les apports de l'outil de répartition DICO* aux systèmes à base de connaissances, est prometteur. En effet, ilLe premier stage (stage IUP d'Avignon) a tout d'abord étudié le framework Blocks (développé par Orion, dans la plate-forme logicielle Lama, pour la construction de moteurs de SBC). Ce framework, écrit en C++, nous sert de base pour la construction des systèmes à base de connaissances. L'interface doit permettre l'accès aux objets d'une base de connaissances conçus à l'aide des structures offertes par le framework. L'objectif est ,d'une part, de visualiser les objets de la base (certaines valeurs d'attributs, par exemple) et, d'autre part, de pouvoir changer certaines valeurs via l'interface (contrôle à distance). L'interface et le système à base de connaissances jouent donc tour à tour le rôle de serveur ou de client. Une première interface graphique a été réalisée en Java. Une librairie d'objets graphiques extensible et une librairie de comportements de trace et de contrôle également extensible ont été développés. Nous avons utilisé le modèle de gestion des interactions entre objets distants de l'équipe Rainbow. L'environnement de développement d'applications distribuées DICO*, développé à l'I3S par Rainbow, a ainsi pris en charge les aspects distribution et les interactions entre les objets C++ de la base de connaissances et leurs représentants Java distants. L'utilisation de DICO* nous a permis de :
- gérer les interactions entre l'interface et le système à base de connaissances (cf figure ci-desous)
- offrir une bibliothèque standard d'interactions adaptées aux besoins de la trace et du contrôle des systèmes à base de connaissances.
- permettre la définition de nouveaux schémas d'interactions et donc étendre cette bibliothèque lorsque l'expert veut contrôler ou tracer différemment la base.
Nous avons en parallèle commencé à étudier
avec Sports et Tick des outils de vérification des composants de
Blocks pour la construction de
moteurs de SBC. Pour répondre au problème général
de réutilisation et de distribution des composants de Blocks , nous
avons commencé à
étudier des techniques d'extension de ces composants assurant
la validité de la méthode et aussi permettant la simulation
des moteurs ainsi
construits.En particulier, nous avons commencé à modéliser
le comportement des moteurs en utilisant un modèle de calcul synchrone
possédant
une opération de raffinement qui permet de valider le comportement
des moteurs construits comme raffinement de l'existant. Cette approche
nous permet de nous appuyer sur des outils de preuve basés sur
des méthodes de model-checking et d'utiliser des simulateurs dédiés
auxlangages synchrones afin de développer des environnements
conviviaux et sûrs pour la conception de moteurs utilisables par
des
concepteurs de SBC.
Une première expérience pour modéliser le comportement
de certains objects de Blocks a été faite en utilisant le
langage Esterel et l'outil
graphique EsterelStudio qui utilise le formalisme des SynchCharts (défini
par Charles André de l'équipe Sports de l'I3S). Cet outil
comporte un
simulateur qui nous a permis de visualiser le comportement des objets
modélisés ainsi qu'un outil de preuve de propriétés
temporelles qui nous a
permis de vérifier certaines propriiétés de sécurité
attenantes au fonctionnement des moteurs. Cette première expérience
nous a permis de
mettre en évidence le bien fondé de la démarche
mais elle demande une adaptation tant au niveau de la définition
du modèle qu'au niveau de la
conception des outils. En effet, l'utilisation d'EsterelStudio est
difficile pour un non expert du langage Esterel et des méthodes
de vérification
mises en oeuvre.
Nous nous proposons maintenant d'utiliser l'outil Ptolemy II (de l'université
de Berkeley) qui, à partir de modèles hétérogènes
de systèmes
concurrents, permet de construire des simulateurs pour des applications
décrites dans ces modèles. Son principal intérêt
pour nous est d'être un
système ouvert où l'on peut définir son propre
modèle synchrone A partir de cette expérience, soit en enrichissant
le simulateur obtenu par un
système de preuves bien intégré au formalisme
des SBC, soit en redéfinissant le tout, nous espérons construire
un environnement bien adapté à
la manipulation des composants des SBC .
L'objectif du séminaire était de permettre des discussions
entre les personnes travaillant dans les domaines des techniques liées
aux systèmes
distribués et des systèmes pour la distribution des connaissances,
afin d'étudier les problèmes particuliers posés par
ce type de systèmes en
termes de distribution, et d'examiner l'adéquation des techniques
et méthodes actuellement disponibles et utilisées, en interaction
avec les
acteurs du domaine des techniques de distribution.
Le séminaire a réuni une trentaine de participants venus
de Sophia (Inria, I3S, ENSMP), de Paris (LIP6, Inria, EDF, CNAM), Grenoble
(IMAG,
Inria), Lyon (Univ. Lyon 3), Nantes (EMN, IRIN) et deux invités
du LRI et de FranceTelecom/CNET.
Les discussions ont été nombreuses et fructueuses et nous
envisageons que les résultats issus de ce séminaire (sous
forme d'articles individuels
et collectifs) puissent donner lieu à publication dans un numéro
spécial de L'OBJET.
La rencontre des ces deux communautés laisse présager
de nombreux travaux futurs qui devraient se concrétiser par la mise
en place d'un
nouveau sous groupe du GDR dont Sabine Moisan serait responsable.
Cette collaboration a permis de dégager les spécificités
des problèmes liés à la distribution de SBC, où
les techniques classiques (Java par
exemple) ne sont pas adaptées et donc pas directement utilisables.
Citons pour exemples le grand nombre d'objets potentiellement accessibles
à
distance (on cherche à rendre accessibles des attributs de frames)
ce qui peut entraîner des risques d'explosion mémoire si on
crée autant de
stubs que d'objets, non connus à l'avance, d'où des besoins
de distribution dynamique. De plus la trace associée au contrôle
du comportement
des objets de la base de connaissances à distance sort du cadre
des architectures client-serveur habituelles.
De plus, l'étude de modèles synchrones et les expériences
menées avec des outils existants ont montré que ce type de
modélisation est bien
adaptée pour décrire les comportements des composants
des SBC. L'utilisation directe des outils existants s'avère
difficile car l'application des
techniques de vérification du domaine synchrone aux SBC
est une approche nouvelle qui demande une adaptation des formalismes.
Cette collaboration dans un premier temps est complémentaire.
Un outil de simulation et de vérification des comportements
des composants des
SBC permet la spécialisation des bibliothèques
et des codes composant les SBC. L'utilisation d'un tel outil est
toutefois liée aux possibilités de
distribution des SBC.
Le séminaire a de plus démontré les apports mutuels
entre les travaux issus de l'intelligence artificielle et ceux issus des
technologies du réseau,
des objets et des systèmes d'informations. Si les besoins en
techniques de distribution aux SBC étaient les initiateurs de ce
séminaire, nous avons
pu constater que la complexité des applications et des systèmes
distribués actuels pourrait gagner à utiliser les techniques
d'IA.
L'apport au niveau des projets en présence a été
immédiat. La collaboration a apporté une application en grandeur
réelle pour l'outil DICO* du
projet RAINBOW et une validation des besoins et de la faisabilité
de la distribution pour le projet ORION. Nous espèrons d'ailleurs
poursuivre
cette collaboration tant en terme de publications que de réalisations.
Pour TICK, cette collaboration a montré qu'il est possible
d'adapter les méthodes de modélisation et de vérification
essentiellement mises en
oeuvre dans les formalismes concurrents à un domaine
nouveau. Nous envisageons de poursuivre cette collaboration, d'une
part , en réalisant
un outil de simulation et de preuves pour les SBC et,
d'autre part, en utilisant nos techniques de vérification pour valider
la distribution effectuée.