Title: Affichage interactif, bidimensionnel et incr
1Affichage interactif, bidimensionnel et
incrémental de formules mathématiques
- Hanane Naciri et Laurence Rideau
- INRIA Sophia Antipolis
- CARI'2000
2Plan
- Motivations
- Fonctionnalités de FIGUE
- Les formules mathématiques en FIGUE
- Exemple dapplication
- Migration vers le Web
3Motivations
- Aide au développement dinterfaces 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
4Applications 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
5Architecture
Interface Graphique
Edition
Analyseur syntaxique
Moteur daffichage FIGUE
Système symbolique
Arbre de syntaxe abstraite
Arbre de boîtes (représentation)
PPML
Affichage sur écran
Moyen terme, garder l objectif de se rapprocher
des editeurs Web
6Plan
- Motivations
- Fonctionnalités de FIGUE
- Les formules mathématiques en FIGUE
- Exemple dapplication
- Migration vers le Web
7Structure de boîtes en FIGUE
Affichage
Transformation PPML
Arbre de boîtes (représentation)
- Arbre
- de syntaxe
- abstraite
FIGUE
8Une 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 ab , 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 dun arbre de syntaxe abstraite
en un arbre de boîtes
Pattern
Format
a b
plus(x, y)
ltRowgt x "" y
2a
mult(int i, y)
ltRowgt i y
a b
mult(x, y)
ltRowgt x " " y
9Formatage 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 daffichage ...
Horizontal
10Incré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
11Sélection d'objets structurés
12Interaction
(PPML) -1
Système symbolique expand((a-b)2)
Arbre de boîtes
Arbre de syntaxe
PPML
13Plan
- Motivations
- Fonctionnalités de FIGUE
- Les formules mathématiques en FIGUE
- Exemple dapplication
- Migration vers le Web
14Extensibilité de FIGUE pour les formules
mathématiques
Racine, Puissance, Matrice, Fraction ....
15Représentation en boîtes des formules
mathématiques
Formule mathématique
Arbre de boîtes
16Algorithmes 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)
17Quelques 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
18Encore dautres 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
19Plan
- Motivations
- Fonctionnalités de FIGUE
- Les formules mathématiques en FIGUE
- Exemple dapplication
- Migration vers le Web
20Pcoq interface graphique pour le système de
preuves Coq
Notations élaborées
Illustrations graphiques
Génération automatique de commandes à la souris
21Plan
- Motivations
- Fonctionnalités de FIGUE
- Les formules mathématiques en FIGUE
- Exemple dapplication
- Migration vers le Web
22Inté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
23Exemple de représentation en MathML
lt?xml version"1.0" encoding'UTF-8'
standalone"no"?gt ltFacade xmlnsmy"http//www-sop
.inria.fr/lemme/MathML/extensions"
xmlns"http//www-sop.inria.fr/lemme/figue"
xmlnsm"http//www.w3.org/1998/Math/MathML"gt ltR
ootgt ltPgt ltAtom Value "Exemple"gt ltAtom Value
"de"gt ltAtom Value "Fraction"gt ltmath
xmlns"http//www.w3.org/1998/Math/MathML"gt
ltmfracgt ltmrowgt ltmngt1lt/mngt
ltmigtlt/migt
ltmsupgtltmigtxlt/migtltmngt2lt/mngtlt/msupgt lt/mrowgt
ltmngt4lt/mngt lt/mfracgt lt/mathgt lt/Pgt
lt/Rootgt lt/Facadegt
24Perspectives
- Bases pour le développement dun é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
25Explications de preuves en langue Arabe