What Is MathML: Notation and Semantics in XML

Mathematical Markup Language (MathML) is an XML-based standard developed by the World Wide Web Consortium (W3C) for describing mathematical notations and capturing both their visual structure and underlying mathematical meaning. This article explains the fundamentals of MathML, detailing how it uses XML syntax to encode visual equations through Presentation MathML, preserve mathematical logic through Content MathML, and combine both to enhance digital accessibility and scientific publishing.

What is MathML?

MathML is a specialized dialect of XML designed to integrate mathematical formulas seamlessly into web pages, digital documents, and electronic publishing formats like EPUB. Standard text processing systems often struggle with the two-dimensional layout of mathematics (such as fractions, matrices, and exponents). MathML solves this by providing a standardized, machine-readable format that browsers, screen readers, and computational algebra systems can render and evaluate natively.

MathML is divided into two primary sub-languages: 1. Presentation MathML: Focuses on the visual rendering and layout of equations. 2. Content MathML: Focuses on the semantic meaning and computational structure of equations.


Presentation MathML: Encoding Visual Notation

Presentation MathML uses XML elements to describe how a mathematical expression should look on a screen or page. It breaks expressions down into layout tokens and structural wrappers.

Key Presentation Elements

Example: \(x^2 + 4\) in Presentation MathML

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <msup>
      <mi>x</mi>
      <mn>2</mn>
    </msup>
    <mo>+</mo>
    <mn>4</mn>
  </mrow>
</math>

In this structure, the rendering engine recognizes that \(2\) is an exponent of \(x\) and places it in the upper-right position, while maintaining the correct spacing around the plus sign.


Content MathML: Encoding Mathematical Semantics

While Presentation MathML describes layout, it does not convey mathematical meaning. For example, \(f(x)\) could visually mean “\(f\) multiplied by \(x\)” or the “function \(f\) applied to \(x\).” Content MathML resolves this ambiguity by explicitly declaring mathematical operations, operands, and relations.

Content MathML uses prefix notation (operator followed by operands) enclosed in an <apply> element.

Key Content Elements

Example: \(x^2 + 4\) in Content MathML

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <apply>
    <plus/>
    <apply>
      <power/>
      <ci>x</ci>
      <cn>2</cn>
    </apply>
    <cn>4</cn>
  </apply>
</math>

In this format, software can directly interpret that the operation is addition, where the first operand is \(x\) raised to the power of \(2\), and the second operand is the integer \(4\).


Combining Notation and Semantics

MathML allows authors to combine visual layout and semantic data using the <semantics>, <annotation>, and <annotation-xml> elements. This parallel markup ensures an equation can be rendered accurately on the web while remaining accessible to computer algebra systems or assistive technology.

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <semantics>
    <!-- Visual presentation -->
    <mrow>
      <msup><mi>x</mi><mn>2</mn></msup>
      <mo>+</mo>
      <mn>4</mn>
    </mrow>
    
    <!-- Semantic data -->
    <annotation-xml encoding="MathML-Content">
      <apply>
        <plus/>
        <apply><power/><ci>x</ci><cn>2</cn></apply>
        <cn>4</cn>
      </apply>
    </annotation-xml>

    <!-- Optional LaTeX source for copy-pasting -->
    <annotation encoding="application/x-tex">x^2 + 4</annotation>
  </semantics>
</math>

Why MathML Matters