previous up next contents
Précédent : Construction de moteurs Remonter : Pilotage de programmes Suivant : Application au traitement

Construction de bases de connaissances

Langage d'expression des connaissances

Participants : Sabine Moisan, Régis Vincent, Maria del Mar Marcos, Monica Crubézy, Franck Moncorgé

  Nous avons développé un langage d'expression des connaissances (appelé YAKL) permettant à un expert de décrire une base de connaissances en pilotage de programmes. Une telle base de connaissances se décompose en quatre parties : description des données, description des buts et opérateurs et description des règles d'inférences associées. YAKL est indépendant du langage cible dans lequel le moteur de pilotage est écrit (Lisp ou C++).

Pour faciliter l'écriture dans ce langage, nous avons construit des analyseurs pour les quatre parties, afin de traduire la base de connaissances vers les structures informatiques des langages cibles. Pour cela nous utilisons les outils de génération d'analyseurs lexicaux et syntaxiques flex et bison. De plus, un vérificateur de cohérence de la partie concernant les règles (3.1.2) a été intégré et un mode emacs spécifique a été développé.

Plusieurs bases de connaissances utilisant ce langage sont en cours de développement.

Validation et vérification de bases de connaissances

Participants : Maria del Mar Marcos, Sabine Moisan

Mots clefs : cohérence,base de connaissances

  Le problème de la validation et de la vérification de systèmes à base de connaissances est crucial pour des systèmes autonomes, afin d'en assurer la robustesse. C'est un problème plus difficile que la validation de logiciels classiques. Il est intéressant de pouvoir s'appuyer non seulement sur des propriétés des modes de représentation des connaissances (schémas et règles), mais aussi sur un modèle du raisonnement suivi. C'est l'approche que nous avons choisie. Nous étudions des systèmes à base de connaissance construits grâce à des environnements de développement dédiés à une classe de problème, intégrant donc une modélisation fine de cette classe de problème. Cette approche nous offre un cadre approprié pour définir des méthodes de validation et de vérification incrémentales, adaptées à des classes de problèmes.

La classe de problème qui nous intéresse en premier est le pilotage de programmes. Notre but est de fournir aux experts une aide incrémentale pendant la construction d'un système, en intégrant la validation et la vérification dans la méthodologie de développement du système à base de connaissances. Ceci implique des vérifications structurelles, lexicales et syntaxiques aussi bien que sémantiques (sur le rôle des objets ou la validité de leurs relations, par exemple).

Nous avons tout d'abord approfondi l'état de l'art en vérification et validation de systèmes à base de connaissances. Une seconde étape a consisté à analyser les besoins en matière de vérification des systèmes à base de connaissances en pilotage de programmes et à spécifier un premier outil à partir de cette analyse. Cet outil se focalise sur les règles de production attachées aux divers objets (opérateurs en particulier). L'implémentation a abouti à un vérificateur de cohérence des règles et de leurs relations avec les opérateurs ou les buts. Cet outil a été testé sur des bases de connaissances existantes en pilotage de programmes (en particulier des programmes de vision pour la détection d'obstacles routiers, et des programmes de traitement d'images médicales). Ces travaux ont donné lieu à une publication, présentée en octobre [7].


previous up next contents
Précédent : Construction de moteurs Remonter : Pilotage de programmes Suivant : Application au traitement