Introducción a MathML

MathML -Mathematical Markup Language- es el lenguaje de marcado estándar basado en xml dirigido a la expresión de la notación matemática. Aunque en sus inicios fue concebido para integrar las expresiones matemáticas en páginas web, ha evolucionado hasta convertirse en un formato para el intercambio y comunicación de las matématicas en multitud de programas matemáticos y de otras ciencias.

Al contrario de lo que podría parecer, este lenguaje no es nuevo. Según podemos leer en wikipedia, la primera versión data de abril de 1998, siendo de hecho el primer lenguaje basado en XML recomendado por la W3C. En octubre de 2010 fue establecido como recomendación de la W3C MathML 3.0, última versión desarrollada hasta la fecha y actual está ndar.

Mientras que la acogida de MathML ha sido buena en programas matemáticos como Matlab, Maple, Mathcad o incluso el Math Input Panel de Windows 7, hasta ahora no ha sucedido lo mismo en los navegadores web tal y como se muestra en la tabla de caniuse.com. De hecho, hasta la llegada de HTML5, MathML ni siquiera estaba oficialmente soportado en HTML.

Hay que destacar que se acaba de anunciar su soporte en la última versión estable de Google Chrome recientemente liberada (v.24.0.1312.52), lo que esperemos que suponga un punto de inflexión para la adopción de este lenguaje en el desarrollo web. De hecho, este ha sido el motivo por el que me he animado a escribir el artículo.

r

Para los que usamos Firefox, creo que es importante comentar la existencia de Firemath. Esta extensión nos permite escribir expresiones matemáticas que son traducidas automáticamente a MathML. Muy útil y práctica.

Debemos tener en cuenta que a pesar de estar basado en XML no necesitamos establecer cabecera alguna en nuestros documentos HTML. MathML se integra a la perfección con HTML5 por medio de la etiqueta <math> dentro de la cual colocaremos todos los elementos matemáticos. Aquí podemos ver un sencillo ejemplo:

<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="UTF-8">
        <title>MathML Example</title>
    </head>
    <body>
        <math xmlns="http://www.w3.org/1998/Math/MathML"&
gt;
            <mrow>
                <msup><mi>a</mi><mn>2</mn></msup>
                <mo>+</mo>
                <msup><mi>b</
mi><mn>2</mn></msup>
                <mo>=</mo>
                <msup><mi>c</mi><mn>2</mn></msup>
            </mrow>
        </math>
    </body>
</html>

Que mostrará:

html5 ecuaciones matematicas

MathML dispone de unos 30 elementos, todos los cuales comienzan por la letra "m", y alrededor de unos 50 atributos. La verdad es que en la red no existen (o aún no he encontrado) muchos ejemplos de código escrito en MathML 3.0 ni tampoco tutoriales muy completos para desarrolladores. Como sospechaba no había buscado bien: en la misma página de desarrolladores de mozilla tenemos una excelente guía de elementos.

En esta página también encontramos algunos ejemplos completos. Y en este mismo dominio podéis encontrar una expresión bastante más compleja donde muestro la notación matricial de un sistema de ecuaciones lineales.

En el próximo artículo explicaré los principales elementos y atributos de este lenguaje.

Comments

You must sing in to post a comment.

There are no comments for this article.