Wolfram Researchwww.mathmlcentral.comOther Wolfram Sites

MathML Tools

Render MathML...
from Text

About MathML Tools

The MathML tools on this website take advantage of Mathematica's built-in capabilities for importing, processing, and exporting MathML. Each tool is essentially a web-based interface for doing a specific type of computation with Mathematica. The interaction between the web page and the server is handled by webMathematica, a Java-based application that integrates Mathematica with standard web technologies to deliver dynamic computations over the web.

webMathematica uses Java Servlet technology to allow Mathematica commands to be embedded in a standard web page. The Mathematica commands are inserted into the HTML document in the form of special Mathlet tags. When you type in some input and press a button, the input is sent to the web server. The Mathlet tags in the page are interpreted and converted into standard Mathematica commands, which are then evaluated by a copy of Mathematica running on the server. The result of the evaluation is embedded in an HTML document, which is then sent back to the client machine and displayed in your browser.

Each tool on the website uses one or more of Mathematica's built-in functions for working with MathML. A typical computation would involve the following steps.

  1. The data entered by the user is imported into Mathematica using the Import function.

  2. Some transformations are performed on the data using Mathematica programming. These transformations may use the high-level functions for converting between MathML strings and the boxes and expressions used internally by Mathematica to represent mathematics. For example, XML`MathML`MathMLToBoxes converts a MathML string into a typeset formula, and XML`MathML`ExpressionToMathML converts a Mathematica expression into a MathML string.

  3. The result is exported out of Mathematica using the Export function.

The MathML tools shown here are a special case of Mathematica's general XML-processing capabilities. Mathematica represents XML data, including MathML, internally as SymbolicXML. This is a special type of Mathematica expression that preserves the tree structure of the original XML data.

The advantage of converting XML data to SymbolicXML is that the resulting expression can be manipulated using the standard techniques of Mathematica programming. For example, you can use pattern matching to extract specific parts of an expression. You can also draw upon Mathematica's large number of functions for numeric, symbolic, and graphical computations and apply them to XML data. The combination of SymbolicXML and Mathematica programming is an effective way of manipulating XML documents. It provides a useful alternative to other techniques such as XSLT transformations or the SAX or DOM APIs used with a programming language such as Java.