axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] (no subject)


From: root
Subject: [Axiom-developer] (no subject)
Date: Fri, 19 Sep 2003 10:42:42 -0400

Subject: Axiom and the scientific commnunauty]
Reply-to: address@hidden
--text follows this line--
------- Start of forwarded message -------
Daniel,

Thanks for your note.

I have had both face-to-face and direct email discussions that the
issues you raise are real and need to be addressed. I'll try to give
you my current thinking on the subject.

>       Dear Axiom developpers,
>
>  I think there is an issue for the future life of Axiom, which involves
>  researchers in computer algebra. From some email exchanges with
>  friends, I do not feel that the revival of Axiom as free software will
>  motivate them to go back to Axiom.

I don't expect that Axiom will gain a great deal of use simply because
it is free. I have collected about 100 free "computer algebra" systems
which I distribute on my Rosetta CD collection. Free CA systems are
"a dime a dozen" quite literally. Indeed many of these systems were
built by researchers as part of their research work.

My experience shows that most of these free systems start with the insight
that math "types" and programming "types" are similar. Starting with this
idea it becomes clear that you can build a nice, clean system from scratch.
It takes about a semester to build up a full, general purpose, polynomial
manipulation library in C++ and, indeed, you find that the math and computer
types interact very well. Then the insight occurs that the library isn't
useful to anyone but the researcher so the second semester of work involves
writing a front-end interpreter on the library. Subsequent effort involves
trying to convince others that this could be a very useful system given
sufficient effort.

This is very seductive since it looks like great progress. It has several 
problems. 

First, a local problem is that the research work that is "reduced to 
practice" using a newly implemented system cannot be effectively used by
others (e.g. library systems rarely do simplification and almost never
document their algorithms).

Second, a local problem is that reduction to practice, that is, "programming"
is generally not "valorized". The research is recognized but the year or
two spent building a working system is either ignored or considered to
be of little worth during tenure discussions.

Third, a global problem is that the algorithmic work, while free, is
generally useless to others. Either the system is so specialized that
it only does one thing well which makes it into a single-purpose, once-only
use tool or it tries to be general purpose and has such a limited range of
algorithms that it quickly reaches a point of frustration for the user.
Thus the one great algorithm at the center of the system is buried and lost.

Fourth is the "rule of 3". It takes 1 unit of work to get something for
yourself. It takes 3x1 units of work to make is so your office neighbor
can use it. It takes 3x3x1 units of work so you can use it "in the 
department" and in courses. It takes 3x3x3x1 units of work to give it
to the world for free without support. It takes 3x3x3x3x1 units of work 
to make it into a commercial product with support, a hotline, lawyers, etc.
Most "computer algebra" systems stop at the 3x1 level as there is no
interesting new research work beyond the first unit and the 3x1 units
are expended as a matter of trying to get the work out to the world.

Building your research on top of Axiom or the 3Ms (Mathematica, Maple, 
Matlab) immediately gives you the benefit of the 81 units of work already 
done.

Systems like the 3Ms get purchased because they are general purpose
enough to do virtually anything and hold out the hope that research
done with these systems will be picked up and made useful to others.
However you tend to lose control of your work. If it is badly implemented
in the 3M world and has your name attached to it you have little choice
but to suffer the hit on your reputation. In a free system like Axiom
your reputation is yours to make or break.

Detailed discussions with researchers highlights another subtle fact.
The 3Ms are built on weak theory ground. Practically speaking this has
the effect of "limits of scale". You'll find that the more complex the
package you build the more difficult these systems become, for reasons
not related to your package. The difficulty is compounded if you need
to use other "non-core" packages. In some sense, these systems are like
Perl which is easy to use, fast to write, hard to scale to large projects,
and impossible to maintain (yes, I know this is a religious debate).

>
>  In the French commnunauty, which I know a bit, because I was involved
>  during my PHD thesis, 10 years ago, many people got very involved with
>  Axiom. Many wrote domains, packages etc... for implementing the
>  algorithms they were introducing in their research work.

Axiom started out like any other home-grown system, called Scratchpad. 
However it was started at a time that major funding was available 
(computer algebra was considered to be a branch of artificial intelligence). 
It was heavily funded by both the U.S. government and IBM Research for about 
23 years. Many researchers came to visit, many people worked on the system, 
many algorithms were created in a broad range of areas. This is the
"dream realized" for the authors of the many free "library" systems.
Fortunately Axiom started out as a "theory" system and not a "library".
(See the footnote).

IBM ran into financial trouble and sold Scratchpad (as Axiom) to raise cash.
As a business decision this made sense but as a global decisions it was
pointless. Scratchpad is a great system for doing research work and had
the support and attention of about 400 researchers worldwide. If you're
going to do real math research Scratchpad was definitely the place to work.
It required at least a master's degree to learn but was easy to extend if
you understood the underlying math. Your work could be integrated and used
by the research community. As a "product" (Axiom) it had a very limited 
market with cash-poor clients who could not support Axiom as a commercial 
product. Axiom could never generate sufficient cash flow to cover the cost
of a development team in the commercial, closed source world. And open-source
generates no cash. So Axiom is the best place to do research and the worst
place to make money.

>
>  But at his time, Axiom was a very closed software, and the French
>  communauty was on its own, for documentation, help, contacting gurus,
>  etc... Axiom also had its load of defaults~: a cumbersome system of
>  categories, poor speed of code, compiler and interpreter bizareness,
>  no way to use Unix pipes and redirection etc. Furthermore NAG did not
>  show any clear sign about the future of Axiom. Even more, there was
>  the promising A#/axiomxl/aldor project, with Basicmath, but it was
>  immature, so the choice between Axiom and aldor was unclear.

Scratchpad was "open source" before the term existed. People who asked me
(while I was at IBM) could get a free copy of the source code. Axiom
when it was released followed the standard commercial path of closed
source software. This depends on a staff of people to maintain, which
depends on a good cash flow, and clearly Axiom couldn't generate the
cash flow. So Axiom was cut off from the customers who made it useful
and could never survive in a closed source model.

Scratchpad was ported onto AKCL, a compiled, hand-optimized version of
common lisp specifically developed under contract. I worked closely
with Bill Schelter on several detailed features like second-compile
optimization of function calling, tail recursive optimizations, memory
management, etc. to make Scratchpad perform well. When Axiom became a
commercial product it was ported to run on CCL, a byte-code interpreted
partial common lisp. This solved the portability problem (AKCL was 
very hard to port as it compiles to optimized machine code) but 
basically broke Scratchpad. Function calling and garbage collection
optimizations disappeared. Axiom is now back to running on GCL, the
open-source version of AKCL. Camm, the GCL lead developer, is on the
Axiom maintainer list.

As to contacting gurus we on the scratchpad team were told to "circle
our chairs" until we came up with something other than computer algebra
to work on (they even brought in an industrial psych. to "reprogram" us
which I found to be a very painful experience both professionally and
emotionally). NAG was in a very difficult situation guru-wise as they
lost the help of the guys who wrote it.

Aldor has great promise but people insist on trying to build the world
"from scratch". It may be several years and several failed experiments
before it becomes clear that the "library" approach is flawed. In the
mean time Axiom and Aldor have committed to supporting cross-compiled
compatibility.

As to the other issues like "cumbersome categories", hey, it's now
open-source and I'm open to ways of improving it. Scratchpad/Axiom
evolved to the system it is now because hundreds of people worked on
it and improved it. Someone needs to "unify" the Axiom type tree with
the mathematics in a much more systematic way. This is about a whole
Ph.D-thesis level of effort. The benefits of such thesis work would
be enormous as it would clarify how to correctly build these systems.
Axiom's types grew with knowledge of the theory but without benefit
of the detailed analysis.

>
>  As a consequence many were confused and discouraged, and switched to
>  other computer algebra systems, for instance Magma, which offers a
>  large library and is very fast (although it does not offer the rich
>  mechanism of Axiom for contructing domains and categories).

Now Axiom is back as open source. That is a necessary condition but not
sufficient. We need two things to survive. We need a community and we
need a funding model. 

>
>  Consequently, I think there must be a thinking about the state of
>  Axiom, and clear signs concerning its future, beyond the point of
>  making it publicly available. Will the compiler will be fixed ? Will
>  it be documented ? Will compiled code be faster ? Will researchers in
>  computer algebra be able to incorporate easily their software ? Will
>  they be able to redesign the system of categories ? Will it be
>  possible to link against efficient C code ? etc, etc...

For signs about its future visit savannah.nongnu.org/projects/axiom and
click on the "homepage" link. There are long range plans to unify with
theorem proving (ACL2 or MetaPRL), group theory (GAP and Magnus), 
numerical work (Octave, etc). These are evolving as discussions proceed
and the webpage has not kept pace. In addition there is the CATS (computer
algebra test suite) effort to unify the test cases from the many systems
and put them on a better mathematical footing.

The documentation is in process. Virtually all of Axiom is now written
in a literate programming style and examples of literate programs which
combine a Ph.D thesis (Richard Paul's Robotics work) with a domain
(DHMATRIX) exist in the distribution. More work needs to be done both
on this domain and on recovering the research papers behind the other 
domains. I've contacted several researchers and gotten their permission
to use their research papers and integrate them into the documentation.
This work continues but it is tedious because I need to find the research
and secure the permissions.

In addition I'm rewriting the Axiom book as we speak. The current work
is rebuilding the book but the later steps involve much rewriting
as well as exploiting the power of Active DVI. The online book will
likely be the "next announcement" so documentation is being given a
priority.

Community can only occur if people feel there efforts will bring reward.
In most cases, especially open source, this involves recognition. This
is a particularly thorny problem as computer algebra systems tend to be
the child of mathematicians. Math departments seems to feel that the
reduction to practice of math theory is uninteresting. Until the cross
breeding of the Computer Science and the Mathematics department yields
a "Computational Mathematics" department I suspect the problem will
continue. In the long run, of course, this has to occur as some of the
mathematics can no longer be done without a computer and some of the
mathematics only exists BECAUSE computers exist.

Beyond University issues Axiom needs to build a wider community of
users who are not researchers. This involves reaching out to the teaching
community. It involves finding ways to make Axiom easier to use and reducing
the learning curve. It involves developing a focusing agenda for coordinating
and developing teaching materials for the sciences (see footnote2). The MIT
suggestion is motivated by the question of who is the Axiom community and
how to reach/motivate/support it.

As to the funding issue I believe that this will also be a struggle. I've
been mulling the idea of creating an Axiom company which would be chartered
to work with schools to construct grant requests and administer grants for
researchers. This is an outgrowth of the way Scratchpad worked during the
IBM days. Researchers would come and spend time on site writing new domains,
learning Axiom, and returning back to their schools. Unfortunately I'm not
sufficiently skilled at grant writing to figure out how to make this work.
The Axiom company wouldn't own anything and would only be a paper agency
with a grant number and financial tracking.

An alternative approach is to "side-effect" the grants. That is, encourage
and support researchers who are applying for grants that involve Axiom
(such as classroom development of courses) in their efforts. This is much
harder as the researcher has to decide to make it part of the grant.

Clearly I have no creative new ideas about how to get money. However
if you take the "30 year view" of computer algebra it is clear that
we need to build on the current systems rather than start from scratch.
For one thing there is already 30 years of funding investment in Axiom
which shows just how expensive it can be to develop a "real" system.
For another it is clear that no-one is going to support another 30
years of funding just to achieve the same level as Axiom has reached.

So either we expend a great deal of energy creating small, special purpose
library systems or we contribute to the larger systems like the 3Ms and
Axiom. I would argue that Axiom is better designed to scale to higher
mathematics and also better able to support the amplification of the
teaching and research work because of the "open source" effect (that is,
freely downloadable packages widely available with multiple authors 
as with Linux).

>
>  May be the benefits of the free software will show up, but, after
>  discussion with friends, it will not be enough for switching back to
>  Axiom.

I don't expect people to switch back to Axiom because it is free. I 
hope they will switch back because it is better, both technically and
socially, than the alternatives.

In addition I believe that "Computational Mathematics" will eventually
arrive as a discipline in its own right just as the Computer Science
departments eventually arose. As an undergrad 35 years ago I had to 
convince my math profs to create courses in "computer science" as it
was "just a fad". We need to begin to collect the widespread
research (enshrined in libraries and journals) and use it to document
the algorithms. There needs to be a whole tower of computer algebra
theory that can be taught as a field of research combining work in 
math, computer science, complexity, types, simplification, etc.
There needs to be support work for the sciences that need computer algebra.

Switching to Axiom isn't really the point (pretend I never said that)
but Axiom provides a kernel for the field of developing theory. In 30 years
this will be perfectly obvious. Computer algebra both stimulates fields
of research and provides answers that can't be arrived at by any non-computer
means. 

>
>  Kind regards, and felicitations for the work done. I have been able to
>  download and compile all Axiom, and I am very glad for that.

Anyway, that's my current thinking on the subject.
There is more to come as work on Axiom continues.

Tim Daly
address@hidden
address@hidden

Footnote: My survey of the computer algebra field shows that systems can
be classified in one of three ways.

"Library systems" start out with the realization that math types and
computer types are similar. A C++ (usually but not always) library
gets created. An interpreter is grafted on top of the library. The
focus of these systems is "speed". 

"Engineering systems", like Mathematica, Maple, and Matlab, are systems
that try to get "an answer". They seem to ignore math types and sometimes
specialize in one general purpose programming type (e.g. lists). You can
recognize these systems because operations like subtracting two equal
matricies will yield the zero integer. They are general purpose, easy to
use, and hard to scale (i.e. build on the work of other non-core packages).

"Theory systems" like Axiom or Docon. These systems start with the math
types and build up a language based on them. The programming representations
are flexible. Subtracting two matricies yields the zero matrix. They are
general purpose, hard to learn, but scale very cleanly.


Footnote2: There is a game called Pontifex which simulates bridge building.
It includes a construction set. Bridges are built and simulated loads (such
as trains) are applied to the bridges. Learning occurs. See 
(http://www.bridgebuilder-game.com)

Axiom could be very useful when packaged with games of this type in a
classroom setting. Consider a mechanical engineering course where you
have software that can compute virtual work loads on beam members (which
are basically delta-displacements). You could explain the theory, show
how to compute loads of 2 and 3 dimensional lattices, how to apply them
to bridges, how to predict bridge successes and failures, and use the
game to build the simulated bridges. Game playing and mathematics in the
same course. 

You could do the same in other sciences such as biology. If you look
at the forces involved in protein folding you could create models
using Axiom, define the forces, and compute results. The challenge
would be to create a game that accurately simulates the models. Perhaps 
in chemistry you could model glue-binding forces for various types of 
glues (like post-it notes) and construct things with glue. Game playing 
is a fast growing (and profitable) field. We should bring games into the 
classroom along with the theory.





reply via email to

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