[Prev][Next][Index][Thread]
Re: MathML-Reduce Web Interface
Dear Luis,
I was just checking out your MathML interface to REDUCE. Thanks for
all the work you've put into supporting MathML, and congratulations!
I have noticed a number of small problems with it, however, that keep
many examples from properly displaying. I caught some by hand, but
mostly I am using WebEQ/e-Lite to check them. Though I am willing to
be corrected, WebEQ/e-Lite is still the only piece of software I know that
really has full MathML 1.0 support, including rendering of content
markup.
Here are the problems that came up doing some spot checks
(I don't know REDUCE well at all, so I haven't tried anything very
sophisticated.)
1. You seem to be generating <relation> ... </relation> tags instead
of <reln> ... </reln>. For example,
tay(x*sin(x),x,5);
returns
<math>
<relation><eq/>
<apply><plus/>
<ci>x</ci>
<cn type="integer">6</cn>
</apply>
<apply><plus/>
<apply><fn><ci>y</ci></fn>
<ci>x</ci>
</apply>
<ci>y</ci>
</apply>
</relation>
</math>
2. It appears that <divide/> is being output without the slash in
some cases. For example,
pf(2/((x+1)^2*(x+2)),x);
returns
<math>
<list>
<apply><divide>
<cn type="integer">2</cn>
<apply><plus/>
<ci>x</ci>
<cn type="integer">2</cn>
</apply>
</apply>
<apply><divide>
<apply><minus/> *****
<cn type="integer">2</cn>
</apply>
<apply><plus/>
<ci>x</ci>
<cn type="integer">1</cn>
</apply>
</apply>
<apply><divide>
<cn type="integer">2</cn>
<apply><plus/>
<apply><power/>
<ci>x</ci>
<cn type="integer">2</cn>
</apply>
<apply><times/>
<cn type="integer">2</cn>
<ci>x</ci>
</apply>
<cn type="integer">1</cn>
</apply>
</apply>
</list>
</math>
3. The previous example also points out another problem, though in
this case it isn't clear to me if the culprit is your code, WebEQ,
or the MathML spec. I am inclined to blame the spec.
The problem is that the <minus/> element indicated by the *****
above is followed by a single child. WebEQ throws an error, based
on the fact that </minus> is listed in section 4.2.3 of the spec as
a binary operator. Oops. Where does that leave the unary minus
operator. As far as I can tell, it isn't there...
4. Another interesting problem arises in the following example:
m:=mat((1,x),(2,y));
returns
<math>
<declare>
<ci>m</ci>
<matrix>
<matrixrow>
<cn type="integer">1</cn>
<ci>x</ci>
</matrixrow>
<matrixrow>
<cn type="integer">2</cn>
<ci>y</ci>
</matrixrow>
</matrix>
</declare>
</math>
This is a perfectly good MathML encoding. However, as written, it
contains no renderable output. A <declare> element is not required to
be directly displayed, as noted in section 4.2.2.8 of the spec,
WebEQ doesn't.
That's as far as I went for now, but I'll try to do some more testing
and let you know what I find.
--Robert
----------------------------------------------------------------
Robert Miner http://www.webeq.com
Geometry Technologies, Inc. email: rminer@geomtech.com
phone: 651-223-2884
----------------------------------------------------------------
Follow-Ups: