affichage interactif, bidimensionnel et incrémental de formules mathématiques hanane naciri et...
TRANSCRIPT
Affichage interactif, bidimensionnel et incrémental de formules
mathématiques
Hanane Naciri et Laurence Rideau
INRIA Sophia Antipolis
CARI'2000
H.Naciri 2
Plan
Motivations Fonctionnalités de FIGUE Les formules mathématiques en FIGUE Exemple d’application Migration vers le Web
H.Naciri 3
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
H.Naciri 4
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 AMAYAMoyen terme, garder
l ’objectif de se rapprocher
des editeurs Web
Moyen terme, garder l ’objectif de se
rapprocher
des editeurs Web
H.Naciri 5
Architecture
Arbre de syntaxe abstraite
Système symbolique
Analyseur syntaxique
Edition
Arbre de boîtes
(représentation)
PPML Affichage sur écran
Moteur d’affichage FIGUE
Interface Graphique
Moyen terme, garder l ’objectif de se
rapprocher
des editeurs Web
Moyen terme, garder l ’objectif de se
rapprocher
des editeurs Web
H.Naciri 6
Plan
Motivations Fonctionnalités de FIGUE Les formules mathématiques en FIGUE Exemple d’application Migration vers le Web
H.Naciri 7
Structure de boîtes en FIGUE
FIGUEArbre
de syntaxe abstraite
Arbre de boîtes
(représentation)
TransformationPPML
Affichage
H.Naciri 8
Règles de transformation PPML(Pretty Printing Meta Language)
Pattern Format
plus(*x, *y) [<Row> *x "+" *y]
mult(int *i, *y) [<Row> *i *y]
mult(*x, *y) [<Row> *x "* " *y]
Transformation d’un arbre de syntaxe abstraite en un arbre de boîtes
a + b
2a
a * b
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
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:soubra:
H.Naciri 9
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
H.Naciri 10
Incrémentalité
BUT : Minimiser le coût de reformatage dû à la mise à jour ou à la sélection d'une ou plusieurs boîtes
Zone à reformater
Deux éléments touchés
Horizontal
H.Naciri 11
Sélection d'objets structurés
H.Naciri 12
Interaction
Arbre de boîtesArbre de syntaxeSystèmesymbolique
expand((a-b)2)
(PPML) -1
PPML
H.Naciri 13
Plan
Motivations Fonctionnalités de FIGUE Les formules mathématiques en FIGUE Exemple d’application Migration vers le Web
H.Naciri 14
Extensibilité de FIGUE pour les formules mathématiques Racine, Puissance, Matrice, Fraction ....
H.Naciri 15
Représentation en boîtes des formules mathématiques
Formule mathématique
Arbre de boîtes
H.Naciri 16
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)
H.Naciri 17
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 ?
0...3...1
...5...4
0...2...
w
wz
yxExemple: la disposition correcte des éléments d'une matrice requiert un algorithme de formatage en plusieurs passes
H.Naciri 18
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
H.Naciri 19
Plan
Motivations Fonctionnalités de FIGUE Les formules mathématiques en FIGUE Exemple d’application Migration vers le Web
H.Naciri 20
Pcoq: interface graphique pour le système de preuves Coq
Notations élaborées
Illustrations graphiques
Génération automatique de commandes à la souris
H.Naciri 21
Plan
Motivations Fonctionnalités de FIGUE Les formules mathématiques en FIGUE Exemple d’application Migration vers le Web
H.Naciri 22
Intégrer nos outils d'interface graphique sur le WEB
Deux approches: Développement en
JAVA
Importer et générer du XML contenant du MathML
XML+
MathML
AnalyseurSyntaxique
ArbreDOM
Arbrede boîtes
Interface XMLtoFigue
FIGUE
DTD
H.Naciri 23
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>
H.Naciri 24
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
H.Naciri 25
Explications de preuves en langue Arabe