250 likes | 412 Views
Affichage interactif, bidimensionnel et incrémental de formules mathématiques. Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000. Plan. Motivations Fonctionnalités de FIGUE Les formules mathématiques en FIGUE Exemple d’application Migration vers le Web. Motivations.
E N D
Affichage interactif, bidimensionnel et incrémental de formules mathématiques Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000
Plan • Motivations • Fonctionnalités de FIGUE • Les formules mathématiques en FIGUE • Exemple d’application • Migration vers le Web
Motivations • Aide au développement d’interfaces homme-machine pour les systèmes symboliques • Améliorer la qualité des interfaces • Manipuler des objets structurés hétérogènes texte, formules mathématiques, images ... • Outils de formatage • Bidimensionnels • Interactifs • Incrémentaux
Applications visées • Editeurs d'objets structurés pour le calcul symbolique • Systèmes de preuves • Systèmes de calcul formel • Migration vers des éditeurs Web exemple AMAYA Moyen terme, garder l ’objectif de se rapprocher des editeurs Web
Architecture Interface Graphique Edition Analyseur syntaxique Moteur d’affichage FIGUE Système symbolique Arbre de syntaxe abstraite Arbre de boîtes (représentation) PPML Moyen terme, garder l ’objectif de se rapprocher des editeurs Web Affichage sur écran
Plan • Motivations • Fonctionnalités de FIGUE • Les formules mathématiques en FIGUE • Exemple d’application • Migration vers le Web
Structure de boîtes en FIGUE Affichage Transformation PPML Arbre de boîtes (représentation) Arbre de syntaxe abstraite FIGUE
Une specification ppml est une suite de regles on parciurs l ’arbe de syntaxe et pour chaque nœud on cherche la premiere regle qui peut etre appliquee par exemple pour a+b , la premiere regle sera appliquee et qui va associe a l ’arbre plus a b , le vecteur Row qui a trois fils a , la chaine + , et b l ’ordre de l ’ecriture de ces regles est tres important, on commance par les regles les plus specifiques vers les moins specifiques soubra: Règles de transformation PPML(Pretty Printing Meta Language) • Transformation d’un arbre de syntaxe abstraite en un arbre de boîtes Pattern Format a + b plus(*x, *y) [<Row> *x "+" *y] 2a mult(int *i, *y) [<Row> *i *y] a * b mult(*x, *y) [<Row> *x "* " *y]
Formatage et affichage bidimensionnels • Constructeurs graphiques de base en FIGUE • Atome • Horizontal • Vertical • Paragraphe • Algorithme de formatage Origine, Taille, Alignement , Contexte graphique, Paramètres de zone d’affichage ... Horizontal
Incrémentalité BUT : Minimiser le coût de reformatage dû à la mise à jour ou à la sélection d'une ou plusieurs boîtes Deux éléments touchés Horizontal Zone à reformater
Interaction (PPML) -1 Système symbolique expand((a-b)2) Arbre de syntaxe Arbre de boîtes PPML
Plan • Motivations • Fonctionnalités de FIGUE • Les formules mathématiques en FIGUE • Exemple d’application • Migration vers le Web
Extensibilité de FIGUE pour les formules mathématiques Racine, Puissance, Matrice, Fraction ....
Représentation en boîtes des formules mathématiques Formule mathématique Arbre de boîtes
Algorithmes de formatage 2D pour les formules mathématiques • Chaque constructeur a son propre algorithme pour disposer ses fils • Affichage des boîtes formatées en fonction de leur contexte graphique(police de caractères, couleur, coordonnées)
Quelques problèmes à résoudre ... • Besoin des algorithmes de formatage • Efficaces • Incrémentaux Quels sont les éléments à reformater si on change un élément de la formule ? Exemple: la disposition correcte des éléments d'une matrice requiert un algorithme de formatage en plusieurs passes
Encore d’autres problèmes !! • La complexité des règles typographiques • Gestion des grandes formules • Affichage à échelle réduite de l'expression • Césure • Elision • Fragmentation de l'expression en sous-expressions de tailles plus raisonnables • dessin des symboles mathématiques de taille variable • Esthétique • Cohérence avec le contexte graphique
Plan • Motivations • Fonctionnalités de FIGUE • Les formules mathématiques en FIGUE • Exemple d’application • Migration vers le Web
Pcoq: interface graphique pour le système de preuves Coq Notations élaborées Illustrations graphiques Génération automatique de commandes à la souris
Plan • Motivations • Fonctionnalités de FIGUE • Les formules mathématiques en FIGUE • Exemple d’application • Migration vers le Web
Intégrer nos outils d'interface graphique sur le WEB DTD XML + MathML • Deux approches: • Développement en JAVA • Importer et générer du XML contenant du MathML Analyseur Syntaxique Arbre DOM Interface XMLtoFigue Arbre de boîtes FIGUE
Exemple de représentation en MathML <?xml version="1.0" encoding='UTF-8' standalone="no"?> <Facade xmlns:my="http://www-sop.inria.fr/lemme/MathML/extensions" xmlns="http://www-sop.inria.fr/lemme/figue" xmlns:m="http://www.w3.org/1998/Math/MathML"> <Root> <P> <Atom Value= "Exemple"> <Atom Value= "de"> <Atom Value= "Fraction"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mfrac> <mrow> <mn>1</mn> <mi>+</mi> <msup><mi>x</mi><mn>2</mn></msup> </mrow> <mn>4</mn> </mfrac> </math> </P> </Root> </Facade>
Perspectives • Bases pour le développement d’un éditeur MathML • Utiliser notre expérience de FIGUE dans les éditeurs Web • Supporter l'affichage bi-directionnel (droite-gauche et gauche-droite) explications de preuves en langue arabe