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
----------------------------------------------------------------


      
      
      
   

Received on Tuesday, 12 January 1999 15:36:22 UTC