First of all, I must say that I applaud the initiative to include tags for
mathematics in HTML5 and that I really hope that this will be part of the final
specification.
Several attempts have been made to create a suitable format for mathematics on
the web, none of which has gained widespread acceptance. Let me highlight a few
requirements that probably must be satisfied in order to avoid a new failure.
1) Do not encode every tiny semantic detail explicitly
As Henri Sivonen put it: «[I]t is futile to insist on semantics that you can't
pull out of LaTeX as it is normally authored.» I would like to use a slightly
different wording: It is futile to insist on encoding anything that does not
change the appearance of a formula as it is written on a blackboard or printed
in a book.
This point can be illustrated by the two similar-looking formulae a) $\sin^2
(2p+1)x$ and b) $f^2(2p+1)x$. Mathematicians whom I know would evaluate a) as
{sin[(2p+1)*x]}^2 and b) as f[f(2p+1)]*x.
Rules to map between meaning and form cannot be made to work reliably in all
cases. Brevity is queen, and conventions may differ between different fields of
mathematics.
The point already made about $dt^2$ meaning (dt)^2 being encoded to mean d(t^2)
in MathML is just another example of what happens when there is lack of
agreement between what the author wants (i.e. to make the formula look nice on
the web so that other people can read it) and what the format tries to enforce
(i.e. to assure that encoding of a formula be sufficiently semantical for a
computer theoretically to be able to evaluate it).
No semantics is clearly better than wrong semantics, and correct semantics
combined with nice presentation is probably not feasible without encoding
everything twice. After all, most authors would clearly want to use the same
encoding for the superscripts in e.g. $x^2 = x\times x$, $f^2(x) = f[f(x)]$,
$f^{(4)}(x) = \frac{d^4}{dx^4}f(x)$, and $x_i^{(j)} = x_{i,j}$. Anything else
will undoubtedly lead to erratic encoding, and what is a poor author supposed
to do when he wants to use e.g. a superscript in a way for which no encoding
exists?
Finally, the encoding of semantics in mathematical formulae probably does not
feel more necessary to most people who write and read them than the encoding of
the particular meaning of an ambiguous word like `can', albeit a
differentiation between the modal verb meaning `be able to', the noun denoting
a container, and the transitive verb meaning `put into a can' could potentially
be helpful for applications like grammar checking and text retrieval.
2) Fight verbosity
The reasons for TeX's undeniable success are many, but one of them might be its
concise syntax. People who appreciate the aesthetics of mathematics and are
used to make the distinction between $f$ and $F$ or between $\phi$, $\varphi$
and $\Phi$ certainly have no difficulty distinguishing \big from \Big. More
importantly, the amount of mark-up needed to encode a line of mathematics is
enormous compared to what is necessary for a line of running text.
Consequently, each mark-up element must be kept as short as possible.
It may be true that there will always be more <p>'s than <formula>'e out there;
however, those using mathematics are likely to use it quite heavily, which
makes <m> (for mathematics, or <f> if the <m> tag cannot be reassigned),
<frac>2<den>3</frac> and <root>3<of>125</root> clearly better suited than
<formula>, <fraction>2<denominator>3</fraction> and
<radical>3<radicand>125</radical>.
3) Assure compatibility with a reasonable subset of TeX
As already stated by others, many (most?) potential users of HTML5 Mathematics
already know TeX, and if common TeX constructs cannot be reliably encoded, they
will quickly move on to (or wait for) something else. If Wikipedia's subset of
TeX [1], which seams to cover the most commonly used syntactic constructs, can
straightforwardly be transcoded, then Wikipedia would in all probability offer
HTML5 Mathematics as a rendering option, which would potentially give the new
format a flying start. I would be most keen to learn to what extent the
existing drafts would be able to represent the mathematical constructs covered
by this particular subset of TeX adequately.
[1] http://en.wikipedia.org/wiki/Help:Formula
4) Make font selection simple and natural
This point does not seem to have attracted quite the attention it deserves yet.
TeX seems to have got things right on this point by making italic the default
for letters and roman the default for numbers. Is this approach completely
unfeasible within the HTML/CSS framework?
If either numbers or letters (variables) have to be marked up explicitly, the
choice should be obvious. Nevertheless, writing something like
<m><var>a</var><var>x</var><sup>2</sup> + <var>b</var><var>x</var> +
<var>c</var> = log <var>d</var></m> is somewhat cumbersome, which will
inevitably lead to <m><var>ax</var><sup>2</sup> + <var>bx</var> + <var>c</var>
= log <var>d</var></m> or even the complete omission of <var> tags.
On the other hand, TeX's approach will render the last part of the formula
$ax^2 + bx + c = log d$ as the product l*i*m*d, a fact which will probably will
make the author realise that something is wrong and make him change log into
\log.
It could be argued, of course, that authors' laziness should be disregarded,
which might be right to a certain extent, but we do not want to make their work
too troublesome either.
How are non-italic variables supposed to be handled? Using attributes, like
<var class="italic">, <var class="bold">, <var class="blackletter">, <var
class="roman">, etc. may be part of the solution, even though it would be quite
verbose. At the very least, a (minimal) set of font-styles should be clearly
defined.
5) Avoid unnecessary complexity [less important section]
Quite a few years ago, my mother was employed by a newspaper to type text
written by journalists. In order to allow correct hyphenation of words, she had
to encode every possible hyphenation point in each word. One could argue that
the same should be done on the web, as the reader's browser's hyphenation rules
(if such a thing even existed) cannot be expected to handle text on the
Internet correctly because the vocabulary is unknown (as is the author's
hyphenation preferences, but I digress.). Still, nobody does this, and hardly
anyone complains about it.
Correct splitting of continuous fractions seems like a similar non-problem. If
a fraction is really overly long, then the author should probably split it
manually.
6) Build on existing standards
When making something from scratch, then the risk of making a mistake is
clearly higher, and the new language will be unfamiliar to everyone.
It might be useful to discuss the problems inherent in existing languages in
some detail, including (possibly simplified) MathML (semantics? not strictly
left-to-right and top-to-bottom?), a subset of TeX (no angle brackets?
impossible to add CSS support?), and ISO-12083 (inconvenient tagnames?).
--
Andersen
PS: I would very much welcome a default rendering of the existing and
yet-to-be-written code examples in the drafts.