Abstract:

This specification defines the Mathematical Markup Language, or MathML. MathML is
a markup language for describing mathematical notation and capturing both its structure
and content. The goal of MathML is to enable mathematics to be served, received, and
processed on the World Wide Web, just as HTML has enabled this functionality for text.
This specification of the markup language MathML is intended primarily for a readership
consisting of those who will be developing or implementing renderers or editors using
it, or software that will communicate using MathML as a protocol for input or output.
It is not a User's Guide but rather a reference document. MathML can be used to encode
both mathematical notation and mathematical content. About thirtyeight of the MathML
tags describe abstract notational structures, while another about one hundred and
seventy provide a way of unambiguously specifying the intended meaning of an expression.
Additional chapters discuss how the MathML content and presentation elements interact,
and how MathML renderers might be implemented and should interact with browsers. Finally,
this document addresses the issue of special characters used for mathematics, their
handling in MathML, their presence in Unicode, and their relation to fonts. While
MathML is humanreadable, authors typically will use equation editors, conversion
programs, and other specialized software tools to generate MathML. Several versions
of such MathML tools exist, both freely available software and commercial products,
and more are under development.
