1 Introduction

Table des matières : Le langage de balisage mathématique (MathML) version 2.0
Chapitre suivant : 2. Les principes fondamentaux de MathML

1.1 Les mathématiques et leurs notations

Un aspect distinctif des mathématiques réside dans l'utilisation d'un système complexe et très évolué de notations symboliques bidimentionnelles. Ainsi que J.R. Pierce l'a écrit dans son livre sur une théorie de la communication, les mathématiques et ses notations ne devraient pas être considérées comme une seule et même chose [Pierce1961]. Les concepts mathématiques existent indépendamment des notations qui les représentent. Toutefois, la relation entre signification et notation est subtile, et une partie de la puissance de description et d'analyse des mathématiques dérive de ces capacités à représenter et à manipuler des concepts dans une forme symbolique. Le défi de présenter les mathématiques sur le Web tient dans la capture, à la fois, de la notation et du contenu (c.à.d., la signification) de telle sorte que les documents puissent recourir aux formes de notation très évoluées des mathématiques écrites et imprimées et utiliser le potentiel d'échange des médias électroniques.

Les notations mathématiques sont en constante évolution, car les mathématiciens continuent à innover dans les façons d'approcher et d'exprimer les concepts. Même les notations arithmétiques communes ont emprunté une étonnante diversité de styles, y compris des notations défuntes préconisées par des mathématiciens chefs de file en leur temps [Cajori1928]. La notation mathématique moderne est le produit de siècles d'affinage et les conventions de notation pour une composition de haute facture sont plutôt compliquées. Par exemple, les variables et les lettres qui tiennent lieu de nombres sont généralement composés aujourd'hui dans une police mathématique italique spéciale se distinguant imperceptiblement du texte en italique habituel. L'espacement autour des symboles d'opération, tels que +, -, × et / diffère légèrement de celui d'un texte, afin de respecter les conventions de priorité des opérateurs. Des livres entiers ont été consacrés aux conventions de la composition des mathématiques, depuis l'alignement des écritures en lettres supérieures et supérieures jusqu'aux règles pour choisir la taille des parenthèses, en passant par les notations spécialisées propres de sous-domaines des mathématiques (par exemple, [Chaundy1954], [Swanson1979], [Swanson1999], [Higham1993], ou dans la littérature TEX [Knuth1986] et [Spivak1986]).

Les conventions de notation des mathématiques, et dans un texte imprimé en général, servent à guider l'œil et à faciliter la lecture et la compréhension des expressions imprimées. Bien que nous les prenions pour aquises, nous dépendons de centaines de conventions, tels que les paragraphes, les lettres en majuscules, les familles et la casse des polices, et même l'appareil de numérotage décimal des sections, celui-là même dont nous nous servons dans ce document (une invention de G. Peano, probablement plus connu pour ses axiomes sur les nombres naturels). De telles conventions de notation sont peut-être encore plus importantes pour les médias électroniques, notamment lorsqu'on est confronté à la difficulté de lire sur un écran.

Cependant, présenter des mathématiques sur le Web ne se limite pas simplement à trouver des solutions pour afficher une notation mathématique traditionnelle dans un navigateur. Le Web représente un changement fondamental dans la métaphore sous-jacente du stockage des connaissances, un changement dans lequel l'interconnectivité occupe un rôle central. Il devient crucial de trouver des moyens de communiquer les mathématiques qui permettent de les traiter, rechercher et indexer automatiquement, et de les réutiliser dans d'autres applications et d'autres contextes mathématiques. Avec ces avancées dans la technologie de la communication, une opportunité se présente d'augmenter nos capacités à représenter, à coder et, en définitive, à échanger les uns les autres nos trouvailles et notre compréhension des mathématiques. Nous sommes persuadés que MathML constitue un jalon important du développement des mathématiques sur le Web.

1.2 Les origines et les objectifs

1.2.1 L'histoire de MathML

Le problème du codage des mathématiques en vue d'un traitement informatique ou en vue d'une communication électronique est antérieur au Web. La pratique habituelle entre les scientifiques, avant le Web, consistait à écrire des documents, dans une certaine forme codée à partir du jeu de caractères ASCII, et à les envoyer par courrier électronique. Plusieurs méthodes de balisage des mathématiques, en particulier TEX [Knuth1986], étaient déjà largement répandues en 1992, juste avant que le Web ne commence son ascension irrésistible [Poppelier1992].

Dès le début, le Web a démontré en soi être une méthode très efficace pour mettre des informations à la disposition de groupes d'individus très éloignés. Néanmoins, quoique le Web ait été conçu et mis en œuvre à l'origine par des scientifiques pour des scientifiques, les possibilités d'inclure des expressions mathématiques dans HTML sont restées très limitées. Aujourd'hui, la plupart des mathématiques sur le Web est constituée par des textes avec des images représentant des notations scientifiques (au format GIF ou JPEG), difficiles à lire et à éditer, ou par des documents entiers au format PDF.

Le World Wide Web Consortium (W3C) a reconnu que cette absence de prise en compte des communications scientifiques posait un problème important. Dave Raggett a inclus une proposition pour Math HTML dans l'avant-projet HTML 3.0 en 1994. Une réunion d'experts au sujet du balisage mathématique s'est tenue pendant la WWW Conference à Darmstadt en avril 1995. En novembre 1995, des représentants de Wolfram Research ont présenté à l'Équipe du W3C une proposition permettant d'écrire des mathématiques en HTML. En mai 1996, la réunion Digital Library Initiative de Champaign-Urbana a été déterminante pour la concertation des nombreuses parties intéressées. Suite à cette réunion, un Conseil de révision des publications Math HTML a été formé. Dans les années qui suivirent, ce groupe s'est élargi et a officiellement constitué le premier groupe de travail Math du W3C en mars 1997. Le second groupe de travail Math du W3C a été missionné en juillet 1998 avec un mandat prolongé ensuite jusqu'à fin 2000.

La proposition MathML reflète les intérêts et les compétences d'un groupe très hétérogène. Beaucoup de contributions au développement de MathML méritent des mentions particulières, et certaines seront présentées ici. L'une de ces contributions touche à la question de l'accessibilité, en particulier pour les déficients visuels. T. V. Raman est remarquable à cet égard. Neil Soiffer et Bruce Smith, chez Wolfram Research, ont fait part des problèmes rencontrés pour représenter des mathématiques au cours de la mise au point de Mathematica 3.0 ; leurs compétences ont eu une grande influence sur la création des éléments de présentation. Paul Topping, chez Design Science, a également offert son expertise du formatage et de l'édition des mathématiques. MathML a bénéficié de la participation d'autres membres du groupe de travail, impliqués dans le codage des mathématiques par ailleurs et issus des communautés SGML et calculs algébriques, dont Stephen Buswell, chez Stilo Technologies, Nico Poppelier, chez Elsevier Science d'abord, Stéphane Dalmas, à l'INRIA (Sophia Antipolis), Stan Devitt, chez Waterloo Maple d'abord, Angel Diaz et Robert S. Sutor, chez IBM, et Stephen M. Watt, de l'University of Western Ontario. Le langage MathML a notamment été influencé par le projet OpenMath, par les travaux du groupe de travail ISO 12083 et les travaux de Stilo Technologies sur un fragment de définition de type de document (DTD) mathématique sémantique. La Société américaine de mathématiques (American Mathematical Society) a joué un rôle essentiel dans le développement de MathML. Entre autres, elle a donné deux présidents de groupe de travail : Ron Whitney, qui a conduit le groupe de mai 1996 à mars 1997, et Patrick Ion, lequel co-présidait le groupe avec Robert Miner, chez The Geometry Center, de mars 1997 à juin 1998, et, depuis juillet 1998 avec Angel Diaz, chez IBM.

1.2.2 Les limitations de HTML

La demande de moyens efficaces pour les communications scientifiques électroniques reste élevée. De plus en plus, le travail des chercheurs, des scientifiques, des ingénieurs, des éducateurs, des étudiants et des techniciens est dispersé et compte sur une communication électronique. Et dans le même temps, les méthodes fondées sur des images, qui prévalent actuellement pour transmettre une notation scientifique sur le Web, sont primitives et inadéquates. La qualité des documents est faible, l'édition est compliquée et les informations mathématiques contenues dans les images ne sont pas exploitables pour la recherche, l'indexation ou la réutilisation dans d'autres applications.

Les problèmes les plus évidents avec HTML pour la communication des mathématiques sont de deux ordres.

Les problèmes d'affichage. Considérons l'équation 2^{2^x} = 10. Cette équation a été dimensionnée pour tenir dans la ligne de texte alentour avec un corps de 14pt, et sur le système dans le contexte duquel elle a été créée. Évidemment, sur d'autres systèmes ou pour d'autres dimensions de police, l'équation sera soit trop petite, soit trop grande. Un autre aspect notable est que l'image de l'équation a été générée sur un fond blanc. Donc, si un lecteur ou un navigateur prévoit une autre couleur pour le fond de la page, l'anti-crénelage de l'image entraînera un halo blanc. Considérons maintenant l'équation x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}, un exemple avec l'axe d'alignement horizontal de l'équation au-dessus des sommets des lettres en minuscules du texte alentour.

Cette équation a un jambage qui place sa ligne de base à environ un tiers du bas de l'image. On peut disposer l'image comme ceci : x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}, de façon à ce que la ligne centrale de l'image et la ligne de base de l'équation coïncident, mais cela cause des problèmes dans l'espacement des interlignes, qui rend la lecture de l'équation difficile. En outre, l'alignement central des images ne sera pas traité exactement de la même façon par des navigateurs différents, et il sera donc impossible de garantir un alignement correct sur des navigateurs différents.

Les équations imagées sont généralement plus difficiles à voir, à lire et à appréhender, comparées au texte alentour dans la fenêtre du navigateur. En outre, ces problèmes empirent lorsque le document est imprimé. La résolution des images d'équations sera d'environ 70 points par pouce, tandis que le texte alentour aura généralement une résolution de 300 ou 600 points par pouce, voire plus. La disparité de qualité sera jugée inacceptable par la majorité des gens.

Les problèmes de codage. Supposons une tentative de rechercher une partie de l'équation dans le document, par exemple, l'expression "=10" dans la première équation précédente. Dans la même veine, supposons une tentative de couper et coller une équation dans une autre application ; encore plus exigeant, couper et coller une sous-expression. Aucune de ces opérations communes ne peut être effectuée de façon satisfaisante à partir des méthodes fondées sur des images. Quoiqu'on puisse utiliser l'attribut alt dans la source du document, il est évident que des documents Web hautement interactifs doivent fournir une interface plus sophistiquée reliant les navigateurs et les notations mathématiques.

Un autre problème lié au codage des mathématiques sous forme d'images est la demande accrue en bande passante. Le balisage décrivant une équation sera généralement plus petit et plus compressible qu'une image de l'équation en question. En outre, le recours à un codage balisé déplacera une part plus importante du processus de rendu sur la machine cliente.

1.2.3 Les exigences du balisage mathématique

Certains problèmes d'affichage, associés à l'incorporation des notations mathématiques dans les documents HTML sous forme d'images, pourraient se résoudre en améliorant la manipulation des images par les navigateurs. Toutefois, même avec une meilleure gestion des images, le problème de la disponibilité, pour d'autres applications, des informations contenues dans les expressions mathématiques resterait entier. Ainsi, en prévoyance, une simple évolution des méthodes basées sur des images ne suffit pas. Un codage des notations et des contenus mathématiques, fondé sur un balisage, est donc indispensable pour intégrer complètement les documents mathématiques aux documents Web.

Dans la conception d'un langage de balisage, il est primordial d'évaluer soigneusement les besoins des utilisateurs potentiels. Dans le cas de MathML, ces besoins couvrent un large spectre, de l'éducation à la recherche, en passant par le commerce.

La communauté de l'éducation constitue un groupe étendu et important, qui doit pouvoir mettre des programmes éducatifs scientifiques à disposition sur le Web. Parallèllement, les éducateurs, qui n'ont souvent pas beaucoup de temps ni de moyens, sont très gênés par la difficulté de créer des documents techniques pour le Web. Les étudiants et les enseignants doivent pouvoir créer un contenu mathématique rapidement et facilement, avec des outils à la fois intuitifs, dont l'aprentissage est facile, et de faible coût.

Les livres électroniques sont une autre façon d'utiliser le Web qui pourrait devenir très importante pour l'éducation. Le consultant en gestion Peter Drucker a prophétisé la disparition de l'enseignement supérieur au sein de grands campus résidentiels et leur distribution à travers le Web. Les livres électroniques devront être interactifs et permettre une intercommunication du texte et des logiciels et graphiques scientifiques.

Les communautés des chercheurs académiques et privés génèrent un volume énorme de documents scientifiques denses. Les publications des chercheurs sont stockées, de plus en plus, dans des bases de données, avec des grandes réussites comme les archives et le serveur prépresse de physique et de mathématiques du Laboratoire National de Los Alamos (Los Alamos National Laboratory). Cela se vérifie tout particulièrement pour certains domaines de la physique et des mathématiques où l'augmentation des coûts des publications universitaires devient insoutenable. En outre, les bases de données documentaires de la recherche mathématique, comme celles de Mathematical Reviews et Zentralblatt für Mathematik, mettent à disposition sur le Web des millions d'enregistrements contenant des mathématiques.

Pour satisfaire la communauté des chercheurs, la conception d'un balisage mathématique doit faciliter la maintenance et l'exploitation des grandes collections de documents. En raison du grand volume de documents existants contenant des mathématiques, notamment en TEX, il est également très important pour la communauté des chercheurs de pouvoir effectuer une conversion des formats anciens vers le nouveau. Enfin, la possibilité de conserver les informations pour les besoins de l'archivage est vitale à la recherche académique.

Les scientifiques et les ingénieurs, universitaires et privés, travaillent également avec des documents techniques pour collaborer, pour enregistrer les résultats d'expériences et les simulations par ordinateur, et pour vérifier leurs calculs. Pour ces utilisations, les mathématiques sur le Web doivent représenter un moyen normalisé de partager des informations qui puissent se lire, se traiter et se générer aisément en se servant d'outils courants et conviviaux.

Un autre impératif de conception générale réside dans la possibilité de rendre un document mathématique sur un autre média, par une synthèse vocale ou en braille, ce qui est primordial pour les personnes avec un handicap visuel.

Les éditeurs commerciaux sont également concernés par les mathématiques sur le Web, à tous les niveaux, que ce soit pour les versions électroniques des livres imprimés, pour les livres interactifs ou les publications universitaires. Les éditeurs recherchent une méthode permettant de publier des mathématiques sur le Web qui puisse offrir une sortie de qualité élevée, qui soit suffisamment fiable pour une utilisation commerciale à grande échelle et qui, de préférence, soit compatible avec leurs anciens systèmes de production fondés sur SGML.

1.2.4 Les objectifs de conception de MathML

Afin de satisfaire aux divers besoins de la communauté scientifique, MathML a été conçu en gardant à l'esprit les finalités suivantes.

Le langage MathML devrait :

Que MathML parvienne ou non à atteindre ces objectifs en tant que langage de balisage, il est clair que son utilité dépendra de sa bonne mise en œuvre. Pour cela, le groupe de travail Math du W3C a déterminé une liste réduite d'objectifs supplémentaires de mise en œuvre. Ces objectifs tentent de décrire avec concision les fonctionnalités minimales de rendu et de traitement de MathML par les logiciels.

Ces objectifs ont d'abord été réalisés dans le court terme en se servant d'éléments incorporés pour rendre le code MathML, tels que des appliquettes Java, des modules d'extension ou des contrôles ActiveX. Toutefois, la réussite de ces objectifs dépendra en fin de compte de la coopération et du soutien des éditeurs de navigateurs et d'autres développeurs de logiciels. Le groupe de travail Math du W3C a poursuivi une collaboration avec les groupes de travail DOM (Document Object Model) et XSL (Extensible Stylesheet Language) afin de s'assurer que les besoins de la communauté scientifique seront satisfaits ; le groupe estime que MathML 2.0 a progressé considérablement dans ce domaine par rapport à la situation qui prévalait à la publication de MathML 1.0 (avril 1998).

1.3 Le rôle de MathML sur le Web

1.3.1 Une conception en couches des services mathématiques sur le Web

Les objectifs de conception de MathML appellent un système de codage du matériel mathématique souple et extensible, adapté aux interactions avec des logiciels externes et capable de produire un rendu de haute qualité sur des médias divers. Tout langage de balisage codant suffisamment d'informations pour réaliser correctement toutes ces tâches sera nécessairement complexe.

En même temps, il importe que beaucoup de groupes, tels que celui des étudiants, puissent inclure simplement des mathématiques dans les pages Web à la main. De même, d'autres groupes, telle que la communauté des utilisateurs de TEX, seraient mieux servis par un système permettant d'entrer directement un langage de balisage comme TEX dans les pages Web. En général, les groupes d'utilisateurs spécifiques sont mieux servis par des dispositifs d'entrée et sortie spécialisés, taillés à leur mesure. Un système idéal de communication des mathématiques sur le Web devrait donc offrir à la fois des services spécialisés pour les entrées et sorties, et des services généraux pour échanger les informations et les rendre sur des médias divers.

En pratique, l'observation selon laquelle les mathématiques sur le Web devraient répondre à la fois à des besoins spécialisés et à des besoins généraux conduit naturellement à l'idée d'une architecture en couches. Une première couche serait constituée d'outils logiciels généraux et puissants pour échanger, traiter et rendre les données mathématiques codées de façon appropriée. Une seconde couche serait constituée d'outils logiciels spécialisés, pour des groupes d'utilisateurs spécifiques, permettant de générer facilement des données mathématiques codées à partager avec un public particulier.

MathML est conçu pour coder les informations mathématiques de la couche inférieure plus générale d'une architecture à deux couches. Il est destiné à coder une structure de notation et de sémantique complexe, de façon explicite, régulière et facile à traiter par les moteurs de rendu, les logiciels de recherche et d'indexation, et par d'autres applications mathématiques.

Par conséquent, le balisage MathML brut n'est pas d'abord destiné à l'usage direct des auteurs. Quoique MathML soit lisible par un humain, ce qui en facilite grandement le débogage, dans tous les cas hormis les plus simples, ce langage est trop verbeux et enclin à des erreurs pour être produit à la main. Les auteurs utiliseront plutôt des éditeurs d'équations, des programmes de conversion et d'autres logiciels spécialisés pour générer le code MathML. Sinon certains moteurs de rendu et systèmes gérant les mathématiques peuvent convertir, à la volée, d'autres types d'entrée inclus directement dans les pages Web sous forme MathML, par exemple, en réponse à une opération de copier-coller.

Par certains aspects, MathML ressemble à d'autres formats de communication de bas niveau, tel que le langage PostScript d'Adobe. On peut créer des fichiers PostScript de diverses façons, en fonction de ses besoins : les experts les écrivent et les modifient à la main, les auteurs les créent avec des logiciels de traitement de texte, les infographistes avec des logiciels graphiques, et ainsi de suite. Une fois que l'on dispose d'un fichier PostScript, on peut le partager avec un public très vaste, puisque les appareils de rendu du code PostScript, tels que les imprimantes et les prévisualiseurs à l'écran, sont très répandus.

Une des raisons de concevoir MathML comme un langage de balisage sur une couche de communication générale de bas niveau est de stimuler le développement des logiciels Web mathématiques dans la couche supérieure. MathML constitue un moyen de coordonner le développement modulaire d'outils d'édition et de logiciels de rendu. En facilitant le développement d'un morceau fonctionnel d'un système plus vaste, MathML peut accélérer l'apparition d'une masse critique du développement logiciel, au grand bénéfice des utilisateurs potentiels des mathématiques sur le Web.

On peut envisager une situation analogue en ce qui concerne les données mathématiques. Les auteurs sont libres de créer des documents MathML en se servant des outils les mieux adaptés pour leurs besoins. Par exemple, un étudiant préférera utiliser un éditeur d'équations piloté par un menu, capable de transcrire un code MathML en un fichier XHTML. Un chercheur utilisera un ensemble logiciel algébrique codant automatiquement le contenu mathématique d'une expression, qui pourra de cette façon être coupée sur une page Web et évaluée par un collègue. Un éditeur de publications universitaires se servira d'un programme convertissant le balisage TEX en HTML et en MathML. Quelle que soit la méthode employée pour créer une page Web avec un contenu MathML, une fois la page créée, tous les avantages d'une couche de communication générale puissante apparaissent. Des logicielss MathML variés pourront tous utiliser le même document pour le rendre sous forme parlée ou imprimée, pour le transmettre à un système de calcul algébrique ou pour le gérer comme partie d'une collection volumineuse de documents Web. Pour un rendu imprimé de haute qualité des mathématiques, le codage MathML sera souvent reconverti vers des langages de composition standards, dont TEX qui est très apprécié pour ce travail. Finalement, on peut prévoir que MathML apparaîtra dans d'autres domaines où interviennent des formules mathématiques, tels que les feuilles de calcul, les ensembles à statistiques et les outils d'ingéniérie.

Le groupe de travail Math du W3C collabore avec les éditeurs afin d'assurer une disponibilité prochaine de logiciels MathML variés, y compris des outils capables à la fois de rendu et d'édition. Une liste des logiciels MathML actuels est maintenue dans la page publique Math au World Wide Web Consortium.

1.3.2 Les relations avec les autres technologies du Web

Le concept original de Math HTML consistait en une simple extension directe de HTML, dont la mise en œuvre aurait été intégrée aux navigateurs. Toutefois, très rapidement, la croissance explosive du Web a clairement montré qu'un mécanisme d'extension général était nécessaire et que les mathématiques ne représentaient qu'un seul des nombreux types de données structurées qui auraient dû être intégrés au Web par ce mécanisme.

Puisque MathML doit s'intégrer au Web comme une extension, il est capital que MathML, et les logiciels MathML, puisse correctement interagir avec l'environnement Web existant. En particulier, MathML a été conçu pour trois types d'interaction. Premièrement, pour créer un contenu Web mathématique, il faut que les langages de balisage mathématiques existants puissent être convertis en MathML et que les outils d'édition existants puissent être modifiés pour générer du code MathML. Deuxièmement, il faut pouvoir incorporer, sans effort, un balisage MathML dans un balisage HTML, au fur et à mesure de son évolution, de façon à ce qu'il soit accessible aux navigateurs futurs, aux moteurs de recherche et à tous les types d'applications Web qui manipulent du code HTML aujourd'hui. Finalement, il faut pouvoir rendre du code MathML, incorporé d'une façon ou d'une autre à un document HTML, dans les navigateurs actuels, même si ce n'est pas idéal. À l'heure où HTML évolue vers XHTML, tous les besoins précédents se font de plus en plus pressants.

Le World Wide Web est un mouvement entièrement international et collaboratif. Les mathématiques sont un langage employé dans le monde entier. Les notations mathématiques des sciences et de l'ingéniérie sont incorporées dans une matrice de langues naturelles locales. Le W3C s'efforce d'être une force constructive pour le déploiement des possibilités de communication dans le monde. MathML rencontrera donc des difficultés à l'internationalisation. Cette version de MathML n'est pas réputée incompatible avec les besoins des langues dont l'écriture est de droite à gauche. Néanmoins, MathML 2.0 est orienté par défaut de gauche à droite, et il est clair que les besoins pour l'écriture de formules mathématiques incorporées dans certaines langues naturelles ne seront peut-être pas satisfaits. La technologie dite bidirectionnelle est toujours en cours de développement et les futurs développeurs devront s'atteler à une meilleure gestion des formules dans ce contexte.

1.3.2.1 Les langages de balisage des mathématiques existants

Le système de composition TEX, développé par Donald Knuth [Knuth1986], a peut-être eu la plus grande influence sur les langages de balisage mathématiques durant les vingt dernières années. TEX est un standard de facto dans la communauté des chercheurs en mathématiques et il s'est répandu dans la communauté scientifique dans son ensemble. TEX constitue un standard en ce qui concerne la qualité du rendu visuel et beaucoup d'efforts ont été consacrés afin d'assurer que MathML puisse offrir un rendu visuel identique. De plus, en raison de la quantité des documents existants en TEX et de la nombreuse communauté d'éditeurs versés dans TEX, une des priorités de conception fût de pouvoir convertir les entrées mathématiques en TEX dans le format MathML. La faisabilité de cette conversion a été démontrée par un logiciel prototype.

La communauté SGML a également fourni un travail considérable sur le codage des mathématiques, et les systèmes de codage fondés sur SGML sont largement utilisés par l'édition commerciale. La norme ISO 12083 est un langage de balisage important qui contient un fragment de DTD destiné essentiellement à décrire la présentation visuelle de la notation mathématique. Puisque la notation mathématique ISO 12083 et ses dérivés montrent beaucoup d'aspects communs avec la présentation de TEX et que SGML fait plus valoir la structure et la régularité que TEX, la majeure partie des travaux afin d'assurer la compatibilité de MathML avec TEX s'applique bien à ISO 12083 aussi.

MathML porte également une attention particulière à la compatibilité avec d'autres logiciels mathématiques, notamment avec les systèmes de calcul algébrique. Beaucoup d'éléments de présentation MathML sont dérivés pour partie du mécanisme des boîtes de composition. Les éléments de contenu MathML doivent beaucoup au projet OpenMath et aux travaux de Stilo Technologies sur un fragment de DTD mathématique. Le projet OpenMath, étroitement lié aux deux communautés SGML et algèbre informatique, a établi les bases d'un moyen avec SGML et XML permettant aux ensembles de logiciels mathématiques de communiquer, entre autres choses. La faisabilité de la génération et de l'interprétation de MathML dans les systèmes de calcul algébrique a été démontrée par un logiciel prototype.

1.3.2.2 Les mécanismes d'extension de HTML

Comme expliqué précédemment, le succès de HTML a conduit à une pression énorme pour que des types de données et des applications logicielles très divers soient incorporés au Web. Chaque nouveau format, ou application, se traduit par une demande renouvelée sur le langage HTML et les éditeurs de navigateurs. La nécessité d'un mécanisme d'extension général, pour adapter de nouvelles extensions à HTML se faisait clairement sentir depuis quelques temps. Au tout début, le groupe de travail avait lancé son effort en pensant à une simple extension de HTML, dans l'esprit d'une gestion des mathématiques d'abord suggérée pour HTML 3.2. Mais une fois entré dans les détails, il est apparu pour beaucoup de bonnes raisons que cette approche était mauvaise. Dès les premiers travaux sur MathML, le langage XML [XML] s'est révélé comme le mécanisme d'extension général dominant.

XML (Extensible Markup Language) signifie langage de balisage extensible. C'est une version simplifiée de SGML, le métalangage qui sert à définir la grammaire et la syntaxe de HTML. Un des objectifs du langage XML est de pouvoir être utilisé sur le Web et, dans le contexte de cette discussion, on peut le considérer comme le mécanisme général d'extension de HTML. Comme son nom l'indique, l'extensibilité est une caractéristique clé de XML : les auteurs sont libres de déclarer des éléments et attributs nouveaux et de s'en servir. En même temps, les règles de grammaire et de syntaxe de XML imposent une structure de document régulière qui facilite le traitement et la maintenance automatiques des collections de documents importantes. Mathématiquement parlant, XML est essentiellement une notation d'arbres planaires enracinés en étoile, qui offre donc une réprésentation très générale comme outil de codage.

Depuis la mise en place du premier groupe de travail Math du W3C, le langage XML a réuni beaucoup de suffrages dans l'industrie, y compris chez les éditeurs des navigateurs principaux. La migration de HTML à une forme XML, importante pour le W3C, a abouti à la recommandation XHTML qui offre une forme modulaire nouvelle de HTML. On peut assimiler MathML à un autre module qui se loge parfaitement dans le nouveau langage XHTML. En effet, dans la Section A.2 [MathML comme module de définition de type de document (DTD)], on trouvera une nouvelle définition DTD mathématique qui est le fruit d'une collaboration avec le groupe de travail HTML du W3C.

En outre, d'autres applications de XML pour tous types de publications et de traitements de documents promettent de prendre de l'importance. Par conséquent, d'un point de vue théorique et pragmatique, la définition de MathML comme une application XML apparaît logique.

1.3.2.3 Les mécanismes d'extension des navigateurs

Aujourd'hui, contrairement à la situation qui prévalait à l'adoption de la recommandation MathML 1.0, les détails du modèle général de rendu et de traitement des extensions XML vers HTML sont bien clairs. Les propriétés de formatage, développées par le groupe de travail Feuilles de style en cascade et propriétés de formatage de l'activité CSS et exposées au travers du modèle objet de document (DOM), s'appliqueront aux éléments MathML pour contrôler le style de la présentation MathML. La poursuite du développement de ces propriétés de formatage est inscrite dans la charte des deux groupes de travail CSS&FP et XSL. Pour une introduction à ce sujet, cf. l'explication dans le chapitre 7 L'interface MathML. Pour des explications précises concernant le rendu d'un code MathML dans les systèmes actuels, consulter la page d'accueil du groupe de travail Math du W3C.

Toutefois, tant que les mécanismes de feuille de style ne permettent pas un rendu natif de MathML dans les navigateurs, il reste nécessaire d'étendre les capacités des navigateurs en recourant à des éléments imbriqués pour rendre du code MathML. On peut déjà indiquer au navigateur d'utiliser un moteur de rendu intégré particulier afin de traiter un balisage XML incorporé, tel que MathML, et de coordonner le résultat en sortie avec la page Web environnante ; cependant, les résultats ne sont pas encore tout à fait au niveau espéré. Cf. le chapitre 7 L'interface MathML.

Pour un traitement spécialisé, telle qu'une connexion à un système de calcul algébrique, la possibilité de faire appel à d'autres programmes est probablement toujours très souhaitable. Toutefois, pour qu'une telle interaction soit vraiment satisfaisante, il est nécessaire de définir un modèle objet de document suffisamment riche pour faciliter les interactions complexes entre les navigateurs et les éléments imbriqués. C'est la raison pour laquelle le groupe de travail Math du W3C a coordonné étroitement ses efforts à ceux du groupe de travail sur le modèle objet de document (DOM). Le produit de cette collaboration est décrit dans le chapitre 8 Le modèle objet de document de MathML.

Pour le traitement par des éléments imbriqués et pour l'intercommunication entre logiciels scientifiques en général, un modèle de disposition fondé sur des feuilles de style est par ailleurs loin d'être idéal. Il peut imposer un coût de mise en œuvre supplémentaire dans une configuration où il n'offrira que peu d'avantages, et il peut imposer des contraintes de mise en œuvre pour une coordination entre les navigateurs et les moteurs de rendu incorporés dont la disponibilité ne sera vraisemblablement pas immédiate dans un futur proche.

Pour ces raisons, la spécification MathML définit un modèle de disposition fondé sur des attributs, qui s'est révélé très efficace pour rendre des expressions mathématiques complexes en haute qualité dans plusieurs mises en œuvre indépendantes. Les attributs de présentation MathML utilisent les propriétés de formatage du W3C où c'est possible. Les éléments MathML acceptent aussi les attributs class, style et id pour faciliter l'utilisation des feuilles de style CSS. Toutefois, peu de configurations avec une machinerie CSS sont actuellement disponibles pour les moteurs de rendu MathML.

Ci-dessus, on mentionne l'utilisation de mécanismes de feuille de style CSS. Disponibles depuis peu, les mécanismes de XSL permettent de transformer les documents XML pour déterminer leur rendu. En effet, les autres formes de cette recommandation, y compris la version HTML publique définitive, ont été préparées d'après une source XML sous-jacente en recourant aux outils du langage de transformation XSL. Au fur et à mesure des développements dans cette direction, on prévoit que cela deviendra la méthode prépondérante pour contrôler le style des présentations MathML destinées aux environnements de rendu gérant ces mécanismes.

Table des matières : Le langage de balisage mathématique (MathML) version 2.0
Chapitre suivant : 2 Les principes fondamentaux de MathML