MathML-Presentation specs criticized.

As currently written (version 2) MathML poses several limitations and
quirks.  Here is a list of several criticisms and suggestions for
further drafts of MathML.

a) Hard to write by hand (1).  In my experience, the presentation
elements are easier to work with - as its grammar and vocabulary is
smaller and simpler - compared to the content elements.

b) Composed of two major languages: MathML-Presentation and
MathML-Content.  This complicates MathML, as there can be no conflicts
between the two.

c) MathML-Presentation (MMLP) is meant to specify the layout of
mathematical elements.  Despite a separation in MathML from the content
language, MMLP can help convey the meaning of an expression (3), within
a particular context (4).  However, as context changes from document to
document and culture to culture, MMLP can become irreverent despite
extension mechanisms built into MathML.

d) MMLP has too many style and layout attributes.  HTML 3.2 has many
style attributes and elements, which were depreciated in the following
versions since CSS provided a more flexible system as well as separating
style from content.  In mathematics, layout and style also provide some
content to the expression.  However, many of the token attributes
present in MMLP can be better represented using CSS.  I feel that all
style attributes should be depreciated in favor of style sheets.

e) Certain MMLP elements, such as mphantom, mpadded, mspace and mstyle
run the risk of becoming just as dangerous as the font, spacer and blink
elements of HTML were.  They should also be depreciated.

f) Despite my arguments above, I think that concept of the mphantom
element should be a style attribute common to all elements.  First, this
method extends the "invisible entities" - ⁢ ⁡ ⁣ - so that
ambiguous situations can be described more accurately.  For example in
the following code snip:


It is ambiguous whether or not the number 2 is a index or an exponent.
A more descriptive way of describing the situation is:

		<mo style="display: none;">^</mo>

This example uses CSS is make the carrot operator (of exponentiation)
invisible.  Now it is clear that the number 2 is not an index.  It would
be advantageous to have shorthand for this.  For example:

	<mo type="invisible">*</mo>

In the above code, the multiply operator is invisible.  Although the
invisible entities could also be used to code that, the use of a
type="invisible" attribute is more flexible.  One more example:

	<mo type="invisible">Partial Derivative of</mo>
			<mo type="invisible">wrt</mo>

This example shows how a partial derivate can be easily represented in

You like?
Jimmy Cerra

(1) "Although there is a price to be paid for the ambitious goals behind
MathML -- it is a verbose, complicated language not well suited to hand
editing -- the payoff in terms of power and versatility is quite
impressive...." from:

(2) "This chapter specifies the `presentation' elements of MathML, which
can be used to describe the layout structure of mathematical notation."

(3) "Notational conventions in mathematics, and in printed text in
general, guide the eye and make printed expressions much easier to read
and understand. ...we rely on hundreds of conventions... Such notational
conventions are perhaps even more important for electronic media, where
one must contend with the difficulties of on-screen reading." From:

(4) For instance, a function "primed" (as in f'(x)) can denote the
derivative of the function in calculus.  However, in geometry it can
represent a translation or transformation of the function.  Outside of
math, a primed function can represent another inertial reference frame
(in physics).

(5) For instance, the mathvariant, mathsize, mathcolor and
mathbackground attributes can be set by equivalents in CSS.  I think the
spec mentions this, but I can't find it.

Received on Monday, 15 April 2002 18:21:27 UTC