XML package and MathML



 

> -----Original Message-----
> From: maxima-bounces at math.utexas.edu 
> [mailto:maxima-bounces at math.utexas.edu] On Behalf Of Fr?d?ric WANG
> Sent: Friday, June 06, 2008 12:00 PM
> To: fateman at EECS.Berkeley.EDU
> Cc: maxima at math.utexas.edu
> Subject: Re: [Maxima] XML package and MathML
> 
>     The mathematical object "sin(pi/6)=1/2" is simply a logical 
> proposition. 


It seems to me that you are making a choice of all of the possible
mathematical objects and saying this is what it means. It is not necessarily
what it means in Maxima.  sin(pi/6) means 1/2.  So if it were to be a
logical proposition, then it would be 1/2=1/2, because sin(pi/6) would
instantly disappear.


> Hence I can exchange this proposition between programs, 
> without taking care about all the possible operations they will do on 
> it.

I expect that the operations on 1/2=1/2  and on sin(pi/6)=1/2 would be
different.


> What you give is not interpretations of the object itself, but of 
> the operations the program will do on the object.
>     
>     When I write
>     
> ( 4/2   1)
> ( 2     3)
> 
>     I do not express a simplification of the coefficient 4/2, 
> transposition of the matrix, computation of its eigenvalues, 
> declaration 
> of a linear transformations... but simply talk about a matrix 
> (with one 
> of its possible notation).

Again, you seem to think that a syntactic arrangement is itself "an
interpretation." It is not, unless you are content with an "expression tree"
that mirrors the syntax.  Even A+B is ambiguous, since + could be any
operator, say string concatenation. 

You need to use a trick to represented 4/2 in Maxima.  And unless you are
aware of the setting of various flags, you may find that even the numbers in
your matrix are reduced to elements in a finite field in Maxima.

> 
>     Now the object is not reduced to a purely data structure 
> '(= (sin (/ 
> pi 6)) 1/2) without meaning, because MathML specification indicates a 
> semantic for the XML trees (at less for Content MathML) which 
> is the one 
> of mathematical formulae.

Can you tell us about a program that produces CONTENT MathML routinely
suitable for use as input to Maxima?
And how that would be conveyed to Maxima?

If you are only producing syntax trees, that is relatively easy; it just has
this very fundamental problem with semantics.

>     
>     Finally, I says that I want to allow exchange between Maxima and 
> other programs but I don't mean that MathML is reduced to a common 
> exchange format as you seem to have understood. See 
>
http://www.maths-informatique-jeux.com/international/why_you_should_use_math
ml.php

Thank you for this link. 

In this position paper you seem to have entirely neglected my principal
criticism against MathML,
which is that it cannot be used to communicate semantics between different
systems.  You say
"According to their web sites, the two most used computer algebra systems
Mathematica and
Mapple, can import and export MathML."

So far as I can tell, this is true only of superficial syntax. Now Maxima1
can communicate object P with Maxima2 via MathML by encoding, in the CONTENT
component, everything that is needed to reconstruct P in Maxima2.  This is
already done in the save/restore (disk file) functionality.  Similarly for
Maple1 to Maple2.  The superficial MathML could be stored, but it would be
ignored.
But for Maxima to Maple, there would be no automatic translation of content,
and the superficial MathML would be inadequate.

Maybe more examples would help.

Consider the statement  "Let H be a Hilbert space"  I don't know if MathML
can express this, but if it could, how could some CAS import it, unless it
knew about Hilbert spaces, and could internally posit something like assume
(H in set_of_all_hilbert_spaces) ?

My principal objection is that you think that you are communicating some
kind of universally understood content by leaving out the content!

Regards
RJF

-- snip--