"MathML will make the Web even better for educational, scientific and technical materials. It also has the potential to make mathematics accessible to those with visual disabilities. It will allow mathematical content to be reused and exchanged with technical computing systems for further manipulation." -- Tim Berners-Lee, Director W3C
- Math Working Group co-chair:
- Patrick Ion, AMS email@example.com
- MathML FAQ page editors:
- Stephen Buswell, Stilo Technology Ltd firstname.lastname@example.org
Robert S. Sutor, IBM, email@example.com
- The Goals of MathML
- MathML Syntax
- The MathML Browser Interface
- Technical MathML Issues
- The W3C Math Working Group
- MathML Tools, Products and Content
- More About MathML
The Goals of MathML
- What are the goals of MathML?
The principal goal of MathML is to enable mathematics to be served, received, and processed on the Web, just as HTML has enabled this functionality for text. In more detail, MathML is intended to:
- encode mathematical material suitable for teaching and scientific communication at all levels.
- encode both mathematical notation and mathematical meaning.
- facilitate conversion to and from other math formats, both presentational and semantic.
- allow the passing of information intended for specific renderers and applications.
- support efficient browsing for lengthy expressions.
- provide for extensibility.
- be well suited to template and other math editing techniques.
- be human legible (though it is very verbose), and simple for software to generate and process.
- Who are the intended users?
MathML is intended to be used (indirectly usually) by everyone from high-school mathematics students to academics and engineers in industry (These categories are not necessarily distinct !). It also provides an interchange mechanism between applications processing mathematical representation in some form.
- Why do the goals of MathML go beyond the display of mathematical expressions?
The Web represents a fundamental change in the underlying metaphor for knowledge storage, a change in which interconnectivity and interactivity play central roles. The intention is to provide ways of communicating mathematics which, in addition to rendering mechanisms, facilitate automatic processing, searching and indexing, and reuse in other mathematical applications and contexts. This includes contexts where the underlying mathematical semantics are important, such as, for example, in a distance learning course in Linear Algebra.
- MathML is verbose - I edit HTML by hand with emacs, and MathML looks tedious to read and edit in text form.
True! The verbosity of MathML is largely a consequence of the WG decision to use XML as the base syntax. The reasons for doing this include standardisation, availability of tools and the general tendency of web-based applications to use XML as a carrier format. The downside is that the encodings become verbose for examples of any complexity, with resulting requirements on tools for MathML generation and manipulation. See MathML Tools, Products and Content.
- Backwards compatibility - Why has MathML not reused TeX/LaTeX, or the SGML DTDs ISO 12083 or AAP Math?
TeX and LaTeX are very widely used for encoding mathematical expressions. However, they encode only the surface presentation of an expression, and do not encode either semantic information or structural information. One of the WG goals is to provide a presentation mechanism that not only has the expressive capabilities of TeX, but also has enough information in it so that the presentation is:
- accessible to the visually impaired;
- capable of doing a good job of linebreaking expressions, since the author can not know the window size and font size in which the MathML should render.
In addition to a presentation interface, it is necessary to provide mechanisms for encoding mathematical semantic content, and controlling the interface between the embedded MathML fragment and the browser processing the containing page. We also considered that it was preferable for a document with embedded mathematical formulas to require only one type of parser rather than having a completely different type of encoding for the mathematics level.
SGML DTDs are oriented towards entire documents governed by one DTD rather than math fragments within Web pages. Apart from the work done on the development of a 'Semantic Maths DTD fragment' within the ISO 12083 working group (not part of the standard), existing SGML DTDs are presentation-oriented and lack support for content encoding.
- Does the verbose MathML syntax takes a long time to transfer across the net and parse?
By comparison with existing image based methods of embedding math(s) in web pages, for example GIF files, MathML is relatively quick to transfer and process.
The MathML Browser Interface
- MathML is XML-based. Will the browser manufacturers support XML fully? Will they support MathML natively?
Yes. Both Microsoft and Netscape have publicly declared support for the XML recommendation. Some XML support is already available for IE 4. As the browser manufacturers move toward fuller support of XML and the associated style sheet standards such as XSL that are developing, support for MathML will become more "native".
- Can I get a plugin or applet to render MathML?
Yes, see MathML Tools, Products and Content
- Is there a MIME type for MathML?
Yes, there are three:
- MathML instances that consist solely of presentation markup.
- MathML instances that consist solely of content markup.
- Any valid MathML instance. Must be used for MathML instances that are a mix of presentation and content markup, or where the composition of an instance is not known or cannot be guaranteed.
- Can I embed APPLET, EMBED or OBJECT tags within MathML?
MathML is defined as an XML application, so there is no special support for embedding web objects within MathML fragments. You can use APPLET and EMBED in the containing HTML page to launch an applet or plugin to render and process a MathML fragment or file.
Technical MathML Issues
- Does the WG still intend to develop a short form input syntax as part of MathML?
During the development of MathML it has become clear that the requirements on input syntaxes vary so widely that no single syntax will satisfy all users. Various members of the WG have developed input syntaxes for their particular tools. The WG will provide technical advice to all those who are involved in the development of input syntaxes for MathML-aware tools. Input syntaxes do not form part of the core MathML recommendation.
- Can I overload the presentation for content elements - for instance, can I render ⅈ as 'j'?
Yes, you can use the semantics element to attach a preferred presentation (encoded in MathML presentation elements) as an annotation-xml.
- How do you use entities to stop whitespace compression?
- Why is math(s) difficult to render in a browser. Microsoft Equation Editor has no difficulty rendering math(s)?
The main problem is that existing browsers don't provide an adequate interface for third-party software used to render such as plugins, applets or ActiveX controls. It is hoped this will be solved as a result on work on the next generation of HTML, DOM and CSS. In addition, with due respect to a successful piece of software, it cannot be said that Equation Editor provides math presentation of the highest quality or gives widely portable results.
As an example of the kinds of problems faced: The rendering code for an embedded piece of mathematics would like to use a font size and family that matches the font used for the rest of the document's text. The plugin would like to control the vertical positioning for a math expression relative to the baseline of the text line in which the math is placed. The plugin would like to negotiate the height and width for the math object according to the space needed and not have this fixed at authoring time. At present, because of the lack of a way of communication between embedded objects and the containing document, none of these requirements can be met.
A richer model for the rendering objects that compose a document, that doesn't treat plugins as impoverished distant relatives will go a long way to solving the problems.
- Has the Unicode consortium accepted the additional characters proposed by the WG?
Yes, all characters for which MathML defines entities are in Unicode since version 5.
MathML Tools , Products and Content
- Which products do (or will) support MathML input/output/editing?
See the implementations page.
- Is automatic translation to and from LaTeX possible? Is there anything available which does it?
- I am a content provider (e.g. a technical publisher). (Why) Should I convert my legacy data to MathML. How?
The usual dilemma with emerging standards: content is useless without tools to create and manipulate it, and tool vendors are reluctant to embark upon costly developments when the market for the product is unclear. However, there are already a number of tools under development, see MathML Tools.
Another important issue is the general trend of web-based applications towards the use of XML as a carrier format. MathML is the only 'standard' XML DTD for maths on the Web. Indeed, the working group of the ISO 12083 committee considers that MathML could be an appropriate 'plugin' mathematics module in a future modular version of the 12083 standard.
More about MathML
- Where can I learn more about MathML?
you can find out more at the W3C Web site.
- To what extent has MathML been accepted by the public and industry outside the W3C Math WG and its friends? What is being done to further this?
One of the tasks of the re-chartered W3C Math WG is to promote the adoption of MathML in industry and academia. More information can be found on the Math WG's Web page http://www.w3.org/Math/
The W3C Math Working Group
See the Working Group Page.
- How do I join the W3C Math Working group?
Send e-mail to one of the co-chairs
Patrick Ion(co-chair for the Math working group).
W3C contact for math: Bert Bos (firstname.lastname@example.org)
Last edit: September 2011