13.07.2015 Views

Assistance au calage de modèles numériques en hydraulique ... - TEL

Assistance au calage de modèles numériques en hydraulique ... - TEL

Assistance au calage de modèles numériques en hydraulique ... - TEL

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPITRE 5 IMPLÉMENTATION D’UN SYSTÈME OPÉRATIONNELUne plate-forme pour la génération <strong>de</strong> moteursL’expéri<strong>en</strong>ce accumulée avec le moteur OCAPI a permis <strong>de</strong> définir une librairie d’élém<strong>en</strong>tscommuns pour construire <strong>de</strong>s moteurs <strong>de</strong> pilotage <strong>de</strong> programmes (Vinc<strong>en</strong>tet al., 1996). Cette librairie a été intégrée dans une plate-forme – nommée LAMA –d’ai<strong>de</strong> à la construction <strong>de</strong> moteurs <strong>de</strong> systèmes à base <strong>de</strong> connaissances (Moisan, 1998).De nombreux moteurs ont pu être construits à partir <strong>de</strong> cette plate-forme (Crubézyet al., 1998; Thonnat et al., 1999) : PULSAR (van <strong>de</strong>n Elst, 1996), appliqué à la détectiond’obstacles pour la conduite <strong>de</strong> véhicules, MEDIA (Crubézy et al., 1995, 1997),appliqué à la gestion d’images médicales, mais <strong>au</strong>ssi PEGASE+.5.2.2 Outils pour le pilotage <strong>de</strong> programmesCette section vise à décrire plus précisém<strong>en</strong>t les <strong>de</strong>ux outils qui vont nous servirpour la construction du système d’assistance <strong>au</strong> <strong>calage</strong> CARMA-1 : le moteur d’infér<strong>en</strong>cePEGASE+ et le langage textuel <strong>de</strong> représ<strong>en</strong>tation <strong>de</strong> connaissances associé, appeléYAKL 10 . Ceux-ci sont décrits précisém<strong>en</strong>t par Moisan (2003) 11 et nous repr<strong>en</strong>ons iciseulem<strong>en</strong>t les gran<strong>de</strong>s lignes <strong>de</strong> ces <strong>de</strong>ux outils, retracées par ailleurs dans différ<strong>en</strong>tsarticles (Moisan et Ziébelin, 2000; Thonnat et Moisan, 2000; Moisan, 2002).YAKL, un langage <strong>de</strong> représ<strong>en</strong>tation <strong>de</strong> connaissancesLe langage YAKL permet <strong>de</strong> r<strong>en</strong>dre compte <strong>de</strong> manière à la fois lisible et formelle <strong>de</strong>sconnaissances nécessaires à la tâche <strong>de</strong> pilotage <strong>de</strong> programmes (Moisan et al., 1997).Sa proximité du langage ✭ courant ✮ permet une capitalisation <strong>de</strong> ces connaissances <strong>en</strong>vue d’un échange, tout comme les livres <strong>de</strong> connaissances proposés par Picard (Moisan etErmine, 2000), et son caractère formel facilite la traduction <strong>de</strong> ces connaissances dansun langage <strong>de</strong> programmation – ici le C++ – <strong>en</strong> vue <strong>de</strong> leur opérationalisation. Celangage comporte trois types princip<strong>au</strong>x d’élém<strong>en</strong>ts : les argum<strong>en</strong>ts, les opérateurs et lescritères, <strong>au</strong>xquels se rajout<strong>en</strong>t les fonctionnalités et les requêtes.Argum<strong>en</strong>tsLes argum<strong>en</strong>ts permett<strong>en</strong>t <strong>de</strong> décrire les élém<strong>en</strong>ts utilisés et produits par les différ<strong>en</strong>tsprogrammes. La figure 5.2 prés<strong>en</strong>te un exemple <strong>de</strong> déclaration d’une part d’untype d’argum<strong>en</strong>t et d’<strong>au</strong>tre part d’une instance <strong>de</strong> ce type d’argum<strong>en</strong>t. Dans le s<strong>en</strong>s<strong>de</strong>s langages ori<strong>en</strong>tés objet, un type d’argum<strong>en</strong>t correspond à une classe et une instanced’argum<strong>en</strong>t à un objet, c’est-à-dire une instance d’une classe.OpérateursUn opérateur correspond soit à un programme – il est désigné sous le nom <strong>de</strong> PrimitiveOperator – soit à un <strong>en</strong>chaînem<strong>en</strong>t <strong>de</strong> programmes – il est alors décrit comme unComposite Operator. Un opérateur composite peut représ<strong>en</strong>ter différ<strong>en</strong>ts types d’<strong>en</strong>chaînem<strong>en</strong>ts<strong>de</strong> programmes : exécution séqu<strong>en</strong>tielle, alternative ou parallèle. La figure 5.3représ<strong>en</strong>te l’arboresc<strong>en</strong>ce <strong>de</strong>s opérateurs utilisés pour réaliser une simulation avec leco<strong>de</strong> MAGE.10. Pour Yet Another Knowledge Language.11. Le rapport est téléchargeable sur www.inria.fr127

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!