Comments
Patrick Collands wrote: collands (AT) gmail com I'd be very grateful for an invitation. Thank you.
Cloud Expo on Google News

SYS-CON.TV

2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Click For 2008 West
Event Webcasts
MathML
MathML

MathML is a World Wide Web Consortium (W3C) standard that has been created so that mathematical expressions can be displayed, manipulated, and shared over the Web. According to the W3C, "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."

The MathML API can be found at the W3C Web site (www.w3.org). It has been designed as an XML application and provides two main sets of tags: one for the visual presentation of mathematics and the other for the content in equations. The W3C Math Working Group states that MathML should be created and edited using specialized tools and is not designed to be written primarily by hand, given the length and complexity of its API.

Benefits of MathML
The introduction of MathML brings several benefits, including:

  • Computation: Given that MathML includes tags for the content of the mathematics, it can be used for computation (note that this is different from GIF or PDF files where mathematical constructs can be represented but can't be manipulated). In fact, major computer algebra systems, such as Mathematica, have begun to support cut-and-paste of MathML into their documents, enabling their users to transfer math from Web pages and other sources into their documents. After the MathML document has been transferred to a mathematical tool, it can be manipulated for calculation, graphing, searching, and analysis.
  • Public standard: The fact that MathML is a public standard paves the way for the creation of tools and solutions from a number of vendors and open-source organizations. It also means that mathematical data can be easily shared among different organizations and in this way facilitates research and information sharing (both of which are the goals of the World Wide Web).
  • XML advantages: MathML is based on XML so it brings all the advantages of XML with it. It can be used for representation on any application that handles XML, including Web, paper, and PDF. Also, the representation can be changed using a stylesheet document.

    Overview
    MathML's API consists of two main groups: presentation elements and content elements. Presentation elements describe a mathematical notation's visually oriented two-dimensional structure while content elements describe what the math means.

    Presentation Markup
    MathML has about 30 presentation elements that accept 50 attributes. Most elements represent templates or patterns for laying out subexpressions.

    Elements
    Presentation elements can be broadly grouped under the following five classes of elements.

    1.   Token elements: Token elements represent the most basic structures in mathematics. For example:

  • <mi>: Identifier, such as a variable, function name, constant
  • <mo>: Operator, such as a summation
  • <mn>: Number

    There are also a few presentation elements that are empty elements, and are used mostly in connection with alignment.

    2.   General layout: General layout elements describe the nature of the layout. For example:

  • <mfrac>: Form a fraction from two subexpressions
  • <msqrt>: Form a square root sign

    3.   Scripts and limits: Scripts and embellishments to symbols are common in mathematical notation. The elements in this section address this requirement. For example:

  • <msub>: Attach a subscript to a base
  • <msup>: Attach a superscript to a base

    4.   Tables: Matrices, arrays, and table-like mathematical notations are also represented using tags in MathML. For example:

  • <mtable>: Table or matrix
  • <mtr>: Row in a table or matrix

    5.   Actions: The maction element is in a category by itself, and allows coding of various kinds of actions on notation, such as occur in an expression which toggles between two pieces of notation.

  • <maction>: Binds actions to a subexpression

    It is important to note that the order of elements is important in MathML. This is the only way that the MathML processor can understand the mathematical constructs. For example, the first child of an mfrac element is the numerator and the second child is the denominator.

    Attributes
    Presentation elements can take up to 50 different attributes. Attributes generally specify additional optional information about the element. Each attribute has a name and a value. Using attributes, it's possible to precisely control how an expression will look when displayed. For example, the mfrac element has an attribute called linethickness and is described below:

    attribute: linethickness
    values: number [ v-unit ] | thin | medium | thick
    default: 1 (rule thickness)

    Content Markup
    There are about 120 content elements and they accept close to a dozen attributes. Content markup facilitates applications other than display, like computer algebra and speech synthesis. The scope of content markup includes arithmetic, algebra, logic, relations, set theory, calculus, sequences, series, functions, statistics, linear algebra, and vector calculus.

    Elements
    There are many elements in the content markup part of MathML. The best way to think about elements is to categorize them into six buckets as follows.

    1.   Containers: Container elements are used to indicate the basic units of mathematical content such as mathematical identifiers, numbers, and symbols. For example:

  • <cn>: Used to represent numbers
  • <ci>: Used to construct an identifier or variable

    2.   Operators, qualifiers, and functions: These are tags used to define different mathematical and statistical functions and operators. For example:

  • <sin>: Function for sine
  • <divide>: Operator for division
  • <lowlimit>: Qualifier

    3.   Relations: Relations are characterized by the fact that, if an external application were to evaluate them, they would typically return a truth value. For example:

  • <eq>: Equal
  • <neq>: Not equal

    4.   Conditions: The <condition> element is used to define the "such that" construct in mathematical expressions. The condition element is always used together with one or more bvar elements and the interpretation depends on the context.

    5.   Syntax and semantics: This class provides additional information required for mathematical processing. For example:

  • <mappings>: Semantics, annotation, annotation-xml

    6.   Constants and symbols: These are a collection of predefined constants and symbols which represent frequently encountered concepts. For example:

  • <integers>: A set of integers

    The <apply> element is perhaps the single most important content element. It is used to apply a function or operation to a collection of arguments. For example:

    <mrow>
    <apply>
    <minus/>
    <ci>a</ci>
    <ci>b</ci>
    </apply>
    </mrow>

    Attributes
    There are about 12 attributes for the content presentation markup in MathML. These are used to add information about the content. For example:

    <cn type="real"> 12345.7 </cn>

    Creating MathML
    There are a few Web browsers that support MathML, including Netscape 7.0, Amaya, and Mozilla. Amaya is the W3C's editor and browser and is used to demonstrate and test many of the new developments in Web protocols and data formats. In the simple example shown in Listing 1, I will use Amaya. Amaya can be downloaded from www.w3.org/Amaya/User/BinDist.html.

    Here we have the normal structure of an XHTML document. It begins with the start tag <html> embellished with an XML namespace declaration and language assertions. A head element contains a title as is customary. Then the <body> beginning also has a namespace declaration of an abbreviative prefix letter m to be used for the standard MathML namespace. Next comes a simple paragraph. Finally we get the math element which also has a namespace association declared. Inside the math element is MathML markup as we are beginning to be used to it. It is rendered in Amaya as shown in Figure 1

    Amaya and Mathematica are two examples of editors that can be used for editing the content of MathML. The W3C MathML page also mentions a LaTeX to MathML converter known as WeM, which is a MathML editor that converts a subset LaTeX to MathML. It can be tested online and is also available for download (GPL, requires PHP). Several other available tools can also be found on the MathML Web site (www.w3.org/Math).

    Summary
    MathML is a powerful XML-based markup language for publishing mathematics on the Web. MathML makes it possible to develop Web-based applications for displaying, searching, indexing, archiving, and evaluating mathematical content. It consists of two basic structures: presentation markup for describing math notation, and content markup for describing mathematical objects and functions. The motivation for MathML is a world in which individuals and companies want to move away from proprietary data formats and use XML to express, interchange, and share information. With increasing tool and browser support (both Microsoft and Netscape have publicly declared support for the XML recommendation), MathML's importance and prevalence will continue to grow.

    About Ayesha Malik
    Ayesha Malik is a Senior Consultant of Object Machines, a software engineering firm providing Java technology and XML solutions to businesses. Ayesha has worked extensively on large XML and messaging systems for companies such as Deutsche Bank and American International Group (AIG). Most recently, she has been researching new ways to make schemas extensible and object-oriented.

  • In order to post a comment you need to be registered and logged in.

    Register | Sign-in

    Reader Feedback: Page 1 of 1

    Is there a way to write a MathML webpage that will work with both IE/MathPlayer and Mozilla?

    Hi,

    Whereas I like to see articles on MathML, Ms. Malik seems to have ignored all my company's products. Design Science (DSI) has spent (and continues to spend) a considerable amount of its resources supporting MathML.

    First, she fails to list that MathML support is available in Internet Explorer via our free MathPlayer plug-in. As we have over 55,000 downloads, I can virtually guarantee that more people are seeing MathML in web pages using MathPlayer than anything else.

    Second, we make MathType, the full-featured version of the Equation Editor that ships with every copy of Microsoft Office. MathType allows a user to create an equation interactively then copy it to the clipboard as MathML. Also, one can save a Word document as a web page containing MathML equations that will work with IE, Mozilla, etc.

    Finally, we make WebEQ, a MathML-based system used to develop interactive web pages (eg, a test where the student can answer questions with mathematical notation).

    Perhaps this is just an oversight, but I suspect there is perhaps some anti-Microsoft sentiment at work here. Regardless of her opinion of Microsoft, my company is not associated with Microsoft. We have, of course, licensed our products to Microsoft but they are one of about 40 companies to which we license. Also, three DSI people (myself included) have been members of the W3C Math Working Group that created MathML. One (Robert Miner) was co-chairman for a while and one of the editors of the original specification.

    Paul

    ----------------------------------------------------------------
    Paul Topping email: pault@dessci.com
    President phone: 562-433-0685
    http://www.dessci.com
    Design Science, Inc.
    "How Science Communicates"
    MathType, WebEQ, MathPlayer, Equation Editor, TeXaide
    ----------------------------------------------------------------


    Your Feedback
    Jose Vidal wrote: Is there a way to write a MathML webpage that will work with both IE/MathPlayer and Mozilla?
    Paul Topping wrote: Hi, Whereas I like to see articles on MathML, Ms. Malik seems to have ignored all my company's products. Design Science (DSI) has spent (and continues to spend) a considerable amount of its resources supporting MathML. First, she fails to list that MathML support is available in Internet Explorer via our free MathPlayer plug-in. As we have over 55,000 downloads, I can virtually guarantee that more people are seeing MathML in web pages using MathPlayer than anything else. Second, we make MathType, the full-featured version of the Equation Editor that ships with every copy of Microsoft Office. MathType allows a user to create an equation interactively then copy it to the clipboard as MathML. Also, one can save a Word document as a web page containing MathML equations that will work with IE, Mozilla, etc. Finally, we make WebEQ, a MathML-based system used to develop interactive...
    Latest Cloud Developer Stories
    CloudBench Applications, Inc. announced its financial results for the three months and nine months ending September 30, 2009. All amounts are stated in Canadian dollars unless otherwise noted. Revenues from BasicGov, the Company's cloud computing solution for local government, gr...
    The new contract is an industry first, with CSC being the first Microsoft partner to lead and win a cloud computing services agreement of this scale. Under terms of the contract, CSC will provide Royal Mail Group's 30,000 employees with access to new IT services using Microsoft's...
    Operates in over 170 countries and is one of the world’s leading providers of communications solutions and services. Richard Tarboton talks for MeettheBoss.TV on his role as Head of Energy & Carbon for BT and what they are doing towards reducing carbon emissions.
    CA is going to put its Agile Planner software on salesforce.com’s Force.com platform in the first half to accelerate development time and give users visibility over their development initiatives to reduce time-to-market. Customers are supposed to be able to accelerate the deploym...
    Despite its uncertain fate Sun soldiers on. Monday it trotted out a cloud-based multiplatform desktop as a service for K-12 and community colleges that can run Windows, the Mac OS, Linux and Solaris applications to nearly any client device, including its own Sun Ray thin clients....
    Subscribe to the World's Most Powerful Newsletters
    Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    SYS-CON Featured Whitepapers
    ADS BY GOOGLE

    Breaking Cloud Computing News
    CloudBench Applications, Inc. announced its financial results for the three months and nine months e...