axiom-mail
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-mail] Re: Axiom and OpenMath/MathML


From: root
Subject: Re: [Axiom-mail] Re: Axiom and OpenMath/MathML
Date: Tue, 10 Dec 2002 20:26:57 -0500

> Bill Page wrote:
> 
> >
> >> C Y wrote:
> >> 
> >...(snip)...
> >> You might want to read 
> >> http://www.cs.berkeley.edu/~fateman/papers/openmathcrit.pdf
> >> to see some of his objections to OpenMath.
> >
> > Well, I've read Fateman's objections and I tend to agree with
> > him.
> 
> Tim, I am surprized! My reaction to Fateman's paper was
> immediately negative and even after re-reading I still get
> the impression that it is only a rather poorly executed
> hatchet attempt. I suppose that to debate this here in the
> Axiom mail list might be considered kind of coping out since
> I know that there are supporters of OpenMath who read this,
> but I have know idea whether Richard Fateman does. Perhaps
> it has been argued in detail elsewhere, but what harm can
> it do (except distract Tim from getting Axiom into a
> publishable open source state... <grin>).

Well, Fateman's a clever fellow and knows more about the subject
than you might suspect. Rather than try to defend him or his
positions I'll state my own thoughts on the subject of OpenMath.

>From what little I claim to know about the subject the fundamental
idea is that there are libraries of semantics that define what the
symbols used in a communication mean. That way the sender and
receiver have a common point of reference. I suppose this might
be possible but it would be a fundamentally hard problem.

Just to get down to cases lets assume that Maple, for example (and
I confess that it is years since I've actually used Maple so my
examples might no longer hold true) and Axiom. Let me try to 
illustrate why *I* believe the problem is harder than you might
suspect.

First, there is the fundamental mismatch of the designs of the
systems. I classify Maple as an "Engineering" system. That is,
the Maple system is designed for ease of use. It strives to
make the answers "work out ok". A subtle side-effect of this
design are cases where you subtract two matrices and get a 0 integer
rather than the 0 matrix. This zero integer can be used in further
computations unrelated to matrices.

I classify Axiom as a "theory" system. That is, Axiom is designed 
for correctness. It strives to make the answers match the theory.
Thus, subtracting two matrices will give you a 0 matrix. This 
strong typing is anything but easy to use. 

So the two systems started with different mindsets and virtually
every level of the design is constructed to support that mindset.
What is easy to write in 5 lines of Maple can take a great deal
of struggle in Axiom. The reverse is also true.

OpenMath presumes that there are two systems that support its
semantic definitions. That can be very hard for Maple if the
semantics are deeply related to the type. It can be very hard
for Axiom is the semantics are type-ambiguous.

Second, there is the semantic mismatch between Maple and Axiom.
Axiom's mathematics assume an inheritance model, local scoping
of variables in algebra code, etc. Maple's mathematics don't
support inheritance, variables have global scope, etc. It's
like the difference between Java and Basic. You made the point
that surely Maple could be programmed to accept Axiom's types.
Yes, it could but you'd end up building an Axiom interpreter
in Maple's interpreter language. I fail to see how OpenMath
would address such wildly differing environments like Java and
Basic or like Maple and Axiom. A great deal of the semantics in
Axiom's answers is encoded in the type. If I send an equation
to Maple I need the correct type returned. It can't be lost or
I've lost fundamental semantics.

Third, there is the syntactic mismatch. For primitive math you
might hope that Maple and Axiom use the same notation, at least.
Unfortunately this isn't true. Life gets much worse when you 
try to represent higher objects like Ideals or a Groebner basis.
Even the integrate function, which they both support heavily,
shares little, if any, syntax.

OpenMath is a good idea and is supported by a lot of clever
people. It might succeed. I could even be classified as a 
"mild supporter". But it doesn't stir my blood to want to write
code for it. If you're interested, however, I'm willing to discuss
ways to experiment with it. It is, after all, leading edge research
(my definition of research is doing something no one in the world
knows how to do) and Axiom has always been a great platform for
doing research.

Tim





reply via email to

[Prev in Thread] Current Thread [Next in Thread]