Les activités de recherche du nouveau groupe portent actuellement sur deux directions principales:
Tout l'environnement est hautement interactif. Il permet de "dessiner" une leçon sur une station de travail graphique et de générer automatiquement la majeure partie de l'implantation. Une autre caractéristique importante du système est qu'une partie de la spécification est en langage naturel.
Nous sommes convaincus que la combinaison d'une représentation visuelle avec du langage naturel permet une description de logiciels plus claire que ne le permettraient des langages strictement visuels. Cette combinaison permet de garder la description à un haut niveau d'abstraction, la rendant plus lisible par d'autres personnes. Cela permet aussi d'éviter que les concepteurs aient à spécifier trop de détails qui ont plus trait à l'implantation qu'à la spécification ou à la conception "au niveau du problème".
L'expérience passée dans le domaine de la programmation visuelle montre qu'il n'existe pas de paradigme visuel unique qui convienne bien à tous les genres d'applications. De même, il apparait que ces paradigmes visuels sont le plus utile lorsqu'ils sont appliqués à des domaines bien spécifiques et combinés à des primitives textuelles. Il est communément accepté que l'expressivité des images est utilisée au mieux lorsqu'elle est appliquée à des descriptions d'un niveau d'abstraction plus élevé que la plupart des langages de programmation d'usage général.
Dans ce nouveau projet, nous voulons utiliser notre expérience passée en programmation visuelle pour explorer les nombreuses approches visuelles différentes qui sont utilisées pour décrire et développer des logiciels, puis essayer d'établir des ponts entre les approches les plus prometteuses pour les rendre interopérables et complémentaires. Nous voulons construire un système de développement de logiciel qui offre plusieurs paradigmes visuels différents qui peuvent être combinés pour développer des applications complexes, chaque formalisme prenant le relai là où l'expressivité de l'autre commence à être inefficace. Les développeurs devraient donc être capable d'utiliser, pour chaque partie d'une application, le formalisme/paradigme qui leur convient le mieux pour cette partie.
Cette combinaison de différents formalismes n'est possible que si un mécanisme d'intégration est mis en place pour les rendre interopérables. Nous avons l'intention d'intégrer les formalismes suivants: variantes de réseaux de Petri, hypertextes, hypermédia, interface conversationnel et description du flot de contrôle (avec le formalisme graphique de scripts que nous avons développé pour les logiciels d'enseignement assisté par ordinateur), interfaces utilisateur graphiques conventionnelles et représentation visuelle d'objets pour la programmation orientée objet.
Des articles en français ainsi que des articles en anglais, décrivant nos activités en Programmation Visuelle de didacticiels, sont disponibles.
Nous avons aussi rassemblé des informations générales sur les langages visuels et la Programmation Visuelle
Durant la période initiale de recherche (depuis avril 1993), nous avons travaillé sur la spécification détaillée du système ainsi que sur les besoins et la conception d'un premier prototype utilisé dans des activités expérimentales.
La version actuelle du système consiste principalement en un système de classification et un système de recherche. Le système de classification a un mécanisme d'acquisition de connaissances qui extrait automatiquement des informations lexicales, syntaxiques et sémantiques à partir des descriptions de logiciels. Ce système utilise cette connaissance pour créer une représentation interne du genre "frame" (qui constituera l'unité d'indexation pour ce composant). Les requêtes de l'utilisateur sont elles aussi traitées par le système de classification. Le système de recherche examine et évalue les candidats possibles à la réutilisation, sur la base d'une valeur de proximité entre les "frames" associés à la requête et ceux des descriptions de logiciels dans la base de connaissance.
Nous avons défini un formalisme sémantique qui établit les règles pour extraire des informations du texte en langage naturel et pour construire les structures sémantiques utilisées comme unités d'indexation. Ont également étés définis un langage pour la modélisation des structures sémantiques ainsi qu'un ensemble, pour la base de connaissances, de "frames" génériques correspondants à ce modèle. Deux mécanismes de recherche sont proposés: un mécanisme de recherche principal, basé sur la similarité des structures sémantiques et un mécanisme complémentaire, basé sur la correspondence de phrases nominales dans les structures sémantiques. Le mécanisme principal de recherche assure la précision tandis que le mécanisme secondaire augmente les valeurs de rappel (recall). Des mesures de similarité ont été définies pour calculer la proximité (closeness) entre simples termes, phrases nominales et structures sémantiques.
Nos premières expériences comparatives ont montré des performances de recherche excellentes, considérablement supérieures à celles des systèmes actuels de recherche par mots clés.
Diverses activités sont prévues pour la prochaine période de subventionnement. Nous comptons faire des expériences avec un prototype du système pour évaluer l'efficacité de recherche (retrieval effectiveness) et la justesse du processus d'interprétation. D'autres travaux seront effectués afin d'augmenter les capacités du système (support pour les descriptions de logiciels complexes, support pour le processus d'adaptation, etc.).
Des articles en anglais ainsi que le Manuel de Référence de ROSA sont disponibles sur ce sujet. Nous sommes aussi actifs dans le domaine de l'utilisation du "World-Wide Web" à des fins éducatives. Une liste d'articles en anglais est accessible.
Bertrand Ibrahim