What is MathML? | Software | Working Group | Background | Member Area
MathML 1.01, a revised version of the W3C MathML 1.0 Recommendation (7th April 1998), was released on 7 July 1999. As the first product of the W3C Math working group, MathML is a low-level specification for describing mathematics as a basis for machine to machine communication. It provides a much needed foundation for the inclusion of mathematical expressions in Web pages.
MathML is intended to facilitate the use and re-use of mathematical and scientific content on the Web, and for other applications such as computer algebra systems, print typesetting, and voice synthesis. MathML can be used to encode both the presentation of mathematical notation for high-quality visual display, and mathematical content, for applications where the semantics plays more of a key role such as scientific software or voice synthesis.
MathML is cast as an application of XML. As such, with adequate style sheet support, it will ultimately be possible for browsers to natively render mathematical expressions. For the immediate future, several vendors offer applets and plug-ins which can render MathML in place in a browser. Translators and equation editors which can generate HTML pages where the math expressions are represented directly in MathML will be available soon.
Although the mark-up language HTML has a large repertoire of tags, it does not cater for math. With no means of using HTML tags to mark up mathematical expressions, authors have resorted to drastic means. For example, a popular method involves inserting images - literally snap shots of equations taken from other packages and saved in GIF format - into technical documents which have a mathematical or scientific content.
W3C has been working with a number of companies with experience in editing and processing math on computers, as well as other specialist organizations. This work has culminated in a markup language called MathML, and W3C released MathML 1.0 as a Recommendation in April 1998. On July 7, 1999 the Math Working Group posted MathML 1.01, a revised version of the MathML 1.0 Recommendation.
The present Math WG has been working on an extension of MathML which has further customization possibilites, and which is in harmony with the recent developments in Web markup technology. The results of this effort have been a series of Working drafts of MathML 2, the most recent of which is highlighted at the top of this page.
For more information about MathML and the activities of the W3C Math working group, consult the W3C Math Activity Report or the MathML FAQ, by Stephen Buswell et. al. (a wealth of introductory and background information on MathML).
MathML consists of a number of XML tags which can be used to mark up an equation in terms of its presentation and also its semantics. MathML attempts to capture something of the meaning behind equations rather than concentrating entirely on how they are going to be formatted out on the screen. This is on the basis that mathematical equations and are meaningful to many applications without regard as to how they are rendered aurally or visually.
XML is closely related to HTML and assumes a very similar, but not identical syntax. One distinction is that in XML you cannot omit end tags. Furthermore, tags for elements which don't have any content are specially marked by a slash before the closing angle bracket.
MathML is a low-level format for describing mathematics as a basis for machine to machine communication. MathML is not intended for editing by hand, but is for handling by specialized authoring tools such as equation editors, or for export to and from other math packages.
MathML is intended to facilitate the use and re-use of mathematical and scientific content on the Web, and for other applications such as computer algebra systems, print typesetters, and voice synthesizers. MathML can be used to encode both mathematical notation, for high-quality visual display, and mathematical content, for more semantic applications like scientific software, or voice synthesis.
This simple example of MathML gives you an idea of how it works. The equation in question is:
x2 + 4x + 4 =0
and below are two ways that this can be represented, first using presentational tags, then using semantic tags. The presentational tags generally start with "m" and then use "o" for operator "i" for identifier "n" for number, and so on. The "mrow" tags are to do with organization into horizontal groups.
<mrow>
<mrow>
<msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo>
<mrow>
<mn>4</mn>
<mo>&invisibletimes;</mo>
<mi>x</mi>
</mrow>
<mo>+</mo>
<mn>4</mn>
</mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>
The semantic tags take into account such concepts as "times" "power of" and so on:
<apply>
<plus/>
<apply>
<power/>
<ci>x</ci>
<cn>2</cn>
</apply>
<apply>
<times/>
<cn>4</cn>
<ci>x</ci>
</apply>
<cn>4</cn>
</apply>
Combined with a style sheet to specify other aspects of layout, MathML should eventually be used by browsers without the use of plug-ins. In the immediate future, several vendors offer applet and plug-ins which can render MathML in place in a browser. Translators and equation editors which can generate HTML pages with images of the math expression from HTML with embedded MathML code will be available soon. Click here for a detailed survey of software applications that render and make use of MathML (including screen shots of MathML in action).
Additional Working Group Information:
The Math working group is co-chaired by Patrick Ion of AMS (Mathematical Reviews), and Angel Diaz of IBM Research. There is a great deal of activity in the W3C Math working group at the moment.
Both co-chairs are fully informed, and intimately involved in the activities of the working group. Contact either of the co-chairs if you are interested in joining the group, or need other information about the W3C Math Working Group.
| Name | Organization | |
| Stephen Buswell | Stilo Technologies | sb@stilo.demon.co.uk |
| David Carlisle | NAG | davidc@nag.co.uk |
| Stéphane Dalmas | SAFIR Research Group(INRIA) | Stephane.Dalmas@sophia.inria.fr |
| Stan Devitt | Stratum Technical Services Ltd. | jsdevitt@stratumtek.com |
| Angel Diaz | IBM Research Division | aldiaz@us.ibm.com |
| Laurent Bernardin | Waterloo Maple Inc. | lbernard@maplesoft.com |
| Stephen Hunt | MATH.EDU Inc | steve@imath.org |
| Roger Hunter | MacKichan Software, Inc. | Roger@hipnt.com |
| Patrick Ion | AMS / Mathematical Reviews | ion@ams.org |
| Douglas Lovell | IBM Research (Alternate) | dcl@us.ibm.com |
| Barry MacKichan (Alternate) | MacKichan Software, Inc. | barry@mackichan.com |
| Robert Miner | Design Science, Inc. | RobertM@mathtype.com |
| Ivor Philips | Boeing | ivor.r.philips@boeing.com |
| Nico A.F.M. Poppelier | Penta Scope | nico@schier7.demon.nl |
| Dave Raggett | Math WG W3C Laison | dsr@w3.org |
| T. V. Raman | IBM Almaden | raman@almaden.ibm.com |
| Murray Sargent | Microsoft | murrays@microsoft.com |
| Irene Schena | Universit\'a di Bologna | schena@cs.unibo.it |
| Neil Soiffer | Wolfram Research | soiffer@wri.com |
| Paul Topping | Design Science Inc. | pault@mathtype.com |
| Stephen Watt | University of Western Ontario | watt@csd.uwo.ca |
| Date | Document |
| July 07, 1999 | Mathematical Markup Language (MathML) 1.01 Specification |
| June 11, 1998 | W3C Math Working Group Charter - Angel Diaz, Patrick Ion |
| June 11, 1998 | Briefing Package for W3C Math Activity - Angel Diaz, Patrick Ion |
| May 14, 1998 | MathML Requirements - Paul Topping |
| April 07, 1998 | Mathematical Markup Language (MathML) 1.0 Specification |
Some useful general information about putting math on the web: