Sous-sections
Participants : Stéphane
Lavirotte, Loïc Pottier.
En juin, Stéphane Lavirotte a soutenu sa thèse sur la
reconnaissance de formules. Les nouveautés de son travail par
rapport à l'année passée concernent la connection à Maple via
le protocole OpenMath de son prototype de reconnaisseur de
formules mathématiques typographiées et manuscrites.
Participants : Yann Coscoy, Loïc
Pottier.
Yann Coscoy a soutenu sa thèse en septembre, sur la
traduction de preuves en langue naturelle. Une partie de son
travail est intégrée au système Coq. Dans le même esprit,
mais avec des méthodes différentes, Loïc Pottier a développé
une traduction textuelle des preuves Coq, compatible avec les
fonctionnalités de Pcoq : Pcoq permet maintenant d'afficher
la preuve en cours en langue naturelle (franÇais ou anglais).
Il est possible d'agir sur cette preuve textuelle à la souris
pour exécuter des tactiques ( proof-by-pointing),
ainsi que de contracter/développer des parties de la preuve.
Un soin particulier a été apporté à la présentation des
preuves par égalités successives. De nombreuses améliorations
sont encore à apporter, mais il est tout de même possible de
développer une preuve raisonnable uniquement dans ce mode
textuel; le but étant d'obtenir un environnement intuitif
pour Coq, utilisable dans l'enseignement.
Mots clés : XML, XSLT, DOM, édition
structurée, javabeans .
Participant : Claude
Pasquier.
L'étude de l'intégration des standards de manipulation de
données structurées dans les modules Figue et Aïoli a été
poursuivie durant cette année dans le cadre de l'action Dyade
Koala.
Notre package de
manipulation d'arbres a été transformé en un module abstrait.
Le VTP n'est plus désormais qu'une implémentation
particulière de ce module, DOM (Document Object Model) en
constituant une autre. Il suffit donc de choisir
l'implémentation désirée lors de l'utilisation. Ce
développement a été intégré à l'outil SmartTools.
Une représentation XML a été développée pour
toutes les données manipulées dans Aïoli et dans Figue.
Ainsi, l'arbre de syntaxe abstraite, les boîtes Figue, la
déclaration PPML et les chemins de sélection et de
modification disposent tous d'un module d'import/export en
XML. Les outils ont été modifiés pour travailler directement
sur les données XML. Cela a conduit à l'élaboration du module
XPPML, une évolution du processeur PPML, qui permet de
transformer un document XML en un document résultat en
fonction de régles de transformations, exprimées elles aussi
en XML.
Le fait que toutes les données soient
sérialisables dans un format standard permet d'envisager
l'utilisation d'Aïoli dans un environnement réparti. Un
prototype d'une telle application a été développé. Le
principe de fonctionnement retenu est que les interactions
effectuées par l'utilisateur sur une représentation concrète
ne sont pas directement répercutées sur le document. Elle
sont transmises à un serveur qui, après avoir exécuté les
actions nécessaires, informe chaque vue des modifications à
effectuer. Les données transitant sur le réseau ne concernent
pas des documents complets mais un encodage en XML des
opérations effectuées ou à effectuer. Un article écrit sur ce
sujet a été présenté au Workshop XOT2000. De plus amples
informations peuvent être retrouvées sur http://www.disi.unige.it/conferences/xot2000/xot2000.html.
Le principe d'échange de données XML tel qu'il a été
défini dans cette application a été utilisé comme base pour
l'élaboration du protocole de communication inter modules
dans l'outil SmartTools.
Nous avons commencé le développement
d'un outil qui facilite la construction d'éditeurs dédiés à
un format XML donné. Notre outil permet de fournir aux
utilisateurs un moyen de définir des éditeurs comme une
simple transformation XSLT décrivant la manière de présenter
les documents XML avec des beans Java. Nous étendons
ensuite automatiquement cette transformation pour assurer que
toute modification des objets java sera repercutée sur le
document XML. Nous fournissons une bibliothèque de
beans prêts à être utilisés, cependant, notre
architecture est suffisamment ouverte pour permettre
l'intégration de n'importe quel composant Java, graphique ou
non. Notre application repose sur le processeur XSLT Xalan
disponible en ``open sources'' et sur le format XML de
configuration de beans Java défini par IBM. Une
première diffusion de cet outil devrait se faire au début de
l'année 2001.
Participants : Ahmed Amerkad,
Yves Bertot, Pascal Lequang, Loïc Pottier, Laurence
Rideau.
Nous continuons à maintenir et à améliorer l'interface
graphique que nous avons développée pour le système de preuve
Coq. Le progrès notable réalisé en 2000 est la diffusion
d'une interface construite en Java. Cette interface est
utilisable aussi bien sous Unix que dans l'environnement
commercial Windows. En accédant ainsi à un environnement
grand public, nous espérons élargir la communauté
d'utilisateurs, ce qui devrait permettre de tirer de
meilleurs enseignements sur les besoins d'utilisateurs de
systèmes de preuve et la validité des solutions que nous
proposons.
Participants : Yves Bertot,
Olivier Pons.
Dans son travail de thèse, Olivier Pons a montré qu'il
était possible d'utiliser des outils d'affichage de graphes
pour améliorer la compréhension de développements formels.
Nous avons approfondi cette question, en nous intéressant
tout particulièrement aux outils qui permettent de réduire la
taille des graphes obtenus pour en rendre la compréhension
possible. Le résultat est un module utilisable en Coq qui
permet de produire différents types de graphes reliés à une
théorie Coq. Le format de sortie de ce module est adapté pour
être utilisé avec les outils d'affichage de graphes reconnus
du domaine. Nous diffusons ce module par Internet. Ce travail
est décrit dans [11].
Participants : Hanane Naciri,
Laurence Rideau.
Ce travail se place dans le cadre du développement
d'outils pour l'interaction homme machine dans les
environnements de démonstrations mathématiques. Nous
continuons à étendre et à améliorer notre outil d'affichage
bidimensionnel, incrémental et interactif Figue. Cet outil
permet de manipuler dynamiquement les objets structurés
représentant des documents comme des programmes ou des
formules mathématiques. Notre but est de présenter les objets
structurés, et en particulier les formules mathématiques, de
faÇon conviviale et d'offrir des interactions variées à la
souris, comme la sélection de sous-expressions afin de
pouvoir les manipuler dynamiquement (évaluation,
simplification, modification, génération de code, etc...).
Nous étudions le problème lié à la diversité des objets à
manipuler : du texte simple, des formules mathématiques pour
les systèmes de preuves ou de calcul formel, des images. Des
problèmes particuliers se posent pour les formules
mathématiques qui ont une structure complexe et
bidimensionnelle (matrices, intégrales, indices, ...).
L'architecture extensible de Figue nous a permis
d'introduire de nouveaux constructeurs graphiques
mathématiques (Racine,
Fraction Puissance, Matrice,...) qui formatent et affichent
dynamiquement la formule mathématique correspondante. Pour
ajouter ces constructeurs mathématiques, nous avons choisi de
suivre les recommandations du standard MathML (format basé
sur le langage XML pour la représentation des formules
mathématiques sur le Web http://www.w3.org/Math/).
Pour nous conformer au standard MathML dans le cadre des
environnements de preuve, nous développons une interface dans
Figue permettant d'interpréter et de générer du MathML. Cette
interface s'appuie sur les travaux de Claude Pasquier sur le
support de XML dans les environnements de preuves. Nous
assurons un lien entre les objets MathML affichés et leur
structure syntaxique, ce qui offre la possibilité d'interagir
avec les formules mathématiques et de les manipuler hors du
contexte graphique du document. Ces derniers travaux
représentent une base pour un développement futur d'un
éditeur MathML. Ces travaux ont fait l'objet d'une
communication à la conférence Cari'2000 [7].
Tous ces travaux ont éte intégrés à Pcoq.
D'autre part, nous avons passé du temps à comprendre en
détails l'algorithme de formatage de Figue, pour corriger des
problèmes désagréables à l'usage : coupures mal faites qui
engendraient des lignes trop larges.