**WD-Implementation and Interoperability 20001210**

This version: | http://www.w3.org/Math/iandi/impl-interop02.html |

Latest version: | http://www.w3.org/Math/iandi/impl-interop2001210.html |

Previous version: | http://www.w3.org/Math/iandi/impl-interop20001031.html |

Editor: | Patrick Ion (MR / AMS) <ion@ams.org> |

This is a draft report on implementation experience and interoperability issues arising from MathML. This draft is part of the submission by the W3C Math Working Group to the W3C Direction 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-only document, not for public consumption.

As the long process of development of MathML 2 as a revision to MathML 1.01 draws to a close, a good number of implementation efforts using MathML have been started. There are 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.

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 MacKichan

5.1.5 MathSoft

5.1.6 Stilo

5.1.7 University of Bologna

5.1.8 WMI (Waterloo Maple Inc.)

5.1.9 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

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.

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

the existence of

- At least one prototype implementation using each of
- Presentation mark-up,
- Content mark-up.
- Presentation and Content mark-up together;

- Proofs of concept that MathML Presentation and Content,
and their mixing, can be displayed in
- A Web browser,
- A plug-in,
- An autonomous viewing application;

- Demonstrations that MathML presentation and content mark-up can be generated by applications that have mathematical data already encoded in other ways;
- Examples of authoring tools, of different types, showing that MathML can be edited;
- An example of a prototype translator from mathematical legacy documents in TeX encoding;
- An example system showing that MathML encoding can be used to produce high-quality mathematical typesetting;
- A proof of concept showing audio rendering from MathML encoding;

and the provision of

- Implementations that run on several platforms under different operating systems;
- A test-suite of standard examples to exercise various aspects of the MathML specification, preferably installed as part of the W3C validation service;
- Examples of import of mathematical data encoded in MathML into a computer algebra system for further processing;
- Examples of cut and paste of MathML between different implementations.

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.

- Amaya: W3C's browser and authoring tool for Web pages. Amaya includes an easy to use editor for MathML.
- Mathematica: a technical computing system with high-quality mathematical typesetting and editing. Mathematica is a visual typesetting and authoring tool which both renders and exports MathML. Since the shipping Version 4.0 Mathematica has had MathML support for presentation markup. This is in everyday use at the US Patent Office. Mathematica can both import MathML markup and display it, and export it for inclusion elsewhere.
- IBM techexplorer: a technical/scientific document viewer and "live mathematics" plug-in using MathML and TeX/LaTeX. Available on several platforms. Version 3 has almost complete MathML 2 support.
- Maple: a computer algebra system which has demonstrated import, export and evaluation of MathML content markup; in the future, generation and rendering of MathML will be supported.
- MathType: Design Science's intelligent equation editor and authoring tool for MathML began MathML support with version 4. Design Science makes the simpler equation editors for Microsoft Word and Word Perfect.
- WebEQ: a Java-based collection of tools for authoring and rendering MathML, including a visual editor, a WebTeX to MathML translator, and a rendering applet for interactive math on Web pages. WebEQ also provides Java Programmers with API documentation and libraries for other MathML aware applications.
- MacKichan Software: Scientific Workplace makers, have been working on MathML since joining the Math WG, especially in regard to the DOM interface.
- Mozilla: The open-source developing form of Netscape has a prototype form with MathML interpretation.
- Internet Explorer: Microsoft's Web browser effort is working on technology that permits support of MathML rendering using their behaviors technology.
- OpenMath: A project, part of whose European efforts are funded by the European Commission, which makes use of MathML.
- E-Lite: ICESoft had lightweight Java web browser and browser components with a full, native MathML 1 implementation available in a browser.
- LaTeX2HTML MathML package: LaTeX to MathML conversion. An early project done at the Geometry Center.
- Omega: LaTeX to MathML conversion.
- TeX4ht: LaTeX and TeX to Hypertext and SGML/XML translation from Eitan Gurari, with Sebastian Rahtz and others..
- TtM TtM translates from Plain TeX and LaTeX into HTML including the equations in the form of embedded MathML from Ian Hutchinson.
- EzMath: an easy-to-use input format based on how people speak expressions. EzMath also provides a convenient way to author MathML.

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
- Implementation using Content mark-up
- Mathematica, Maple, Mozilla, techexplorer, WebEQ, Stilo, OpenMath, mmlctop, MathMLc2p
- 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, IceSoft
- Display in a plug-in
- WebEQ, techexplorer
- Display in an autonomous viewing application
- techexplorer, Mathematica, Maple in prototype
- 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
- 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
`xmltex`

- Audio rendering from MathML encoding
- techexplorer with IBM ViaVoice
- Implementations that run on several platforms under different operating systems
- Mathematica, Maple, techexplorer, IceSoft, MathMLc2pmmlctop
- 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

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.

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:

- are accepted by the parser,
- can be created, modified or deleted by the user,
- are generated in MathML syntax when saving a document,
- are displayed on the screen and printed on paper.

However, there are some restrictions:

- Some elements can be edited only in the source view
(
`ms`

,`mspace`

,`mstyle`

,`merror`

,`mpadded`

,`mphantom`

,`mglyph`

,`mlabeledtr`

,`malignmark`

,`maligngroup`

,`maction`

). WYSIWYG editing is not available for those elements, but all attributes can be manipulated through dialogue boxes, without typing any markup in the source view. - Only the following attributes are rendered in the
formatted document:
`alttext`

,`mathvariant`

,`mathsize`

,`mathcolor`

,`mathbackground`

,`fontsize`

,`fontweight`

,`fontstyle`

,`fontfamily`

,`color`

,`linethickness`

,`numalign`

,`denomalign`

,`bevelled`

,`notation`

,`lquote`

,`rquote`

,`lspace`

,`rspace`

,`subscriptshift`

,`superscriptshift`

,`form`

,`width`

,`height`

(`mspace`

only),`depth`

(`mspace`

only)). - The math formatter does not break mathematical expressions
that are too long, but a scroll bar allows the user to scroll
the whole page horizontally. So, entities presented in section
3.2.6.1 (
`
 &IndentingNewLine; ⁠ &GoodBreak; &BadBreak;`

) are not interpreted. - The formatter does not interpret alignment markers
(
`malignmark`

and`maligngroup`

).

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.

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`

.

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.

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

Vincent Quint, Irène Vatton, W3C

December 8, 2000

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.)

http://www.webeq.com and
http://www.mathtype.com>

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 [1]) 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, we announced support for the Wolfram Research Inc. Mathematica product [2] 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 [3]. 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.

At this point most of the MathML 2.0 presentation, content tags, attributes and DOM APIs have been implemented. We expect to soon release our MathML 2.0 enhanced product.

Angel Diaz

[1] http://www.research.ibm.com/resources/news/20001020_techexplorer.html

[2] http://www.wolfram.com/news/techexplorer.html

[3] http://www.mathsoft.com/press/ibmmathsoft.html

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

barry@mackichan.com

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 proved 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

<apply> <ci>f</ci> <ci>x</ci> <ci>y</ci> </apply>

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:

<mrow> <mi>f</mi> <mo>⁡</mo> <mfenced> <mi>x</mi> <mi>y</mi> </mfenced> </mrow>

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

<mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow>

* "(-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:

<mrow> <mo>|</mo> <mtable columnalign='left'> <mtr> <mtd> <mi>x</mi> </mtd> </mtr> <mtr> <mtd> <mi>y</mi> </mtd> </mtr> </mtable> </mrow>

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.

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

Notes:

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.

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

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

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 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)

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

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)

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 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

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

http://www.w3.org/People/Raggett

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

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 developpers 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

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:

http://www.inrialpes.fr/opera/people/Emmanuel.Pietriga/mathmlc2p.html

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

http://www.xrce.xerox.com