Abstract

This specification defines the Mathematical Markup Language, or
MathML. MathML is an
XML application 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 thirty-five 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 human-readable, in all but
the simplest cases, authors use equation editors, conversion
programs, and other specialized software tools to generate
MathML. Several versions of such MathML tools exist, and
more, both freely available software and commercial
products, are under development.

Status of this Document

This section describes the status of this document at the time
of its publication. Other documents may supersede this document. A
list of current W3C publications and the latest revision of this
technical report can be found in the W3C technical reports index at
http://www.w3.org/TR/.

This third Public Working Draft specifies a new version of the the
Mathematical Markup Language, MathML 3.0 which is at present under
active development. The Math WG hopes this draft
will permit informed feedback. There is a description of some
considerations underlying this work in the W3C Math WG's public
Roadmap [roadmap]. Feedback should be sent to the Public W3C Math mailing list .

The MathML 2.0 (Second Edition) specification has been a W3C
Recommendation since 2001. After its
recommendation, a W3C Math Interest Group collected
reports of experience
with the deployment of MathML and identified issues with MathML that
might be ameliorated. The rechartering of a Math Working Group allows
the revision to MathML 3.0 in the light of that experience, of other
comments on the markup language, and of recent changes in
specifications of the W3C and in the technological context. MathML
3.0 does not signal any change in the overall design of MathML.
The major additions in MathML 3 are support for
bidirectional layout, better linebreaking and explicit positioning,
elementary math notations, and a new strict content MathML vocabulary
with well-defined semantics generated from formal content
dictionaries. The MathML 3 Specification has also been
restructured.

Publication as a Working Draft does not imply endorsement by the
W3C Membership. This is a draft document and may be updated,
replaced or obsoleted by other documents at any time. It is
inappropriate to cite this document as other than work in
progress.

The basic chapter structure of this document is based on the earlier
MathML 2.0 Recommendation [MathML2]. That MathML 2.0
itself was a revision of the earlier W3C Recommendation MathML 1.01
[MathML1]; MathML 3.0 is a revision of the W3C
Recommendation MathML 2.0. It differs from it in that all previous
chapters have been updated, some new
elements and attributes added and some
deprecated. This
Public Working Draft differs in structure from the initial Public
Working Draft as renewed efforts to separate the formal from the
explanatory have resulted in eight chapters not seven.
Much has been moved to separate documents containing Primer
material, material on Characters and Entities and on the MathML DOM.
First Working Drafts of these documents will be published soon. A
current list of open issues, pointing
into the relevant places in the draft, follows the Table of
Contents.

The present draft is an incremental one making public some of the
results of Math Working Group work in recent months. The biggest
difference this time is in Chapter 4, although there have been
smaller ameliorations throughout the specification. A more detailed
description of changes from the previous Recommendation follows.

With the second Working Draft, much of the non-normative explication
that formerly was found in Chapters 1 and 2, and many examples from
elsewhere in the previous MathML specifications, were removed
from the MathML3 specification and incorporated into a MathML Primer
being prepared as a separate document. It is expected this will help
the use of this formal MathML3 specification as a reference document
in implementations, and offer the new user better help in
understanding MathML's deployment. The remaining content of Chapters 1
and 2 is being edited to reflect the changes elsewhere in the
document, and in the rapidly evolving Web environment. Some of their
text used to go back to early days of the Web and XML, and its
explanations are now commonplace.

Chapter 3, on presentation-oriented markup, in this draft adds new
material on linebreaking and on markup for elementary math
notations. Material introduced in the last draft revising the
mpadded and maction elements has been further revised as a result of active
discussion. It is possible it may undergo further modification.
In addition, the layout of schemata such
as that for long division and its associated
mcolumn element have been carefully revised.
Earlier work, as recorded in the W3C Note Arabic
mathematical notation, has allowed clarification of the
relationship with bidirectional text and examples
with RTL text have been added.

Chapter 4, on content-oriented markup, contains major changes and additions in this Working
Draft. The meaning of the actual
content remains as before in principle, but a lot of work
has been done on expressing it better.
The text of this chapter is generated by filtered extraction from
XML Content Dictionaries written in accordance with OpenMath. The
details of the Content Dictionary format have been further specified
and the generation procedure improved. It is expected that the
Content Dictionaries will become a separate joint publication of the
W3C and OpenMath referenced by the MathML3 specification. The Content Dictionaries are now publicly available in
draft and much work has already been done on refining them.
Their format is given in Chapter 8.

Chapter 5 is being refined as its purpose has been further
clarified. This chapter deals with interrelations of parts of the
MathML specification, especially with presentation and content
markup.

Chapter 6 has been rewritten and reorganized to reflect the new
situation in regard to Unicode, and the changed
W3C context with regard to named character entities. The
new W3C specification of Entity Definitions for
Characters in XML, which incorporates those used for mathematics is
becoming a public working draft [Entities].
It is expected that some new ancillary tables will be provided that
reflect requests the Math WG has
received.

Chapter 7 has been restored with a new and clearer purpose. This chapter
looks outward to the larger world in which MathML must function.

Chapter 8 now specifies the format of MathML3 Content Dictionaries,
as previously handled more briefly in sections 4.5 and 4.6.
The DOM for MathML, previously in a chapter at this point,
is being prepared as a separate specification.

The Appendices, of which there are eight shown, have not been fully
reworked. Eventually what amount to revisions of the present
appendices A, F, G, H, I and J are all that are expected to remain.
Appendix A now contains the new RelaxNG schema
for MathML3 as well as discussion of MathML3 DTD issues.

Open Issues

The following is a list of open issues which are highlighted in this draft.
The issue name links to the text of the issue in this specification. There is also a W3C
member-only link to the Math Working Group wiki. (Note that in many cases the wiki
does not have a page discussing the issue, but will offer to create such pages on demand.)
In some cases there is also a (member only) link to the Math Working Group's Issue tracking system.