Until recently the ability to share mathematics data between different
applications and on the Web was very poor. It was a Tower of Babel of
different languages and even different dialects of the same language. There
was no easy way take the results from a Mathematica document and transfer
them to Maple, or from Maple to Derive. Documents prepared in each of these
systems were in proprietary formats and you needed to own the application to
use them. (Wolfram Research did put out a free MathReader program to let
people open Mathematica documents but it wouldn't let the user perform any
calculations in the documents.) It was an even worse situation on the Web.
The standard language for documents on the Web, HTML, had no provisions at
all for displaying mathematical notation such as square roots or large
fractions. An attempt was made by one of the people designing HTML, Dave
Raggett, to introduce some math notation in HTML 3.1. This was such a
disappointing effort that these math extensions were withdrawn in HTML 3.2.
Soon after that, the major math software companies began to collaborate on a
new interchange language that would 1) allow all math programs to
communicate mathematical expressions with each other, and 2) allow
mathematical information to be embedded on a Web page. Representatives from
IBM, Waterloo Maple, Wolfram Research, Design Science, and many other
companies worked together to design MathML, something that all companies can
use. Products that now include some support for MathML or that will soon
include support for MathML are:
- MathType, a math typesetting editor from Design Science
- Mathematica from Wolfram Research
- Maple 6 from Waterloo Maple (next version)
- Scientific Word, a math typesetting and calculation system from
MacKichan Software
- Netscape Navigator (perhaps in the new release Navigator 6)
Microsoft has an internal experimental version of Internet Explorer that
displays portions of MathML.
It is clear to me that, in time, most major math products will include the
ability to import and export MathML expressions so that 1) they can
collaborate with other scientific or engineering applications and 2) they
can produce Web-ready documents when the standard Web browsers are
MathML-capable.
Some people have asked, "Why do we not use TeX or LaTeX as the standard
language for mathematics since so many scientific books and papers are being
formatted in TeX? Isn't Tex already the standard language for mathematics
in the computer community?" The answer is that, as nice as TeX is for
describing the layout or typesetting of mathematics information, it provides
no information about its meaning or semantics. For example, TeX can
describe how to place an italics "X" on the baseline and how to place
a "2"
in a somewhat smaller font size in the superscript position. But TeX
provides no semantics for what such a layout means. Is it exponentiation of
a scalar real value? Is it matrix exponentiation? Is it function
composition of some function called x? TeX was never designed to convey
this information. MathML was designed to provide both layout information
and semantic tagging. Only with MathML is it possible to communicate
mathematics from a palmtop device to a Web program to an engineering
application on a workstation in a way that provides sufficient informaton
for each program to understand how to use it meaningfully. Of course, since
so much published materials has already been created in TeX and its various
dialects, several groups are producing translators to translate from TeX
into MathML.
Support for MathML-capable browers and MathML-capable applications on a
device with a small memory footprint will be limited in the near future.
This is technology that is one generation beyond current HTML 4.0 browsers.
The new browsers will understand and work with the new standards that have
recently been set including XML languages such as MathML and also DOM
(Document Object Model). But these new browsers will be even bigger that
the HTML 4.0 browsers. On current portable devices, such as Windows CE and
PalmOS devices, browsers or document display programs are limited to subsets
of HTML 3.2. Not even Microsoft produces a version of Internet Explorer 5
(IE5 supports HTML 4.0 but not XML) for its own Windows CE system. When
portable devices start to have the memory footprint of current laptops, then
we will see support for MathML in handheld machines. Microsoft will
accelerate this evolution through it TabletPC, for example. (I suggest that
you see a video stream broadcast of Bill Gate's keynote talk at Comdex last
week if you have not seen the TabletPC.)
So, of course, everything will happen at some time in the future. Hardware
will become inexpensive enough at some point to allow all of the software
functionality that people are starting to want now. And some company will
pick up the ball and become the new market leader. But what do we do in the
meantime? Radical Flow has taken the position of creating intermediate
solutions that can be used on today's handheld machines. We are
implementing a browser for a subset of HTML 3.2 for electronic books that
will run on a Cassiopeia. So we do not have support for all of HTML 4.0 --
nor do we want to use all that memory to support a large program on a small
device. Most importantly, since we will be producing scientific and
mathematical eBooks, we are providing support for MathML. MathML is large
(its defining document is hundreds of pages long) and so initially we will
support the subset that is appropriate for high school mathematics and for
introductory college mathematics. This will allow us to make ourselves the
market leader instead of waiting for large amounts of memory to become
inexpensive in handheld devices. When that day comes, we would be able to
run standard desktop software on a handheld device. Our approach is a
practical approach for what can be achieved realistically in the short term.
I would also argue that although it may be economically feasible in the
distant future to run Netscape Navigator 6, Internet Explorer 2005, and
Mathematica 5 on a portable device when gigabytes are cheap, we will not
want to. I think that we need to think carefully about how a student or a
professional uses information on a portable device and to design
accordingly. It would be a mistake to take desktop browsers and desktop
applications and try to force fit them into a handheld appliance.
XML will be more important tomorrow than HTML is today. Take a look at all
the new tools and applications that are now being built in XML and in the
promotional push behind XML provided by Microsoft, Sun, and IBM. Including
support for XML, and in particular MathML for your education markets, means
that your products will fit better into a larger universe of information
technology and means that your products will benefit directly from being
able to talk to and use other applications, no matter where they are on a
campus.
I hope that this information is helpful to you. Neil Soiffer will be able
to show you the current status of MathML support inside Mathematica. He has
been one of the strongest proponents of developing an interchange language
between programs from different vendors. In 1997, he and I designed TWIC
(Tektronix Waterloo Interchange Code) for use between the MathScribe
typesetting program developed at Tektronix and Maple. The work by the
MathML group is excellent because it contains the contributions of some of
the brightest mathematics software designers working together, even though
they may come from competing vendors.