W3C

Mathematical Markup Language (MathML) Version 2.0

W3C Working Draft 28 March 2000

This version:
http://www.w3.org/TR/2000/WD-MathML2-20000328
Also available as: HTML zip archive, XHTML zip archive, XML zip archive, PDF (screen), PDF (paper)
Latest version:
http://www.w3.org/TR/MathML2
Previous versions:
http://www.w3.org/TR/2000/WD-MathML2-20000211
http://www.w3.org/TR/1999/WD-MathML2-19991222
http://www.w3.org/TR/1999/WD-MathML2-19991201
Editors:
Nico Poppelier (Penta Scope)
Robert Miner (Geometry Technologies, Inc.)
Patrick Ion (Mathematical Reviews, American Mathematical Society)
David Carlisle (NAG)
Principal Writers:
Ron Ausbrooks, Stephen Buswell, Stéphane Dalmas, Stan Devitt, Angel Diaz, Roger Hunter, Bruce Smith, Neil Soiffer, Robert Sutor, Stephen Watt

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.

This document begins with background information on mathematical notation, the problems it poses, and the philosophy underlying the solutions MathML proposes. MathML can be used to encode both mathematical notation and mathematical content. About thirty of the MathML tags describe abstract notational structures, while another one hundred 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 MathML characters and their relation to fonts.

While MathML is human-readable, it is anticipated that, in all but the simplest cases, that authors will use equation editors, conversion programs, and other specialized software tools to generate MathML. Several early versions of such MathML tools already exist, and a number of others, both freely available software and commercial products, are under development.

Status of this document

This is the Last Call Working Draft of the MathML 2.0 specification prepared by the W3C Math Working Group. The Last Call review period ends 30 April 2000. The Math Working Group decided to proceed to Last Call with this draft at its recent Ann Arbor face-to-face meeting (minutes message).

This is a W3C Working Draft for review by W3C members and other interested parties. It is a draft document and may be updated, replaced or made obsolete by other documents at any time. It is inappropriate to use W3C working drafts as reference material or to cite them as other than `work in progress'. This is work in progress and does not imply endorsement by, or the consensus of, either W3C or participants in the Math Working Group.

This document has been produced by the W3C Math Working Group.

A list of current W3C Technical Reports can be found at http://www.w3.org/TR.

This document has been produced as part of the activity of the W3C User Interface Domain. The goals of the W3C Math Working Group are discussed in the W3C Math WG Charter (revised February 2000 from original of 11 June 1998). A list of participants in the W3C Math Working Group is available.

The present draft is a revision of the earlier corrected W3C Recommendation MathML 1.01. It differs from it in that all chapters have been updated and two added.

Chapters 1 and 2, which are introductory material have been revised to reflect the changes elsewhere in the document, and in the rapidly eveolving Web context. Chapters 3 and 4 have been extended to describe new functionalities added, as well as smaller improvements of material already proposed. Chapter 5 has been newly written to reflect changes in the technology available. The major tables in Chapter 6 have been regenerated to reflect an improved list of Unicode characters useful for mathematics, and the text revised to reflect the new preferred form for accessing them. Chapter 7 has been completely revised for Web technology has changed. A new chapter 8 on the DOM for MathML has been added; the latter points to a new appendix E for a detailed listing.

The appendices have been reorganized into normative and non-normative groups. Appendices E and H are completely new.

Comments on this document should be sent to the public mailing list of the Math Working Group.

Table of contents

1 Introduction
    1.1 Mathematics and its Notation
    1.2 Origins and Goals
    1.3 The Role of MathML on the Web
2 MathML Fundamentals
    2.1 MathML Overview
    2.2 Some MathML Examples
    2.3 MathML Syntax and Grammar
3 Presentation Markup
    3.1 Introduction
    3.2 Token Elements
    3.3 General Layout Schemata
    3.4 Script and Limit Schemata
    3.5 Tables and Matrices
    3.6 Enlivening Expressions
4 Content Markup
    4.1 Introduction
    4.2 Content Element Usage Guide
    4.3 Content Element Attributes
    4.4 The Content Markup Elements
5 Combining Presentation and Content Markup
    5.1 Why Two Different Kinds of Markup?
    5.2 Mixed Markup
    5.3 Parallel Markup
    5.4 Tools, Style Sheets and Macros for Combined Markup
6 Characters, Entities and Fonts
    6.1 Introduction
7 The MathML Interface
    7.1 Embedding MathML in other Documents
    7.2 Generating, Processing and Rendering MathML
    7.3 Future Extensions
8 Document Object Model for MathML
    8.1 Introduction

Appendices

A Parsing MathML
    A.1 The MathML DTD
B Content Markup Validation Grammar
C Content Element Definitions
    C.1 About Content Markup Elements
    C.2 Definitions of MathML Content Elements
D Operator Dictionary (Non-normative)
    D.1 Format of operator dictionary entries
    D.2 Indexing of operator dictionary
    D.3 Choice of entity names
    D.4 Notes on lspace and rspace attributes
    D.5 Operator dictionary entries
E Document Object Model for MathML (Non-normative)
    E.1 IDL Interfaces
F Glossary (Non-normative)
G Working Group Membership (Non-normative)
H Changes (Non-normative)
I  References (Non-normative)