Cordiformes

Le projet Cordiformes :
une plate-forme pour la création de modeleurs déclaratifs

Objectifs

Un certain nombre de projets ont vu le jour, chacun visant à étudier des aspects particuliers de la modélisation déclarative. Bien que différents, ils mettent en oeuvre des techniques similaires. Les travaux récents [LuD95,CDMM97c] s’appliquent à faire un bilan et une synthèse des travaux en modélisation déclarative. Les réflexions se portent essentiellement sur la définition des éléments fondamentaux d’un modeleur, leur utilisation ainsi que sur la mise en place d’outils permettant de les exploiter. L’attention se porte aussi sur la mise en place de modèles de génération, permettant de rendre compte des modes de conception à l’aide de modeleurs déclaratifs [CDMM97c]. Il est donc nécessaire de formaliser les connaissances manipulées et de proposer une plate-forme pour la construction de modeleurs déclaratifs exploitant ce formalisme et proposant des outils souples et génériques. Le projet CordiFormes [Des98] s’intéresse à la mise en oeuvre d’un ensemble d’outils, une plate-forme, visant à faciliter le développement de futurs modeleurs déclaratifs

Pour mettre en place l’unification de ces outils, nous définissons un modèle de représentation des connaissances [Des96b]. Ce modèle est construit comme une synthèse, une généralisation, de modèles présentés dans les différentes études [Col90,Chau94]. Il trouve donc naturellement sa place dans une plate-forme comme support de l’ensemble des connaissances du modeleur et base essentielle pour des méthodes de génération performantes et générales. Notre objectif est de proposer une base de connaissances et d’outils permettant de développer facilement un modeleur déclaratif indépendamment de la machine utilisée. Le concepteur [1] peut utiliser des méthodes générales et des objets déjà implémentées, ou proposer les siens. Il construit ainsi le modèle de représentation des objets spécifiques de son application (figure 1). Les modeleurs produits à l’aide de CordiFormes sont des applications indépendantes mais aussi des modules que le concepteur peut greffer sur d’autres applications.

Figure 1. CordiFormes dans le processus de création d'un modeleur déclaratif

Le concepteur peut créer facilement et rapidement un modeleur déclaratif. Il lui suffit de fournir les éléments spécifiques à son domaine d’application comme les objets manipulés, les algorithmes de construction et les caractéristiques (ou concepts) de la scène. Il peut les ajuster en fonction de ses propres besoins.

 

 

Caractéristiques de la plate-forme

Les objectifs que nous nous sommes fixés pour CordiFormes imposent un certain nombre de caractéristiques de la plate-forme. Celles que nous attendons sont entre-autre :

  • La simplicité. L’idée est d’éviter au concepteur d’être noyé dans une multitude de paramètres à déterminer et de choix possibles. Dans le cas le plus simple, il se contente d’indiquer les objets de son domaine d’application. Il peut ensuite immédiatement décrire une scène, générer les solutions et en prendre connaissance. La méthode de génération ainsi que les propriétés utilisables sont produites automatiquement.
  • La souplesse de programmation. Le concepteur doit pouvoir construire un modeleur déclaratif contenant ses propres méthodes de génération. La plate-forme lui fournit des outils spécifiques adaptés aux problèmes de la modélisation déclarative.
  • La efficacité. La génération par défaut (génération récursive) est générale mais, du point de vue de la performance, pas forcément bien adaptée au problème considéré. Le concepteur peut proposer ses propres outils et notamment des techniques de génération spécifiques aux concepts utilisés.
  • L’extensibilité. Les structures et les algorithmes proposés sont suffisamment généraux pour pouvoir s’appliquer à la plupart des problèmes posés mais ne sont pas toujours adaptés aux problèmes du concepteur. Celui-ci est donc en mesure de redéfinir totalement ou partiellement les éléments de CordiFormes. La cohérence dans l’utilisation des outils (afin de s’assurer du bon fonctionnement des éléments clés) est assurée par CordiFormes.
  • La réutilisabilité. CordiFormes propose une base de connaissance évolutive de concepts et d’outils courants qui constituent l’ontologie [CBB96] de la modélisation déclarative et de la modélisation géométrique [DeM97a, DeM97b]. Cette base permet au concepteur de ne porter sont attention que sur les objets spécifiques du domaine d’application.
  • Le prototypage rapide du modeleur. De bonnes techniques de description et de prise de connaissance sont indispensables à un modeleur déclaratif. CordiForme propose ces outils par défaut, permettant au concepteur de développer rapidement l’interface de son modeleur et un prototype.

Remarque : Pour assurer la mise en oeuvre souple et efficace de ces caractéristiques et pour assurer la portabilité de la plate-forme et des modeleurs produits, nous avons choisi de développer CordiForme en Java.

Les trois couches de CordiFormes

Figure 2. Niveaux d'utilisation et éléments constitutifs de CordiFormes

Les caractéristiques que nous avons définies dans les paragraphes précédents nous ont conduit à structurer CordiFormes en trois couches (figure 2) :

  • La couche noyau. Cette couche est composée d’algorithmes et de structures classiques que le concepteur peut éventuellement redéfinir et paramétrer pour créer son modeleur déclaratif. Elle contient également la bibliothèque d’objets et de méthodes réutilisables qu’il peut enrichir. Cette bibliothèque est remise à jour par le concepteur qui peut y introduire les éléments qu’il veut réutiliser pour d’autres applications.
  • La couche interface. Cette couche regroupe un ensemble de dialogues standard permettant la description (sélection des objets, construction de la description à l’aide de propriétés…), la génération et la prise de connaissance (affichage des solutions, mise en évidence des propriétés, sélection de bons points de vue…) et d’autres éléments de dialogues.
  • La couche prototype. Cette couche permet de produire un premier prototype du modeleur escompté. Elle utilise les outils des couches interface et noyau. Elle correspond à un modeleur déclaratif minimal permettant de faire une saisie de description, de générer les scènes correspondantes et d’en prendre connaissance.

En plus des outils directement liés à la construction du futur modeleur, la plate-forme doit proposer un ensemble d’outils d’aide à la conception du modeleur [DeT98]. L’objectif est de proposer des outils de haut niveau permettant d’aider le concepteur à comprendre et à préciser son problème, à concevoir son application et à valider ses choix. Ces outils (systèmes experts, systèmes d’aide à la décision, systèmes de validation…) permettent de guider le concepteur sur les choix des techniques à utiliser et les éléments essentiels à programmer. Le but est d’obtenir un système minimal et de produire facilement et rapidement une première maquette de l’application.

Exemples d’applications créées avec CordiFormes

[1] Nous appellerons concepteur une personne construisant un modeleur déclaratif et utilisateur une personne utilisant un modeleur déclaratif pour construire les formes qu’il désire.