- From: Mikko Rantalainen <mikko.rantalainen@peda.net>
- Date: Thu, 30 Mar 2006 12:50:28 +0300
- To: juanrgonzaleza@canonicalscience.com
- Cc: www-math@w3.org
juanrgonzaleza@canonicalscience.com wrote:
> Unfortunately, the w3c MathML specification does not explain to readers
> the reasons for the several options taken by its authors.
>
> - what is the argument to use some like
> <apply><divide/><ci>A</ci><cn>2</cn></apply>
> instead of shorter
> <divide><ci>A</ci><cn>2</cn></divide> ?
> - What is the reason for
> <apply><plus/><cn>5</cn><cn>8</cn></apply>
> instead of calculator-like
> <apply><cn>5</cn><plus/><cn>8</cn></apply> ?
I don't know the "official" reason for these constructs but my guess
is that they follow the logic that <apply> is a function
application. In programming terms one would convert
markup such as
<apply><plus/><cn>5</cn><cn>8</cn></apply>
to a computer program
plus(5,8)
where the "plus" is name of the function to call. Apply always takes
the first child (from DOM tree) as the function to use and rest of
the childs as parameters for that function.
If you think that everything is a function, then writing "A/2"
really seems like a shorthand notation for divide(A,2).
> - What is the reason for
> <msup>base <mrow>index1 index2</mrow></msup>
> instead of
> base<sup>index1 index2</sup>
> or the
> base^{index1 index2}
The reason the last one isn't used is that it doesn't follow the XML
way of doing things and (it seems that) W3C has decided to use XML
for markup of practically everything.
I guess the reason the first one of the above XML variants is used
is that it makes it perfectly clear which part the superscript is
for. Consider the following
<mi>a</mi><mi>b</mi><sup><mi>c</mi></sup><mi>d</mi>
Does that mean "((ab)^c)d" or "a(b^c)d" or something else? Again, if
you think that XML is *the* way to go, then these design choices
logically follow. "Everything is a tree".
--
Mikko
Received on Thursday, 30 March 2006 09:51:02 UTC