Mathematical Markup Language (MathML) is a pair of
mathematical markup language
A mathematical markup language is a computer notation for representing mathematical formulae, based on mathematical notation. Specialized markup languages are necessary because computers normally deal with linear text and more limited character se ...
s, an application of
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
for describing
mathematical
Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
notations and capturing both its structure and content. Its aim is to natively integrate mathematical formulae into
World Wide Web
The World Wide Web (WWW or simply the Web) is an information system that enables Content (media), content sharing over the Internet through user-friendly ways meant to appeal to users beyond Information technology, IT specialists and hobbyis ...
pages and other documents. It is part of
HTML5
HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
and standardised by
ISO
The International Organization for Standardization (ISO ; ; ) is an independent, non-governmental, international standard development organization composed of representatives from the national standards organizations of member countries.
Me ...
/IEC since 2015.
[
]
History
Following some experiments in the Arena browser
The Arena browser (also known as the Arena WWW Browser) was one of the first web browsers for Unix. Originally begun by Dave Raggett in 1993, development continued at CERN and the World Wide Web Consortium (W3C) and subsequently by Yggdrasil Com ...
based on proposals for mathematical markup in HTML, MathML 1 was released as a W3C recommendation in April 1998 as the first XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
language to be recommended by the W3C
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
. Version 1.01 of the format was released in July 1999 and version 2.0 appeared in February 2001. Implementations of the specification appeared in Amaya 1.1, Mozilla 1.0 and Opera 9.5. In October 2003, the second edition of MathML Version 2.0 was published as the final release by the W3C Math Working Group.
MathML was originally designed before the finalization of XML namespace
XML namespaces are used for providing uniquely named elements and attributes in an XML document. They are defined in a W3C recommendation. An XML instance may contain element or attribute names from more than one XML vocabulary. If each vocabulary ...
s. However, it was assigned a namespace immediately after the Namespace Recommendation was completed, and for XML use, the elements should be in the namespace with namespace URL ''http://www.w3.org/1998/Math/MathML''. When MathML is used in HTML (as opposed to XML) this namespace is automatically inferred by the HTML parser and need not be specified in the document.
MathML version 3
Version 3 of the MathML specification was released as a W3C recommendation
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
on 20 October 2010. A recommendation of ''A MathML for CSS Profile'' was later released on 7 June 2011; this is a subset of MathML suitable for CSS formatting. Another subset, ''Strict Content MathML'', provides a subset of content MathML with a uniform structure and is designed to be compatible with OpenMath OpenMath is the name of a markup language for specifying the meaning of mathematical formulae. Among other things, it can be used to complement MathML, a standard which mainly focuses on the presentation of formulae, with information about their sem ...
. Other content elements are defined in terms of a transformation to the strict subset. New content elements include which associates bound variables () to expressions, for example a summation index. The new element allows structure sharing.[
The development of MathML 3.0 went through a number of stages. In June 2006, the W3C rechartered the MathML Working Group to produce a MathML 3 Recommendation until February 2008, and in November 2008 extended the charter to April 2010. A sixth Working Draft of the MathML 3 revision was published in June 2009. On 10 August 2010 version 3 graduated to become a "Proposed Recommendation" rather than a draft.] An implementation of MathML 2 landed in WebKit
WebKit is a browser engine primarily used in Apple's Safari web browser, as well as all web browsers on iOS and iPadOS. WebKit is also used by the PlayStation consoles starting with the PS3, the Tizen mobile operating systems, the Amazon K ...
around this same time, with a Chromium
Chromium is a chemical element; it has Symbol (chemistry), symbol Cr and atomic number 24. It is the first element in Group 6 element, group 6. It is a steely-grey, Luster (mineralogy), lustrous, hard, and brittle transition metal.
Chromium ...
implementation following a couple of years later, although that implementation was removed from Chromium after less than a year.
The Second Edition of MathML 3.0 was published as a W3C Recommendation on 10 April 2014.[ The specification was approved as an ]ISO/IEC
ISO/IEC JTC 1, entitled "Information technology", is a joint technical committee (JTC) of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). Its purpose is to develop, maintain and ...
international standard 40314:2015 on 23 June 2015. Also in 2015, the MathML Association was founded to support the adoption of the MathML standard. At that time, according to a member of the MathJax
MathJax is a cross-browser JavaScript library that displays mathematical notation in web browsers, using MathML, LaTeX, and ASCIIMathML markup. MathJax is released as open-source software under the Apache License.
The MathJax project started in ...
team, none of the major browser makers paid any of their developers for any MathML-rendering work; whatever support existed was overwhelmingly the result of unpaid volunteer time/work.
MathML Core
In August 2021, a new specification called MathML Core was published, described as the “core subset of Mathematical Markup Language, or MathML, that is suitable for browser implementation.” MathML Core set itself apart from MathML 3.0 by including detailed rendering rules and integration with CSS, automated browser support testing resources, and focusing on a fundamental subset of MathML. An implementation was added to Chromium at the beginning of 2023.
Presentation and semantics
MathML deals not only with the ''presentation'' but also the ''meaning'' of formula components (the latter part of MathML is known as "Content MathML"). Because the meaning of the equation is preserved separate from the presentation, how the content is communicated can be left up to the user. For example, web pages with MathML embedded in them can be viewed as normal web pages with many browsers, but visually impaired users can also have the same MathML read to them through the use of screen readers
A screen reader is a form of assistive technology (AT) that renders text and image content as speech or braille output. Screen readers are essential to blindness, blind people, and are useful to visually impaired people, Illiteracy, illiterate, ...
(e.g. using the VoiceOver
Voice-over (also known as off-camera or off-stage commentary) is a production technique used in radio, television, filmmaking, theatre, and other media in which a descriptive or expository voice that is not part of the narrative (i.e., non- ...
in Safari
A safari (; originally ) is an overland journey to observe wildlife, wild animals, especially in East Africa. The so-called big five game, "Big Five" game animals of Africa – lion, African leopard, leopard, rhinoceros, African elephant, elep ...
). JAWS
Jaws or Jaw can refer to:
Anatomy
* Jaw, an opposable articulated structure at the entrance of the mouth
** Mandible, the lower jaw
Arts, entertainment, and media
* Jaws (James Bond), a character in ''The Spy Who Loved Me'' and ''Moonraker''
...
from version 16 onward supports MathML voicing as well as braille output.
The quality of rendering of MathML in a browser depends on the installed fonts. The STIX Fonts project
The STIX Fonts project or Scientific and Technical Information Exchange (STIX), is a project sponsored by several leading scientific and technical publishers to provide, under royalty-free license, a comprehensive font set of mathematical symbol ...
have released a comprehensive set of mathematical fonts under an open license. The Cambria Math
Cambria is a transitional serif typeface commissioned by Microsoft and distributed with Windows and Office. It was designed by Dutch typeface designer Jelle Bosma in 2004, with input from Steve Matteson and Robin Nicholas. It is intended as a se ...
font supplied with Microsoft Windows had slightly more limited support.
A valid MathML document typically consists of the XML declaration, DOCTYPE
A document type declaration, or DOCTYPE, is an instruction that associates a particular XML or SGML document (for example, a web page) with a document type definition (DTD) (for example, the formal definition of a particular version of HTML 2.0 - ...
declaration, and document element. The document body then contains MathML expressions which appear in elements as needed in the document. Often, MathML will be embedded in more general documents, such as HTML
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
, DocBook
DocBook is a Semantics (computer science), semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software, but it can be used for any other sort of docume ...
, or other XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
-based formats.
Presentation MathML
Presentation MathML focuses on the display of an equation, and has about 30 elements. The elements' names all begin with . A Presentation MathML expression is built up out of ''tokens'' that are combined using higher-level elements, which control their layout. Finer details of presentation are affected by close to 50 attributes.
Token elements generally only contain characters (not other elements). They include:
* – identifiers;
* – operators;
* – numbers;
* – text.
Note, however, that these token elements may be used as extension points, allowing markup in host languages.
MathML in HTML5
HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
allows most inline HTML markup in mtext, and is conforming, with the HTML markup being used within the MathML to mark up the embedded text (making the first word bold in this example).
These are combined using layout elements, that generally contain only elements. They include:
* – a horizontal row of items;
* , , and others – superscripts, limits over and under operators like sums, etc.;
* – fractions;
* and – roots;
* – surrounding content with fences, such as parentheses.
As usual in HTML and XML, many entities
An entity is something that exists as itself. It does not need to be of material existence. In particular, abstractions and legal fictions are usually regarded as entities. In general, there is also no presumption that an entity is animate, or ...
are available for specifying special symbols by name, such as and . An interesting feature of MathML is that entities also exist to express normally-invisible operators, such as (or the shorthand ) for implicit multiplication. They are:
* (to distinguish from in );
* (to distinguish from in );
* (vice versa);
* (to distinguish from in ).
The full specification of MathML entities is closely coordinated with the corresponding specifications for use with HTML and XML in general.
Thus, the expression requires two layout elements: one to create the overall horizontal row and one for the superscripted exponent. However, the individual tokens also have to be identified as identifiers (), operators (), or numbers (). Adding the token markup, the full form ends up as
a x2
+bx
+c
A complete document that consists of just the MathML example above, is shown here:
Content MathML
Content MathML focuses on the semantics, or meaning, of the expression rather than its layout. Central to Content MathML is the element that represents function application. The function being applied is the first child element under , and its operands or parameters are the remaining child elements. Content MathML uses only a few attributes.
Tokens such as identifiers and numbers are individually marked up, much as for Presentation MathML, but with elements such as and . Rather than being merely another type of token, operators are represented by specific elements, whose mathematical semantics are known to MathML: , , etc. There are over a hundred different elements for different functions and operators.
For example, represents and represents . The elements representing operators and functions are empty elements, because their operands are the other elements under the containing .
The expression could be represented as
Content MathML is nearly isomorphic
In mathematics, an isomorphism is a structure-preserving mapping or morphism between two structures of the same type that can be reversed by an inverse mapping. Two mathematical structures are isomorphic if an isomorphism exists between the ...
to expressions in a functional language
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map ...
such as Scheme
Scheme or schemer may refer to:
Arts and entertainment
* ''The Scheme'', a BBC Scotland documentary TV series
* The Scheme (band), an English pop band
* ''The Scheme'', an action role-playing video game for the PC-8801, made by Quest Corporation
* ...
and other dialects of Lisp
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
. amounts to Scheme's , and the many operator and function elements amount to Scheme functions. With this trivial literal transformation, plus un-tagging the individual tokens, the example above becomes:
(plus
(times a (power x 2))
(times b x)
c)
This reflects the long-known close relationship between XML element structures, and LISP
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
or Scheme S-expressions
In computer programming, an S-expression (or symbolic expression, abbreviated as sexpr or sexp) is an expression in a like-named notation for nested list (tree-structured) data. S-expressions were invented for, and popularized by, the programming ...
.
Wikidata annotation in Content MathML
According to the OM Society, OpenMath Content Dictionaries can be employed as collections of symbols and identifiers with declarations of their semanticsnames, descriptions and rules. A 2018 paper presented at the SIGIR conference proposed that the semantic knowledge base Wikidata
Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. It is a common source of open data that Wikimedia projects such as Wikipedia, and anyone else, are able to use under the CC0 public domain ...
could be used as an OpenMath Content Dictionary to link semantic elements of a mathematical formula to unique and language-independent Wikidata items.
Example
The well-known quadratic formula
In elementary algebra, the quadratic formula is a closed-form expression describing the solutions of a quadratic equation. Other ways of solving quadratic equations, such as completing the square, yield the same solutions.
Given a general quadr ...
could be represented in Presentation MathML as an expression tree made up from layout elements like or :
This example uses the element, which can be used to embed a semantic annotation in non-XML format, for example to store the formula in the format used by an equation editor such as StarMath
StarOffice is a discontinued proprietary software, proprietary office suite. Its source code continues today in derived open-source office suites Collabora Online and LibreOffice. StarOffice supported the OpenOffice.org XML file format, as well ...
or the markup using LaTeX
Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well.
In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
syntax. The field is usually a MIME type
In information and communications technology, a media type, content type or MIME type is a two-part identifier for file formats and content formats. Their purpose is comparable to filename extensions and uniform type identifiers, in that they ide ...
, although most of the equation encodings don't have such a registration; freeform text may be used in such cases.
Although less compact than other formats, the XML structuring of MathML makes its content widely usable and accessible, allows near-instant display in applications such as web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
s, and facilitates an interpretation of its meaning in mathematical software products. MathML is not intended to be written or edited directly by humans.
Embedding MathML in HTML/XHTML files
MathML, being XML, can be embedded inside other XML files such as XHTML
Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated.
While HTML, pr ...
files using XML namespaces.
Example of MathML embedded in an XHTML file
Example of MathML embedded in an XHTML file
The area of a circle is
.
Inline MathML is also supported in HTML5
HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
files. There is no need to specify namespaces as there was in XHTML
Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated.
While HTML, pr ...
.
Example of MathML embedded in an HTML5 file
Example of MathML embedded in an HTML5 file
The area of a circle is
.
Other standards
Another standard called OpenMath OpenMath is the name of a markup language for specifying the meaning of mathematical formulae. Among other things, it can be used to complement MathML, a standard which mainly focuses on the presentation of formulae, with information about their sem ...
that has been more specifically designed (largely by the same people who devised Content MathML) for storing formulae semantically can be used to complement MathML. OpenMath data can be embedded in MathML using the element. OpenMath ''content dictionaries'' can be used to define the meaning of elements. The following would define ''P''1(''x'') to be the first Legendre polynomial
In mathematics, Legendre polynomials, named after Adrien-Marie Legendre (1782), are a system of complete and orthogonal polynomials with a wide number of mathematical properties and numerous applications. They can be defined in many ways, and t ...
:
P1
x
The OMDoc
OMDoc (Open Mathematical Documents) is a semantic markup format for mathematical documents. While MathML only covers mathematical formulae and the related OpenMath standard only supports formulae and “content dictionaries” containing definitio ...
format has been created for markup of larger mathematical structures than formulae, from statements like definitions, theorems, proofs, and examples, to complete theories and even entire text books. Formulae in OMDoc documents can either be written in Content MathML or in OpenMath; for presentation, they are converted to Presentation MathML.
The ISO
The International Organization for Standardization (ISO ; ; ) is an independent, non-governmental, international standard development organization composed of representatives from the national standards organizations of member countries.
Me ...
/IEC
The International Electrotechnical Commission (IEC; ) is an international standards organization that prepares and publishes international standards for all electrical, electronic and related technologies. IEC standards cover a vast range of ...
standard Office Open XML
Office Open XML (also informally known as OOXML) is a zipped, XML-based file format developed by Microsoft for representing spreadsheets, charts, presentations and word processing documents. Ecma International standardized the initial version ...
(OOXML) defines a different XML math syntax, derived from Microsoft Office
Microsoft Office, MS Office, or simply Office, is an office suite and family of client software, server software, and services developed by Microsoft. The first version of the Office suite, announced by Bill Gates on August 1, 1988, at CO ...
products. However, it is partially compatible through XSL Transformations
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text, or XSL Formatting Objects. These formats ca ...
.
See also
* CSS
* List of document markup languages
The following is a list of document markup languages. You may also find the List of markup languages of interest.
Well-known document markup languages
* HyperText Markup Language (HTML) – an ad hoc markup language that was originally created f ...
* Comparison of document markup languages
The following tables compare general and technical information for a number of document markup languages. Please see the individual markup languages' articles for further information.
General information
Basic general information about the mark ...
* Formula editor
A formula editor is a computer program that is used to typeset mathematical formulas and mathematical expressions.
Formula editors typically serve two purposes:
* They allow word processing and publication of technical content either for prin ...
s
* LaTeX2HTML
Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well.
In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
* LaTeXML
LaTeXML is a free public domain software package which converts LaTeX documents to XML, HTML, EPUB, JATS and TEI.
Workflow
LaTeXML's primary output format is an XML representation of (La)TeX's document model. A postprocessor can convert the ...
* KaTeX
KaTeX is a cross-browser JavaScript library that displays mathematical notation in web browsers. It puts special emphasis on being fast and easy to use.
It was initially developed by Khan Academy, and became one of the top five trending projects ...
JavaScript library that converts LaTeX to MathML
* MathJax
MathJax is a cross-browser JavaScript library that displays mathematical notation in web browsers, using MathML, LaTeX, and ASCIIMathML markup. MathJax is released as open-source software under the Apache License.
The MathJax project started in ...
JavaScript library that converts LaTeX to MathML
References
Further reading
Specifications
W3C Recommendation: Mathematical Markup Language (MathML) 1.01 Specification
W3C Recommendation: Mathematical Markup Language (MathML) Version 2.0 (Second Edition)
W3C Recommendation: Mathematical Markup Language (MathML) Version 3.0 (Third Edition)
External links
W3C Math Home
– Contains the specifications, a FAQ, and a list of supporting software.
*
* – A collection of XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text, or XSL Formatting Objects. These formats c ...
programs for handling MathML (e.g. converting Content MathML to Presentation MathML, converting Presentation MathML to TeX
Tex, TeX, TEX, may refer to:
People and fictional characters
* Tex (nickname), a list of people and fictional characters with the nickname
* Tex Earnhardt (1930–2020), U.S. businessman
* Joe Tex (1933–1982), stage name of American soul singer ...
)
{{DEFAULTSORT:Mathml
Articles with example Scheme (programming language) code
Mathematical markup languages
World Wide Web Consortium standards
XML markup languages
XML-based standards