Re: fork in Lisp? was: Maxima servermode: stability of commands....



----- Original Message ----- 
From: "Michele Slocovich" <msloco at gmail.com>
To: "Gerd Kortemeyer" <korte at lite.msu.edu>
Cc: "Robert Dodier" <robert.dodier at gmail.com>; "maxima" 
<maxima at math.utexas.edu>
....

In any case, if a single format has to be chosen (IF), i think it should be
MathML, prefeferably Content-Mathml.
So to assure full interoperability, without possibile ambiguities.

............
You seem to believe that someone actually defines what is meant by
the contents in  the "content MathML", and that therefore it would be
good to use in some semantic interoperable encoding.  This
is wishful thinking.  If you want to exchange the meaning of
some math utterance, you would be much better off providing
a specific reference to, for example, the Maxima expression
<something in Maxima syntax>  or  <lisp S-expression internal form of Maxima 
expression>.

What does MathML content do?

http://www.w3.org/TR/MathML2/chapter4.html

It provide another (very verbose) structural description, different
from layout.  That is, in MathML content one would not distinguish

a+b+c+d

from

a+b
+c+d

A distinction which presumably could be made in the presentation form.

What does MathML content NOT do that you would need?

 At least
last time I looked, if you had two programs talking about something
as simple as sin(x),  you would have to know whether x was in
degrees or radians or some other measure. MathML Content
doesn't tell you.
Even if you write it out as <apply> <sin/> <ci> x </ci> </apply>.

In lisp this would be (sin x).  But that could convey much more
information than MathML because of the context
 in ANSI Common Lisp.   In Maxima, sin(x) implies
a bunch of semantics, simplification rules, etc.  In MathML
it conveys essentially nothing beyond "single-argument trig function"

MathML targets only high-school and some college math.

the MathML definitionURL, which potentially could do more,
appears to be undefined.

The OpenMath Consortium people, some of whom may be
reading this list, sometimes claim to be doing something
different and better.  I remain skeptical.


 If you want to convey a Maxima expression between two
programs, I suggest you write it out as a lisp s-expression
and read it in (and construct the appropriate object) on
the other side by  parsing the lisp.  If you are conveying
from lisp to lisp, it is trivial.  Otherwise, it is not hard to write a lisp
parser in C or Java. Probably the biggest task then is
to read numbers that are of arbitrary length.

I welcome comments on this from Openmath or MathML
advocates. They usually don't respond, however.

see http://www.cs.berkeley.edu/~fateman/papers/openmathcrit.pdf