MathML

El MathML o Mathematical Markup Language es un lenguaje de marcado basado en XML, cuyo objetivo es expresar notación matemática de forma que distintas máquinas puedan entenderla, para su uso en combinación con XHTML en páginas web, y para intercambio de información entre programas de tipo matemático en general.

El soporte de MathML es grande en programas matemáticos (como Maple o Mathcad), pero aún escaso en navegadores. Al año 2016, Gecko/Mozilla Firefox contaba con el mejor soporte MathML, seguido de los navegadores basados en Webkit (como Safari). Google Chrome había heredado la funcionalidad a partir de Webkit, pero fue eliminada empezando en la versión 25. Opera, que una vez contó con un soporte casi completo, también lo perdió desde la versión 13 a raíz de migrar a Blink/Chrome. En Internet Explorer jamás ha estado disponible, excepto mediante un complemento. Los autores de sitios Web pueden acudir al script MathJax para renderizar MathML en navegadores que no cuentan con soporte nativo.

Historia
MathML 1 apareció como recomendación del W3C en abril de 1998 siendo el primer lenguaje XML recomendado por el W3C. La versión 1.0 del formato fue lanzado en julio de 1999 y la versión 2.0 apareció en febrero de 2001.

En octubre de 2003, la segunda edición de MathML versión 2.0 fue publicada como versión final por el W3C math working group.

MathML fue originalmente diseñado antes de la finalización de espacio de nombres XML. Sin embargo, se le asignó un espacio de nombres inmediatamente después de que la recomendación del espacio de nombres XML fuera completado. Para su uso en XML, los elementos deben ir con el espacio de nombres y URI http://www.w3.org/1998/Math/MathML. Cuando MathML es usado con HTML (a diferencia del uso en XML), el espacio de nombres es automáticamente inferido por el parser de HTML y no necesita estar especificado en el documento.

MathML versión 3

La versión 3 de la especificación MathML fue lanzada como Recomendación de W3C el 20 de octubre de 2010. Una recomendación de A MathML for CSS Profile fue lanzada después el 7 de junio de 2011; este es un subconjunto de MathML adecuado para el formateo con CSS. Otro subconjunto, Strict Content MathML, proporciona un subconjunto estricto de content MathML con una estructura uniforme y está designado para ser compatible con OpenMath. Otros elementos de content MathML se definen en términos de una transformación al subconjunto estricto. Nuevos elementos de content son 
<bind>, que asocia una variable ligada (<bvar>) a expresiones, por ejemplo un índice en un sumatorio. El nuevo elemento <share> permite la compartición de la estructura.

El desarrollo de MathML 3.0 se realizó a través de un número de estadios. En junio de 2006 el W3C encargo al grupo de trabajo de MathML (MathML Working Group) a elaborar una recomendación de MathML 3 hasta febrero de 2008 y, en noviembre de 2008, se extendió el encargo a abril de 2010. El sexto borrador de la revisión MathML 3 se publicó en junio de 2009. El 10 de agosto de 2010 la versión 3 se graduó para ser una "propuesta de recomendación" en vez de ser un borrador.

Ejemplo 
La bien conocida solución de la ecuación de segundo grado (quadratic formula):

se escribe en sintaxis TeX de la siguiente manera:
 x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
y usando MathML así:
<nowiki>
<math>
 <mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>&PlusMinus;</mo>
      <msqrt>
        <mrow>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>-</mo>
          <mrow>
            <mn>4</mn>
            <mo>&InvisibleTimes;</mo>
            <mi>a</mi>
            <mo>&InvisibleTimes;</mo>
            <mi>c</mi>
          </mrow>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>&InvisibleTimes;</mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
 </mrow>
</math>
</nowiki>

A pesar de ser menos compacta que TeX, la estructuración XML promete hacerla ampliamente usable y permite su visualización instantánea en aplicaciones como navegadores web, además de facilitar una interpretación directa de su significado en programas matemáticos. MathML no está pensado para ser escrito o editado directamente por humanos.

Véase también 
 TeX
 LaTeX
 OpenMath
 AsciiMath

Referencias

Enlaces externos 
 Página oficial 
 
 Conversión de MathML a texto llano y viceversa https://xrjunque.nom.es/MathML_To_String.aspx

XML
Acrónimos de informática
Lenguajes de marcado
Estándares del World Wide Web Consortium