WD-Implementation and Interoperability 20010220

MathML 2.0 Implementation and Interoperability Report

Math WG Draft 20 February 2001

This version: http://www.w3.org/Math/iandi/impl-interop20010220.html
Latest version: http://www.w3.org/Math/iandi/
Previous version: http://www.w3.org/Math/iandi/impl-interop20010102.html
Editor: Patrick Ion (MR / AMS) <ion@ams.org>

Status of this document

This is a draft report on implementation experience and interoperability issues arising from the development of MathML. The previous version was part of the submission by the W3C Math Working Group to the W3C requesting Proposed Recommendation status for the MathML 2 specification. Its first draft was prepared in connection with the request for Candidate Recommendation status for MathML 2. This is a W3C document for public distribution.


As the long process of development of MathML 2.0 as a revision to MathML 1.01 drew to a close, a good number of implementation efforts using MathML had been started. There were even shipping products and a government agency deploying MathML. Interoperability issues have been addressed as a result of this activity. The document gives a report on the known implementation activities and relates their experience to the criteria which were set out as the requirements of the Candidate Review period for MathML 2.

Table of contents

1 Introduction
2 Candidate Recommendation (CR) Review Exit Criteria
    2.1 Implementation Requirements
    2.2 Interoperability Requirements
3 Projects involving MathML in progress
4 List of Realizations of CR Exit Criteria
5 Statements about Implementations
    5.1 Supporting Statements from Developers
       5.1.1 Amaya
       5.1.2 Design Science
       5.1.3 IBM
       5.1.4 Internet Math Consortium
       5.1.5 MacKichan
       5.1.6 MathSoft
       5.1.7 Stilo
       5.1.8 University of Bologna
       5.1.9 WMI (Waterloo Maple Inc.)
       5.1.10 WRI (Wolfram Research Inc.)
     5.2 Supporting Statements from other W3C Members
       5.2.1 Boeing
       5.2.2 Microsoft
     5.3 Reports from Public Efforts
       5.3.1 OpenMath
       5.3.2 TeX
       5.3.3 ORCCA
       5.3.4 EzMath
       5.3.5 Mozilla
       5.3.6 INRIA Rhone-Alpes
       5.3.7 REDUCE

1 Introduction

There are a good number of software developments that have begun to make use of MathML. During the Candidate Recommendation review period the Math WG has received formal reports on ease or difficulties of implementations, especially in regard to new features introduced with MathML 2, from many of these efforts. There are several pairings of organizations mentioned below who have joint ventures using MathML for the interoperability it affords.

MathML has two obvious parts that are both countervailing and cooperative. They are mark-up for Presentation and mark-up for mathematical Content. The Presentation mark-up (Chapter 3) uses about thirty elements, and Content (Chapter 4) about one hundred and fifty. It is readily possible to undertake an implementation, especially a first one, using MathML that concentrates on one type of mark-up or the other. Then there input and output considerations, display and editing aspects, and so on. There is a further discussion of compliance issues in the Compliance Document that the Math WG has prepared, largely by using discussions already present in Chapter 7 of the specification.

The present document pays special attention to current implementations using the MathML 2 specification as they relate to the Candidate Recommendation review exit criteria given in the first edition of this document and below in Section 2. We believe that all the criteria have now been met or exceeded, and that MathML 2 is indeed ready for release as a specification. Our position is suppported by the detail provided in the following sections.

2 Candidate Recommendation Review Exit Criteria

At the start of the Candidate Recommendation review period, on 13 November 2000, it was held that MathML would be ready to exit the Candidate Recommendation period when its readiness for wider deployment has been demonstrated by

2.1 Implementation Requirements

the existence of

2.2 Interoperability Requirements

and the provision of

3 Projects involving MathML in progress

The links from the initial key phrases in the items listed below are to sources of further information such as company, product or project home pages.

4 List of Realizations of Exit Criteria

The following list correlates the Candidate Recommendation Exit Criteria with the implementations that address them. The links are to the corresponding report text in the Section 5.:

Implementation using Presentation mark-up
Mathematica, Maple, MathType, Mozilla, techexplorer, WebEQ, Scientific Workplace, iMath
Implementation using Content mark-up
Mathematica, Maple, Mozilla, techexplorer, WebEQ, Stilo, OpenMath, mmlctop, MathMLc2p, REDUCE
Implementation using Presentation and Content mark-up together;
Mathematica, Maple, Mozilla, techexplorer, WebEQ, mmlctop, MathMLc2p
Display in a Web browser
Amaya, Mozilla, Design Science prototype under Internet Explorer, iMath
Display in a plug-in
WebEQ, techexplorer
Display in an autonomous viewing application
techexplorer, Mathematica, Maple in prototype, GtkMathView
Generation from other encoded mathematics
Mathematica, Maple, MathSoft, Scientific Workplace, REDUCE
Examples of authoring tools, of different types, showing that MathML can be edited
Amaya, Mathematica, EzMath, WebEQ, MathType, Mathwriter, iMath
A prototype translator from mathematical legacy documents in TeX encoding
Omega, TeX4ht
A prototype showing that MathML encoding can be used to produce high-quality mathematical typesetting
Audio rendering from MathML encoding
techexplorer with IBM ViaVoice, Mathematica under Windows
Implementations that run on several platforms under different operating systems
Mathematica, Maple, techexplorer, MathMLc2p, mmlctop, REDUCE
Test-suite of standard examples to exercise various aspects of the MathML specification
Available on the W3C Math page; there is also a MathML option in the W3C Validation service. The Test Suite has been used by at least Mathematica, WebEQ, techexplorer, MathMLc2p
Import of mathematical data encoded in MathML into a computer algebra
Mathematica, Maple
Cut and paste of MathML between different implementations
Mathematica to and from techexplorer, Maple to and from WebEQ, MathCAD to and from techexplorer

5 Statements from Implementors

5.1 Supporting Statements from Developers

5.1.1 Implementation of MathML 2.0 in Amaya

This document describes the implementation of MathML 2.0 in version 4.2 of Amaya which is expected to be released in binary form on 21 December 2000. Even if that version is not available publicly in binary form at the time of writing, all features mentioned in this document are already implemented and can be checked out from the CVS base.

The reference version of the MathML 2.0 specification is described in the MathML 2.0 Candidate Recommendation.

Amaya is both a browser and an authoring tool, both features being integrated seamlessly. It can then display and print mathematical expressions contained in documents fetched from Web servers or stored on local files. It can also create and edit mathematical expressions, in isolation or within documents. Finally it can save these expressions and documents either locally or on remote Web servers.

Presentation Markup

Amaya 4.2 implements the Presentation Markup from MathML 2.0. All elements and attributes defined in Chapter 3 are implemented. More precisely, all these elements and attributes:

However, there are some restrictions:

Content Markup

Chapter 4 is not implemented at all. Chapter 5 (Combining Presentation and Content Markup) is not implemented either, as there is only one kind of markup.

Characters, Entities and Fonts

The current version of Amaya does not handle the Unicode, but only 8-bit characters, namely ISO-Latin 1 and the Adobe Symbol font. Full support of the Unicode is scheduled for the next major release. This imposes limitations on the characters and entities that are supported. Amaya 4.2 displays only the Symbol and ISO-Latin 1 characters, but characters coded as numeric references or entity references are accepted in the input file, they are preserved in the internal representation, and are saved under the same form in the output file. If they are not part of the two supported character sets, they are displayed and printed under the form of a question mark.

Only 4 fonts are currently supported by Amaya: Times, Helvetica, Courier, Symbol. Some values of the mathvariant attributes can't then be rendered: script, double-struck, fraktur.

The MathML Interface

Both the browsing and editing functions of Amaya can handle MathML expressions either in isolation or embedded in a document. This document may be XHTML or SVG. MathML expressions can also be embedded in SVG drawings which in turn are embedded in XHTML pages. This is achieved through the Namespace mechanism which is fully supported.

The top level math element is implemented, with all its attributes, although display and overflow are not interpreted.

Simple links from XLink are supported. Amaya allows the user to easily create (point and click) or follow such links associated with any element within a MathML expression.

CSS is also supported, on the screen and on paper. Implementation of CSS1 is not complete yet, but most properties that make sense for mathematics are available. A WYSIWYG interface allows the user to create modify or delete style properties and to build style sheets conveniently.

Document Object Model

Amaya does not support scripting. It does not support the DOM either.

Vincent Quint, Irène Vatton, W3C
December 8, 2000

5.1.2 Design Science Implementation Report

Design Science makes several equation editors, applets for dynamic MathML display, and some processing tools for converting to and from MathML and a variety of other formats. The MathType Equation Editor and the WebEQ suite of tools for dynamic math on the web are our most widely known products.

To our knowledge, Design Science has the oldest and broadest lines of commercial MathML-enabled products. Our existing products generate MathML 1.01 presentation markup, and display and process both presentation and content MathML 1.01 markup.

We are in the midst of upgrading our MathML support to version 2.0. Much of this work has been completed and is in alpha or beta testing. We anticipate incorporating MathML 2.0 support in next commercial releases of our products. In particular, we have already implemented display of almost all of MathML 2.0 presentation and content markup, and successfully tested interoperability of our code with similar development efforts at Waterloo Maple. We have also implemented generation of MathML 2.0 content markup in one of our equations editors, and generation of MathML 2.0 presentation markup in two of our equation editors. These implementations are both MathML 2.0-compliant, although they are not full implementations in the sense that they do not yet exercise all MathML 2.0 constructs. WebEQ has been used extensively in preparing the MathML 2.0 test suite, and though work on that is still ongoing, we believe it is safe to say WebEQ will accept all tests in the suite in our next commercial release.

In short, work on MathML 2.0 implementation is well underway internally, and full MathML 2.0 support is anticipated in our future releases. At this time, we see no important obstacles to MathML 2.0 implementation and interoperability, save the availability of fonts for some obscure math characters.

Robert Miner (Design Science Inc.)

5.1.3 Internet Math Consortium Report

iMath - Internet Math Consortium - works in partnership with educational and commercial organizations to enhance math education and math applications, by enabling the Internet with open math communication, computation and visualization. iMath Communicator is a Web editor/browser which supports math (MathML), derived in part from Amaya. Designed to be simple, but powerful, iMath's target userbase is students and educators from elementary to university level.

iMath has uniquely integrated a MathML compliant Web editor/browser with the instructional services required to support open math learning.

The implementation of MathML 2.0 in iMath Communicator is that provided by Amaya. The iMath developer community congratulates the Amaya Team on its support for MathML 2.0.

Dr. Stephen M. Hunt, Director steve@imath.org
Internet Math Consortium

5.1.4 IBM Implementation Report

IBM techexplorer is a cross-platform (Windows, Mac, Linux, AIX, Solaris, SGI) plug-in for Navigator and Internet Explorer and an ActiveX control for applications like Microsoft PowerPoint and Word. techexplorer enables the display of MathML documents and the publishing of interactive scientific material on the Web.

The IBM techexplorer Hypermedia Browser has included support for the Mathematical Markup Language (MathML) since early versions of the MathML 1.0 working draft. Our currently released product (IBM techexplorer Version 3.0) supports most of the MathML 1.01 content and presentation tags, as well as providing C++ and Java access to the W3C Document Object Model (DOM) Level 1 APIs.

In October 2000, we announced support for the Wolfram Research Inc. Mathematica product whereby users can experience live Web-based interactive mathematics. MathML and the Document Object Model APIs are extensively used in this solution.

We also announced support for several MathSoft, Inc products. The soon to be released MathCAD 2001 will provide import/export capabilities where techexplorer-ready HTML/MathML documents can be displayed by a standard browser and techexplorer, as well as edited by MathCAD.

Our imminent version 3.1 will include MathML 2.0 presentation, content tags, attributes and DOM APIs and include full support for MathML using Internet Explorer Behaviors.

Angel Diaz
Manager, XML/XSL Transformational Systems
IBM T. J. Watson Research Center

5.1.5 MacKichan Software Implementation Report

MacKichan Software, Inc. is the creator of a family of products - Scientific NoteBook, Scientific Word, and Scientific WorkPlace - which are used to create and edit scientific and mathematical documents.

We have implemented the facility to export the mathematical content of our documents as Presentation MathML. This will be available in a forthcoming release of our products.

Our native data storage form is essentially LaTeX, and thus we can also speak to the issue of translating existing LaTeX documents to MathML. We have found that MathML 2.0 is indeed rich enough to capture the great majority of mathematical content. In fact, even Presentation MathML can encode mathematical structure significantly better than LaTeX typically does, and most of the markup required for correctly typesetting mathematics can be encoded. We have put hundreds of documents through this translation, and the results have been quite good.

We feel that the MathML 2.0 Recommendation, and MathML generally, represents a necessary and important step towards the future of technical documents. We have plans to implement much more of MathML 2.0 in the future, both on the rendering front and in the area of using Content MathML to communicate with computational engines, and we believe that all of this holds a great deal of promise. The Recommendation itself is very clear and well written.

Barry MacKichan - President, MacKichan Software, Inc.
600 Ericksen Ave. NE, Suite
300 Bainbridge Island, WA 98110

5.1.6 MathSoft Implementation Report

Mathcad 2001 uses content MathML as a format for serializing its internal representation of mathematical expressions, and presentation MathML as a format for communicating with IBM's techexplorer browser. techexplorer is responsible for all rendering. Hence, Mathcad's implementation deals entirely with emitting and parsing MathML.

Internally, Mathcad stores expressions as trees. Since XML documents posses a natural tree structure, this representation holds a great deal of promise. The Recommendation itself isamenable to direct, recursive descent translation into content MathML. For example, the expression "(f x y)" (written in prefix notation) is represented as a tree with root node "f" and child nodes "x" and "y". This very naturally becomes


in content MathML, and the reverse translation (i.e. parsing) is similarly straightforward.

Presentation MathML deals with the visual display of expressions, and the translation is not so straightforward. A recursive descent approach is still feasible, but the translation of a given node will depend on its internal details and, possibly, those of its children. For example, "(f x y)", "(-plus x y)" and "(-sequence x y)" will all receive different translations:

* "(f x y)" is translated as a simple function call:


* "(-plus x y)" is translated into infix notation:


* "(-sequence x y)" is an instance of Mathcad's sequencing operator (similar to LISP's "progn"). The desired visual representation is a vertical bar with the sequenced statements listed to its right. The appropriate presentation MathML turns out to be:

       <mtable columnalign='left'>

Most of the presentation elements in sections 3.2 through 3.5 of the MathML specification (version 1.01) were useful when attempting to translate Mathcad's various constructs. No attempt was made at parsing presentation MathML, though this is under consideration as a future enhancement. Further efforts will also be devoted to improving the fidelity of presentation MathML output where corresponding support exists in the rendering engine.

Terry Rochford
MathSoft, Inc.

5.1.7 Stilo Technology Implementation Report

Stilo Technology makes a number of XML document editors, DTD and schema prototyping and creation tools, and carries out XML and Information Engineering consultancy. In the context of the ESPRIT OpenMath project, we have developed technology for the creation and editing of mathematical expressions and web pages containing mathematics. This technology, knowns as STARS during its development, will be commercialised as Stilo MathWriter.

MathWriter relies on taking a simple, linear input syntax and transforming it into a nested structure of operators and operands which can in turn be transformed into MathML or OpenMath (a MathML-compatible XML syntax for semantically rich mathematical objects). In this way, it also provides a translation mechanism between MathML and OpenMath expressions. The input language is based on TeX and ideas of 'natural' language mathematics input.

MathWriter uses the well-known WebEQ applet from Design Science Inc. as a rendering engine. MathWriter also possesses a simple evaluation engine for evaluating and simplifying mathematical expressions.

Owing to its background in semantic processing of mathematics, MathWriter is content-focussed, but it can be extended to use presentation constructs also where no content MathML element exists for the construct in question.

We have implemented all of MathML1 content and the OpenMath Core, together with some additional support for formal theorem-proving systems. We are currently in the process of extending the input language to support the additional elements in MathML2.0. We foresee no major barriers to MathML 2.0 implementation in the content area.

Stephen Buswell

ESPRIT is the IT research programme of the Commission of the European Union. OpenMath is Project EP24969.
Stilo Technology Ltd is a division of Stilo International plc. More information is on http://www.stilo.com.

5.1.8 MathML 2.0 Implementation Report
Department of Computer Science, University of Bologna

HELM (Hypertextual Electronic Library of Mathematics) is a project being developed at the Computer Science department of the University of Bologna. The project is meant to integrate the current tools for the automation of formal reasoning and the mechanization of mathematics (proof assistants and logical frameworks) with the most recent technologies for the development of web applications and electronic publishing, eventually passing through the Extensible Markup Language. The final aim is the development of a suitable technology for the creation and maintenance of a virtual, distributed, hypertextual library of formal mathematical knowledge.

The broad goal of the project goes far beyond the trivial suggestion to adopt XML as a neutral specification language for the "compiled" versions of the libraries, or even the observation that in this way we could take advantage of a lot of functionalities on XML-documents already offered by standard commercial tools.

Once in the realm of XML, MathML proved to be the most natural choice as the suitable language for rendering and communication purposes. In particular, we adopted the Candidate Recommendation MathML 2.0 as the standard language for encoding not only mathematical expressions but also mathematical objects such as proofs or formal derivations, and then, by suitable extensions, whole mathematical documents. MathML 2.0 had the right flexibility to accomodate significant extensions (we work with mechanized mathematics). Moreover, we exploited the mechanisms of cross-referencing and linking offered by the language to conserve semantics across the lifecycle of a document, from its purely formal, application-dependent encoding up to its target, output formats (MathML presentation), eventually passing through an intermediate, semi-formal representation (MathML content).

This transformation process, accomplished by means of a suitable combination of stylesheets, leads to a highly modular architecture, hopefully capable of allowing new forms of integration between different logical systems and, more generally, between math-processing applications.

In particular we have implemented stylesheets for generating MathML Content Markup, MathML Presentation Markup, notations and annotations. We have also contributed to the MathML implementation by the development of a stand-alone, modular engine for rendering MathML presentation markup offering some innovative forms of interaction.

More information about the project and the rendering engine can be found at http://www.cs.unibo.it/helm.

Irene Schena
Department of Computer Science, University of Bologna

5.1.9 Waterloo Maple Inc. Implementation Report

Maple is a symbolic and numeric computation system, developed by Waterloo Maple Inc.

We have implemented import and export of MathML and plan to release this implementation in an upcoming version of Maple. Maple will be able to import a MathML expression involving presentation, content and parallel markup, compute with the resulting expression and export it back into MathML using presentation, content or parallel markup. Maple uses the MathML extension mechanism (csymbol) to represent semantic information that MathML 2.0 does not cover.

Initial interoperability tests indicate that we will be able to transfer mathematical expressions encoded using MathML between Maple and an upcoming version of Design Science's WebEQ.

We will also make sure that Maple handles as many examples from the MathML test suite as possible. This effort has been started and initial results look encouraging.

We found the MathML 2.0 candidate recommendation well structured and comprehensive. The implementation was straight-forward and the MathML working group provided us with clarifications where needed.

Laurent Bernardin: Manager, Mathematical Development & Product Director
Waterloo Maple Inc, 57 Erb Street W.
Waterloo, ON, N2L 6C2, Canada

5.1.10 Wolfram Research Inc. Implementation Report

Wolfram Research, the maker of Mathematica, has provided support for MathML 1.01 for the last year and a half. Mathematica has had the ability to import and export both presentation and content MathML in many forms including support in a document, programatic support, and recently support as a web server via our new webMathematica product. In October, we announced support for IBM's techexplorer. Communication of mathematical content is done via MathML and both products' support of MathML help ensure a quick and easy implementation of the joint project.

Users have responded enthusiastically to Mathematica's MathML support. Since early this year, U.S. patents with mathematical content have been created using a custom interface for Mathematica and its MathML support. This has resulted in the creation of over 1,000 new documents per week containing MathML.

The very positive MathML response provided impetus to get an early start on MathML 2 support. We are pleased to be able to say that substantial implementation work has been done for MathML 2 support. This work was used to help design the MathML test suite and to provide images for the suite.

Almost all MathML 2 presentation and content tags and attributes have been implemented. We have found no substantial problems with these constructs. We are very excited about the standardization of code points for the large number of characters that were not part of Unicode 3.0 and will likely be included in forthcoming Unicode standards. Our implementation work has included tables to accept and generate proper entity names and proposed numeric code points. The large number of characters poses problems in finding or designing fonts for the characters. Also, because of the current suite of tools we are using, we can not currently handle the proposed Plane 1 characters; MathML's fall back 'mathvariant' attribute has been quite valuable in getting around this problem. Both of these problems will go away over time.

Wolfram Research expects to release a product that handles MathML 2.0 in the future, and we intend to be able to pass all of the tests in the test suite with the possible exception of some character-related tests for the reasons mentioned above.

Neil Soiffer (Wolfram Research)

5.2 Supporting Statements from other W3C Members

5.2.1 The Boeing Company

The Boeing Company deals with many suppliers and customers worldwide. In addition, the company is geographically distributed across the United States and also has offices worldwide. We see XML as a most important future technology for exchanging data with customers, suppliers, and our own internal divisions in an environment where many different computer and software systems are employed.

In particular, with respect to MathML, there is a considerable need to interchange technical documents, containing mathematical formulas, via the web---both for communicating between different engineering groups within the company and external vendors and customers. For the immediate future, we see MathML as being a necessary technology for achieving this goal.

Ivor Philips, Boeing

5.2.2 Microsoft Inc.

Microsoft is pleased to see contributions from third parties bringing MathML functionality to applications through the use of COM technologies such as ActiveX Controls and Internet Explorer's DHTML Behaviors. These efforts result in Math being displayed in a wide variety of Windows applications that are ActiveX Control containers. For displaying Math on the web the use of DHTML Behaviors support in Internet Explorer 5.5 is an ideal way to incorporate Math seamlessly into an HTML document. Using components to display content in this way allows the Internet Explorer team to concentrate in its efforts to provide a great browser platform for the web and have specialised functionality such as Math supplied by others skilled in those areas.

Murray Sargent and Dave Massy (Microsoft)

5.3 Reports from Public Efforts

OpenMath Implementation Report

OpenMath is a language for describing Mathematical semantics. Its most common encoding is an XML vocabulary and as such it is closely related to MathML.

OpenMath is maintained by the OpenMath Society (http://www.openmath.org) and strongly endorses MathML, and in particular MathML2.

OpenMath only encodes the semantics of an expression, with no default presentation implied. Translation to Presentation MathML is now seen as the default mechanism for specifying the presentation of OpenMath objects (although OpenMath systems may use other mechanisms).

The semantics of OpenMath symbols are specified in "Content Dictionaries" These are distributed from http://www.openmath.org/cd/. They have been brought into exact alignment with the Content Elements in MathML2, so that within the range that is covered by Content MathML there is an explicit conversion in either direction specified between OpenMath and MathML. For uses beyond the semantic range of the MathML Content elements, OpenMath Content Dictionaries form a natural target for the extension mechanisms of MathML (as shown in several examples in the MathML2 draft).

Thus, the current OpenMath proposals rely heavily on both the presentation and content sides of MathML, and we look forward to it becoming a W3C Recommendation.

David Carlisle (NAG) (Co-editor of OpenMath draft)

TeX Implementation Reports

TeX is the leading mathematical typesetting system, with almost universal use in the mathematical research community. As much of the work built around TeX is an Open Source Community effort, it is hard to be precise about the current status of all TeX/MathML related projects, however there are several projects underway, which fall into three basic categories:

Conversions from TeX to MathML.
Of particular note here are Omega (a modified TeX system) and TeX4ht (a highly specialised DVI driver) both of which were demonstrated at the recent MathML conference, and are capable of writing presentation MathML including some 2.0 constructs, from TeX documents.
[http://omega-system.sourceforge.net]   [TeX4ht]
Conversions from MathML to TeX.
Of course, the conversion from MathML to TeX can be done today by reading MathML into Mathematica and then saving the result back out as TeX, or using Scientific WorkPlace for suitable LaTeX sources. That will soon be possible with other similar tools, but is not really the point. As far as purpose built utilities are concerend, XSL stylesheets converting to TeX have been anounced as under development.
Such a student project in Denmark
Direct typesetting of MathML using TeX.
The xmltex system implements a non validating XML parser in TeX (which does not support UTF-16 as TeX is intrinsically an 8-bit system). Typesetting rules for various namespaces, including the W3C XSL-FO and MathML namespaces has been layered over xmltex. (Elements from supported namespaces may be freely mixed, so MathML elements may appear in XSLFO, or DocBook documents). The public version covers the majority of MathML 1.0 Presentation. A version under development (which will also be freely available, probably before the end of this year) will include some level of support for all of MathML2 (Presentation and Content). Some constructs will be less well supported than others in the first release (support for tables and alignment will not include all possible spanning and alignment attributes in the first release). However the difficulties with tables were already present in the MathML 1.0 support (and the XHTML support) and MathML2 poses no new implementation obstacles. As for any Math typesetting system obtaining sufficient fonts is always a problem, but the TeX system has the largest collection of mathematical fonts available, and the work currently under way to produce free fonts covering the Unicode proposals for Math characters includes the production of font metrics for TeX use.

David Carlisle, LaTeX3 Project

EzMath and MathML 2.0 editing tool Report

I have been working on an Open Source utility designed to make it easier to edit MathML 2.0 documents using plain text editors. Basically the math element's alt attribute is used in conjunction with the easy to use text format I designed some years back for the EzMath editor/plugin. The filter regenerates the MathML content from the alt attribute. The only problem I had was for the case where
alt=0x27a^m over a^n = either a^{m-n} when m > n
             or 1 when m = n
             or 1 over a^{n-m} when m < n 0x27

which I was uncertain of how to represent in MathML 2.0. I hope to make the utility available in the near future, and need a little time to finish the accompanying documentation etc. and to get approval from W3C to release this as W3C open source1.

Dave Raggett (Openwave) W3C Visiting Fellow

Ontario Research Center for Computer Algebra
MathML 2.0 Implementation Report

ORCCA, the Ontario Research Center for Computer Algebra, is a research laboratory located at the University of Western Ontario and the University of Waterloo in Canada, funded through government and private sector sources, with the purpose of advancing technology for computer-aided mathematics. The center consists of eight university faculty members, six post-doctoral fellows, numerous graduate students and undergraduate research assistants, and two support staff.

One of the activities of ORCCA is in the area of network communication of semantically rich mathematical objects for distributed applications or to share data between software components. We have produced a number of applications which transform mathematical objects between different XML-based representations, including OpenMath, MathML 1.0 and MathML 2.0. Two applications currently under development are conversions between the Presentation and Content aspects of MathML 2.0 subject to contextual rules. In particular, we have already implemented context-sensitive rendering of the MathML 2.0 content elements as presentation with content annotation with the XSLT stylesheet mmlctop. Options allow the original content markup to be cross linked with the generated presentation in various ways. We have also implemented a GUI to allow users to specify their notational preferences. These applications may be deployed with a future version of the Maple computer algebra system.

We have found MathML 2.0 to be a very significant improvement over MathML 1.0. Our initial experience with MathML 1.0 and with working drafts leading for XSLT allowed our projects to provide feedback through the W3C Math Working Group. In particular, the support for fine-grained relation between content, presentation and annotation entities allows for reversible transformations without quadratic blow-up in document size (in contrast to MathML 1.0).

Finally, we have found the MathML 2.0 specification to be superior to MathML 1.0 in areas not directly related to our current implementation efforts. Particularly notable are the additions and rationalizations to the vocabulary of elements and attributes and the (non-normative) Appendix with MathML DOM Bindings.

Stephen M. Watt, Director
Ontario Research Center for Computer Algebra

5.3.5 Mozilla

To bring latest web technologies on desktops and other devices under several operating systems, the Mozilla platform is being designed through the initiative and backing of Netscape, with the contributions of open source developers under the aegis of mozilla.org. Mozilla evolves as an aggregate set of projects that fit together horizontally or vertically. In particular, the MathML project aims especially at adding native support of MathML within Mozilla, starting with the rendering of Presentation Markup of MathML1 before moving on to other aspects.

As a native component, MathML in Mozilla leverages on the other components of the browser to achieve what would otherwise be impossible or very hard via a plug-in. Prototype trials have for example demonstrated the rendering of Content Markup using an on-the-fly transformation to Presentation with the Mozilla XSLT component. Other examples of benefits include Unicode, the styling of MathML with CSS, as well as the ability to interact through the DOM and JavaScript. The standardization of the key additions made in MathML2 (e.g., the MathML DOM, the approved MathML Unicode points) means that work toward native support of these could be started in a standards compliant manner.

Roger B. Sidje, University Of Queensland
Mozilla MathML Project

5.3.6 INRIA Rhone-Alpes

The MathML Content2Presentation Transformation (MathMLc2p), written in XSLT, is able to translate content markup expressions into presentation markup expressions automatically.

The latest version (2000-12-14) has been successfully tested using the MathML test suite (Content section) available at http://www.w3.org/Math/testsuite/ In cases where the test suite and the REC disagree, the REC prevails (for instance, the rendering of lambda functions is different).

It can be downloaded here:


Emmanuel Pietriga, emmanuel.pietriga@xrce.xerox.com
INRIA Rhone-Alpes and
Xerox Research Centre Europe
Document Model and Transformation Technologies
6, Chemin de Maupertuis, 38240 Meylan, France

5.3.7 REDUCE

The Computer Algebra system REDUCE has, over the years, developed numerous types of interfaces (starting with GENTRAN in the 70s) in order to fulfil its users' needs to communicate their results to other pieces of software. In recent years we have focussed mostly on the two emerging standards, namely MathML and OpenMath.

The first version of the REDUCE-MathML interface was implemented in the very early days of the MathML project and was based on with the MathML 1.x (draft) versions. The main purpose was, and remains, to connect mathematical processors by exchanging mathematical expressions in a standardized way allowing their evaluation on a remote system. Therefore our the main focus is on the MathML Content Markup. At present, we are not using Presentation Markup for input or output. This may change in the future as standard browsers evolve.

This means:

The module in the currently distributed system is still a MathML 1.x implementation, but with the help of our partners we are developing the software towards the 2.0 specification. The new version will be part of a new release of REDUCE.

Recently, in a project at the University of Bath, UK, a MathML to OpenMath converter has been written using REDUCE as the host system; it is able to generate MathML encoding from OpenMath (XML) encoding and vice versa. This module uses the MathML 2.0 draft but it also is restricted to Content MathML. This module is available on request.

For further details have a look at:


Winfried Neun, neun@zib.de
ZIB (Konrad-Zuse-Zentrum für Informationstechnik)
Takustraße 7
D-14195 Berlin-Dahlem

Valid CSS! Valid HTML 4.01!