Maths, Informatique, Jeux
Site Web réalisé par Frédéric et François WANG
Répertoire principalInformatiqueTIPE 2006-2007Dossier

Gain de temps grâce à MathML

Introduction

Pour ses échanges d'informations, la communauté scientifique a besoin de moyens efficaces, parmi lesquels Internet. C'est pourquoi le W3C, organisme fixant les normes de langages Web, a développé le MathML [1] utilisé pour afficher des formules mathématiques dans une page Web. Néanmoins, les publications scientifiques sont encore majoritairement codées au format TeX, plus facile à éditer manuellement. Mon objectif est de montrer non seulement qu'un éditeur graphique permettrait de produire du MathML aussi rapidement mais aussi que le codage sémantique ferait gagner du temps grâce à de nouveaux outils.

I/ Temps d'édition de MathML par rapport à TeX

1) Comparaison des syntaxes

TeX et MathML utilisent un « code source » pour représenter les formules. La figure 1 montre que MathML utilise des noms pour les balises de mise en page alors qu'en TeX, un simple caractère suffit pour les constructions les plus utilisées. Dans le cas de l'utilisation d'un nom, il n'est pas obligatoire de le répéter à la fermeture du bloc. En outre, La figure 2 montre que même lorsqu'une formule pourrait être rentrée directement dans un éditeur de texte classique, MathML impose l'indication d'informations supplémentaires.

MathML TeX
Délimitation de bloc <mrow>...</mrow> {...}
Mise en exposant <msup>...</msup> ^...
Mise en indice <msub>...</msub> _...
Fraction <mfrac>... ...</mfrac> \frac... ...
figure 1 : syntaxes de constructions courantes
MathML TeX ou simple texte
Nombre, opérateur, identificateur <mn>57</mn><mo>+</mo><mi>x</mi> 57 + x
Symboles &DifferentialD;x

&ExponentialE;

&ImaginaryI;

dx

e

i

Opérateurs invisibles
  <mi>f</mi>
  <mo>&ApplyFunction;</mo>
  <mrow>
    <mo>(</mo>
    <mrow>
      <mi>x</mi>
      <mo>&InvisibleTimes;</mo>
      <mi>y</mi>
    </mrow>
    <mo>)</mo>
  </mrow>
f(xy)
figure 2 : informations supplémentaires en MathML

L'exemple de la figure 3 résume de façon frappante la différence de concision. J'ai aussi réalisé une étude quantitative en mesurant la taille des sources de diverses constructions (cf Annexe A). En moyenne, MathML occupe 12 fois plus de place et même en retirant tous les espaces facultatifs, assez nombreux dans les langages XML, il en prend 7 fois plus.

Source MathML
<mrow>

  <munderover>
    <mo>&sum;</mo>
    <mrow>
      <mi>n</mi>
      <mo>=</mo>
      <mn>1</mn>
    </mrow>
    <mrow>
      <mo>+</mo>
      <mi>&infin;</mi>
    </mrow>
  </munderover>

  <mrow>
    <mfrac>
      <mn>1</mn>
      <msup>
        <mi>n</mi>
        <mn>4</mn>
      </msup>
    </mfrac>
  </mrow>

</mrow>

<mo>=</mo>

<mfrac>
  <msup>
    <mi>&pi;</mi>
    <mn>2</mn>
  </msup>
  <mn>90</mn>
</mfrac>
Source TeX
$\sum_{n=1}^{+\infty}\frac{1}{n^4}=\frac{\pi^2}{90}$


Edition de la formule avec Amaya
edition de la formule avec Amaya
 
figure 3 : exemple de code source pour une formule mathématique

Ce premier aperçu montre que la syntaxe MathML est plus lourde et en conséquence, une édition manuelle est en théorie plus rapide en TeX. D'ailleurs, la recommandation du W3C précise que MathML est plutôt destiné à être généré par un éditeur graphique...

2) Édition manuelle et mode graphique

L'éditeur graphique étudié dans cette partie est Amaya [2] mais les remarques restent valables pour n'importe quel éditeur Wysiwyg. Initialement, ce logiciel disposait d'une interface permettant l'insertion de symboles et de balises de présentation MathML. Le logiciel étant libre, j'ai pu contribué à l'ajout de nouvelles fonctionnalités (figure 4).

Exemple d'édition MathML + SVG
Amaya a pour objectif la démonstration de nouvelles technologies Internet
Ancienne palette d'Amaya
la palette MathML originale et celle des caractères spéciaux
Nouvelle palette d'Amaya
la nouvelle palette MathML
 
figure 4 : aperçu d'Amaya (voir aussi Annexe C)

Dans le cas de TeX, l'utilisateur rentre directement le code et un simple éditeur de texte suffit, même si le risque d'erreurs rend nécessaire la coloration syntaxique du texte. La formule ne peut être vue qu'après compilation du fichier source, ce qui peut être gênant pour des formules complexes. Au contraire, pour un éditeur graphique, le résultat est directement affiché à l'écran, mais l'interface doit permettre à l'utilisateur d'insérer facilement des constructions, tout en contrôlant la justesse de la syntaxe. Sur ce point, Amaya utilise une gestion arborescente des documents qui lui permet de garder à chaque instant une structure correcte et de bien manipuler les expressions mathématiques (cf Annexe C).

La figure 5 montre la différence d'interface pour l'édition d'un tableau. Le code source est difficile à lire et éditer pour de grand tableaux, alors qu'en mode graphique l'affichage est instantané et l'édition se fait facilement à l'aide de la souris et du clavier. Cela se généralise à toutes les constructions mathématiques, où l'aspect bidimensionnel des formules a une place importante.

Amaya
Edition d'un tableau avec Amaya
TeX
\begin{pmatrix}
\hline 1 & 2 & 3 \\ 
\hline 4 & 5 & 6 \\ 
\hline 7 & 8 & 9 \\ 
\hline 
\end{pmatrix}
 
figure 5 : Construction d'un tableau avec Amaya et en mode texte

Un point important est de savoir comment l'utilisateur insère des constructions. Pour Amaya, la création de constructions s'effectue en cliquant sur un bouton de la palette, ce qui rend le logiciel utilisable même par une personne qui le découvre. A l'inverse, on peut rester totalement bloqué en TeX si on ne connaît pas la syntaxe. Même avec un système semblable où le logiciel se charge de générer le code, l'utilisateur doit vérifier que l'insertion a été réalisée de façon à garder une syntaxe globale correcte.

Après avoir ajouté assez de constructions à Amaya, j'ai proposé sur internet un test de rapidité d'édition de formules. A part moi, seule une personne a réalisé le test : habituée à éditer en TeX et ayant préféré utiliser un éditeur graphique qu'elle connaissait (cf Annexe A). Même si le très faible nombre de participants ne permet pas vraiment de tirer des conclusions générales, on peut tout de même faire deux remarques selon le degré de familiarité de l'utilisateur.

Analysons d'abord mes résultats. Je n'ai lu que quelques bases de TeX et ai même du m'aider du code source de la personne volontaire lorsque je ne connaissais pas une construction. Quant à la palette MathML d'Amaya, hormis lors des tests de programmation, je ne m'en étais pas servie. On peut donc dire que je représente une personne qui découvre l'édition de documents mathématiques. On constate alors qu'une édition graphique est plus rapide pour les personnes ne connaissant pas la syntaxe TeX. Cela confirme l'importance d'un tel éditeur pour permettre la publication de documents scientifiques à un plus large public. Regardons maintenant les résultats de la personne volontaire, familière avec les modes d'édition utilisés et qui représente donc un utilisateur expérimenté : les temps sont à peu près égaux. Cette remarque est cruciale pour MathML : comme l'édition en mode graphique ne dépend a priori pas du langage utilisé on peut espérer obtenir d'aussi bon temps qu'en TeX.

Finalement, même si l'étude mériterait d'être poussée davantage, la complexité de la syntaxe MathML n'empêche pas une édition aussi rapide qu'en TeX.

II/ Utilisation de la sémantique pour gagner du temps

1) De nouveaux outils d'édition

Comme indiqué dans la première partie, Amaya utilise, pour représenter les documents, une structure arborescente qui s'accorde parfaitement avec l'aspect récursif des mathématiques. L'idée est alors de tirer profit de cette similitude pour créer de nouveaux outils d'éditions. Pour se faire, le balisage de contenu de MathML est préférable au balisage de présentation (figure 6). Ce dernier correspond à un parcours infixe, équivalent donc à un codage de type TeX, facile à obtenir à partir de la saisie de l'utilisateur. Le balisage de contenu correspond au contraire à un codage préfixe, se rapproche davantage du « sens » de la formule mathématique et est plus facile à manipuler par les ordinateurs. Ce second balisage n'étant pas encore reconnu par Amaya, les outils cités par la suite restent théoriques.

Arbre de MathML de présentation
MathML de présentation
Arbre de MathML de contenu
MathML de contenu
 
figure 6 : Arbres de la formule f(xy)

D'une façon générale, un document scientifique n'est pas constitué par un enchaînement d'affirmations sans rapport entre elles. Par exemple dans le cas des formules mathématiques, elles sont reliées par des procédés logiques ou calculatoires bien connus. Demander au logiciel d'effectuer ces transformations sur une formule déjà rentrée faciliterait grandement l'édition. Ainsi, il est commun d'avoir une suite d'égalités où l'on effectue une opération à chaque étape. Pour le MathML sémantique, la modification de l'arbre est assez simple, puisque les sous-expressions sont déjà découpées comme sous-arbres. Le résultat se généralise évidemment aux inégalités ou équivalences. On peut aussi imaginer que l'on applique la transformation à une expression sélectionnée au préalable par l'utilisateur.

Arbre d'égalité

Le codage d'une égalité se fait sous forme d'un arbre ayant pour étiquette à la racine apply pour premier fils eq et pour autres fils, les arbres [A1], ... [An] codant les termes de l'égalité. Pour ajouter un terme dans l'égalité, il suffit de récupérer le dernier fils [An], lui appliquer une transformation pour obtenir [A(n+1)] puis d'insérer ce terme comme dernier fils de l'arbre.

 
figure 7 : Ajout d'un nouveau terme dans une égalité

Une fonction appliquer_transformation (cf Annexe B) est censé changer l'arbre [An] en l'arbre [A(n+1)] selon un procédé mathématique, par exemple la transposition d'une matrice (Figure 8).

Arbres de matrices, transposition

L'arbre initial [An] comporte un opérateur de transposition s'appliquant à une matrice. L'utilisateur souhaite alors ajouter, pour terme suivant dans l'égalité, la matrice transposée.

On applique une transposition (cf Annexe B) au deuxième fils de [An] qui représente la matrice à transposer, et on obtient l'arbre [A(n+1)].

 
figure 8 : Transposition de matrice

En fait, les matrices étant codées de la même façon en MathML de présentation, le codage sémantique n'est pas vraiment important pour leur appliquer des transformations. Il se révèle par contre crucial pour généraliser ceci à d'autres objets mathématiques. Il est aussi envisageable d'appeler un logiciel de calcul spécialisé pour des transformations complexes comme la dérivation ou l'intégration.

Il est difficile de savoir quel serait le gain de temps réel, mais on peut faire une estimation en supposant plusieurs transformations disponibles. Dans l'exemple de rédaction donné en annexe B, des fragments ont été mis en bleus et peuvent avoir été obtenus selon une des méthodes suivantes :

Si on estime que le temps mis pour sélectionner un fragment et rechercher la transformation à effectuer dans un menu met environ 10 secondes pour l'utilisateur, on obtient un temps hypothétique de 14 min 18 au lieu de 18 min 37 soit tout de même 77%.

2) MathML pour les échanges scientifiques

Jusqu'ici nous avons discuté du temps d'édition de MathML, mais la recommandation du W3C [1] expose aussi plusieurs arguments sur son rôle fondamental, en particulier dans les échanges scientifiques. Comme l'indique Robert Miner dans un de ses articles [4] force est de constater que la manipulation de formules n'est pas encore bien implémentée dans les ordinateurs. Une étude de leur gestion dans Amaya (cf annexe C) montre ainsi plusieurs difficultés rencontrées. Si certaines solutions spécialisées existent, comme TeX pour la rédaction de documents ou divers logiciels pour le calcul formel, on est loin de disposer de la facilité rencontrée pour d'autres types de données (texte, image, son...). Pour offrir une telle communication entre les différents logiciels, il faut au moins un langage comme MathML pour transporter assez d'informations. On peut par exemple imaginer un chercheur copiant une formule trouvée sur une page Web dans son logiciel de messagerie. Ce logiciel, équipé d'un éditeur de formule, lui permet d'apporter des modifications avant de l'envoyer par courrier électronique à un collègue qui pourra utiliser la formule dans un logiciel de calcul formel et ainsi de suite.

Robert Miner mentionne aussi l'histoire d'un chercheur qui pour un de ses travaux devait résoudre un problème où intervenait une certaine série. Celui-ci avait appris qu'une base de donnée sur les séries avait récemment été mise en ligne. Il rentra les coefficients de la série et découvrit un article qui avait résolu son problème initial. Or il n'aurait pu découvrir cet article autrement puisque celui-ci provenait d'un domaine totalement éloigné au sien !

En dehors de cette anecdote, il est clair que la quantité d'informations scientifiques devient de plus en plus importante tandis que les domaines spécialisés sont de plus en plus variés. Pour stocker ce nombre croissant d'informations et le partager, Internet se révèle particulièrement utile. Mais pour pouvoir accéder rapidement à une information, les moteurs de recherche classiques sont insuffisants. En effet ceux-ci ne recherchent que des mots-clés alors que comme on l'a vu précédemment l'expression mathématique est parfois plus pertinente.

Michael Kohlhase et Ioan Sucan [5] ont ainsi mis au point l'année dernière un moteur de recherche de formules. Ceci conduit à plusieurs difficultés par rapport à une recherche classique : des notations mathématiques différentes peuvent parfois représenter le même objet surtout dans un contexte international (par exemple argth ou arctanh) et inversement une même notation possède des interprétations distinctes (φ2 est tantôt le carré d'une fonction à valeur complexe, tantôt la composée d'une fonction par elle même). C'est pourquoi il est nécessaire d'utiliser un langage sémantique pour coder à la fois les pages indexées et les requêtes (figure 9). Les pages indexées ne sont pas encore très nombreuses parce que le moteur de recherche est au stade de prototype et que le MathML n'est pas encore vraiment répandu. Toutefois, l'article indique des tests effectués sur des sites et conclut que la recherche est relativement rapide (de l'ordre du centième de secondes) et ne semble pas varier significativement avec la taille de l'index.

Arbre de requête

La requête est codée sous forme d'un arbre représentant la structure de la formule. Des termes génériques (en bleus) peuvent être interprétés différemment par le moteur de recherche, par comparaison avec les pages indexées. La page des résultats, dont deux détaillés avec les substitutions utilisées.

Page de résultats de recherche
figure 9 : exemple d'arbre codant la requête ; résultat de la recherche

Conclusion

L'objectif était de montrer comment MathML pouvait permettre de gagner du temps dans les échanges scientifiques. Sa syntaxe est bien plus complexe que le langage d'édition aujourd'hui le plus utilisé qu'est TeX, ce qui pouvait sembler un inconvénient puisque le temps d'édition risquait d'en être grandement accru. Nous nous sommes alors penchés sur la comparaison avec un éditeur graphique pour résoudre ce problème. Nous avons vu d'une part qu'il n'y avait pas de perte de temps par rapport à TeX et d'autre part que cela rendait l'édition de document plus accessible. Ainsi cette première partie montrait que malgré la lourdeur de sa syntaxe, MathML pouvait très bien être utilisé pour publier des documents scientifiques. Dans une seconde partie, nous nous sommes préoccupés des avantages que pourraient avoir le surplus d'informations fourni par MathML. Continuant sur l'édition, nous avons vu qu'il offrirait une meilleur aide à l'utilisateur en lui proposant de nouveaux outils. Une estimation a ainsi montré que l'on pouvait gagner ¼ du temps de rédaction. Enfin, nous avons regardé ceci de façon plus générale et vu les outils potentiels pour les échanges scientifiques. MathML étant le fruit de la collaboration de diverses communautés, il est le candidat naturel pour des moyens de communications entre logiciels de calcul formel, de publication scientifique, de navigation, de recherche Web ou encore de messagerie électronique. MathML a déjà une dizaine d'années derrière lui et de nombreux outils [6] sont disponibles pour s'en servir. Maintenant, seule son adoption par les par les scientifiques pourra déterminer son futur...

Cette page est conforme aux normes du W3C - Auteur : Frédéric WANG - Dernière mise à jour : samedi 7 juillet 2007
Valid XHTML 1.1 Valid MathML 2.0 Valid SVG Valid CSS Amaya, the W3C browser/editor Déclaration qualité Opquast Firefox