Action Color-2000


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
 

1. Objectif scientifique


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.
 

2.Déroulement de la collaboration

Au cours de l'année nous avons

2.1. Prototype


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 .

  •  Le 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.

    Ce premier prototype, qui illustre les apports de l'outil de répartition DICO* aux systèmes à base de connaissances, est prometteur. En effet, il
    permet de montrer que l'application peut évoluer dans le temps, s'adapter aux besoins de l'expert sans nécessiter une recompilation de la base
    de connaissances. L'une des prochaines étapes va être de consolider l'application afin de vérifier que les temps de  réponse sont raisonnables sur des réseaux
    longues distances. De plus, nous avons défini des règles de fusion entre les interactions. Il nous faut  valider ces règles "sur le terrain" lorsque
    plusieurs experts posent des interactions simultanément sur un même objet, le comportement obtenu est-il toujours conforme aux attentes de
    l'expert ? L'autre aspect important est de vérifier la  résistance à la montée en charge, si un serveur est fortement sollicité, simultanément par
    plusieurs clients. Ensuite nous nous attacherons aux autres aspects de la distribution des composants d'un système à base de connaissances
    dont la composition de services et la prise en compte du concept de groupes.
     

    2.2. Etude théorique


    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 .
     

    2.3. Séminaire

    Un séminaire a été organisé sur le thème "Systèmes distribués et Connaissances" les 27et 28 novembre à Sophia Antipolis.
    Le planning et certaines présentations de ce séminaire sont accessibles sur le site:
    http://www-sop.inria.fr/orion/Systemes_distribues/seminaire.html.

    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.
     

    3. Apports de la collaboration


    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.