• Aucun résultat trouvé

Construire une application déclarative

Détaillons maintenant le processus de conception d’un modeleur déclaratif. Au départ, le concepteur arrive avec son problème : concevoir un modeleur déclaratif pour construire des objets dans un domaine d’application spécifique. Plutôt que de refaire tous les outils, la plate- forme CordiFormes lui en propose un certain nombre. Nous supposerons ici que le concepteur désire construire une application complète, c’est-à-dire qu’il utilise au maximum les outils mis à sa disposition. La conception se déroule en huit phases (selon l’application, certaines ne sont pas indispensables) :

1. Construction des objets de la scène :

• création des concepts ou reprise (ou modification) de concepts de la base de con- naissance,

• détermination de la sémantique et des caractéristiques des domaines ainsi que des propriétés de base utilisables ;

2. Construction du concept « scène » : sémantique et paramètres globaux ;

3. Mise en place des relations entre les objets de la scène (contraintes sémantiques,…) ; 4. Construction des concepts liés à des caractéristiques globales ;

5. Détermination du mode de génération désiré ;

6. Implémentation des méthodes spécifiques de génération si les méthodes standard ne sont pas suffisantes ;

7. Mise en place des dialogues utiles ; 8. Utilisation de l’application prototype.

Détermination des concepts

Choix du domaine

Détermination des concepts générateurs

Détermination des concepts non-générateurs

Choix des propriétés de base

Détermination des méthodes de génération spécifiques

Définition des éléments d'interface

Noyau

Définition de l'application

Couche interface Couche application prototype

Les phases essentielles sont les quatre premières. Elles définissent la sémantique liée au domaine d’application. Elles constituent la base de connaissance du modeleur déclaratif. Tous les éléments que nous avons rencontrés dans ces phases seront détaillés dans les chapitres qui suivent.

4. Conclusion

Les caractéristiques essentielles attendues pour notre projet CordiFormes sont : la simpli- cité, la souplesse, l’efficacité, l’extensibilité, la réutilisabilité et le prototypage aisé. Cette plate-forme est constituée de trois couches : le noyau, les éléments d’interface et l’application prototype. A l’aide de ces outils ainsi que ceux d’aide à la conception, un concepteur doit pouvoir construire assez facilement un modeleur déclaratif de son choix.

Dans la suite, nous étudierons d’abord les éléments principaux du noyau, en particulier, les concepts, les tâches de génération qui leurs sont associées et les contraintes (chapitre II.2). Ces éléments sont issus de la notion de concept de la partie précédente. Nous verrons com- ment est organisée la structure de la scène et comment, à partir de celle-ci, mettre en place une méthode de génération générale.

Puis, nous aborderons tous les types de propriétés, éléments de la description, leur structure et les optimisations que l’on peut en tirer (chapitre II.3). Nous retrouverons toutes les pro- priétés présentées dans la première partie. Nous exploiterons leur formalisation pour les im- plémenter et proposer des optimisations possibles de la génération.

Le chapitre II.4 sera consacré à la présentation d’autres éléments importants du noyau : les modules de description, de génération et de prise de connaissance. Ces éléments sont chargés d’exploiter les différentes connaissances et les différents éléments de la plate-forme par rap- port aux grandes phases d’un modeleur déclaratif.

Ensuite, nous compléterons la présentation du projet par l’étude des deux autres couches : la couche interface et la couche application prototype (chapitre II.5).

Le chapitre II.6 sera consacrée à la présentation de trois applications développées à partir de CordiFormes. Elles sont simples mais permettent de mettre en avant les différentes caracté- ristiques de notre plate-forme. Elles soulignent toutes la simplicité de développement où le concepteur n’a pas à s’occuper à mettre en place toutes les techniques de génération nécessai- res.

Enfin, nous conclurons cette partie par l’introduction aux outils d’aide à la conception et d’apprentissage qui devront être développés afin de faciliter le travail du concepteur (chapitre II.7).

C

HAPITRE

II.2 : N

OYAU ET GÉNÉRATION DE LA SCÈNE

1. Introduction

Après avoir présenté les grandes lignes du projet CordiFormes, nous allons nous intéresser aux éléments constitutifs du noyau. Nous étudierons d’abord les éléments les plus importants de ce noyau : les concepts. Ce sont eux qui représentent essentiellement le coeur de la plate- forme, car ils dépendent fortement du domaine d’application. Ce sont ces éléments que le concepteur doit « travailler » en priorité. Pour simplifier la manipulation des différents élé- ments de ce noyau, nous avons choisi d’utiliser une représentation orientée objet. Le concep- teur se contente alors de surcharger certaines méthodes importantes, de donner une valeur à certaines variables ou de les modifier. Il peut aussi ajouter des variables qui lui semblent né- cessaires.

Les éléments constitutifs du noyau sont directement issus du formalise exposé dans la par- tie I de ce document. Tout le noyau est construit autour de l’implémentation des notions de concept, domaine et propriété.

Dans un premier temps, nous allons élargir et détailler la notion de concept vue dans la première partie en considérant que tous les objets ou parties d’objets manipulés sont des con- cepts (section 2), c’est-à-dire aussi bien les caractéristiques « descriptibles » que les objets intermédiaires (ébauches) ou finaux. Dans la section 3, nous regarderons comment ces con- cepts sont structurés par rapport à l’univers du domaine d’application. Nous étudierons en- suite la génération de ces objets à l’aide de tâches de génération. Après avoir présenté des méthodes plus classiques (section 4), nous étudierons la génération récursive. C’est une mé- thode de génération systématique indépendante du domaine d’application. Cependant, une méthode automatique n’est pas toujours adaptée du point de vue de la performance (nombre de solutions explorées, temps pour construire une solution…). Nous verrons donc dans la sec- tion 6 le moyen de personnaliser la génération en introduisant localement des tâches de géné- ration plus spécifiques. Puis, après nous être intéressés à la génération d’un objet, nous étudie- rons l’organisation de la génération des objets afin de produire une scène (section 7). Toutes ces méthodes supposent que les concepts sont indépendants entre eux. Or, cette hypothèse n’est pratiquement jamais vérifiée. Il est indispensable d’introduire des contraintes de cons- truction permettant de limiter le nombre d’objets invalides dès la construction. L’introduction et la gestion de ces contraintes seront présentées à la section 8. Nous finirons ce chapitre par une étude des conséquences de l’utilisation de ces contraintes sur la génération.