axiom-mail
[Top][All Lists]
Advanced

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

[Axiom-mail] Axiom Journal


From: root
Subject: [Axiom-mail] Axiom Journal
Date: Wed, 27 Nov 2002 23:14:51 -0500

> Emil Volcheck wrote:

> I'm glad to hear of progress towards getting Axiom
> open-sourced.  Please post updates regularly to the
> OSCAS list.

I'll mention it at major milestones but the point of this list isn't
really to advertise Axiom so I'm not sure how regularly I'll post
progress here. Alpha development is being done on a non-public website
that developers can reach so there isn't much to say yet anyway. I'll
announce the arrival of source at the website when it happens.

> 
> Let me respond to some of your comments and questions.
> 
> On Wed, 2002-11-27 at 17:57, root wrote:
> > All,
> >
> > Axiom is in the process of becoming open sourced.
> > With luck we expect to have at least the interpreter and algebra
> > portions available by year end. More info exists at:
> > http://savannah.nongnu.org/projects/axiom
> >
> > I believe that we need to push the development of Axiom with a 30 year
> > goal in mind. That is, we need to make sure that we have a quality
> > system that can be used, maintained and enhanced by the next
> > generation 30 years from now.
> >
> 
> A 30-year goal is ambitious.  Does this change how you approach
> the development of the system?

Well, to answer this question I really have to digress into a
bit of speculation about what I think is happening and will happen.
So none of this is anything but religious noise at the moment.
That said, I am motivated by a couple beliefs.

First, I don't believe the funding and manpower will be available
to support another large-scale computer algebra effort such as
we've seen over the last 30 years. Mathematica, Maple, Macsyma,
Axiom and other systems were innovative when they were proposed.
Now that these systems exist it is hard to claim that building
yet-another-polynomial-manipulation-system is research and should
be funded. Of course, that isn't the idea proposed but in order to
do the proposed research from scratch SOMEBODY has to write all
the low level details again. It would be better to start work
using an existing platform. Especially on a platform that you
have permission to modify any way you please.

Axiom has shown its real strength when supporting research work.
Now that it is open source it will be available for modification.

The problem is that it requires a good deal of knowledge just
to build the system at the moment. Knowledge that needs to be
written down in some way that will change as the system is changed.
And it requires a good deal of mathematical knowledge to modify
the mathematics. This knowledge is hidden in research papers and
libraries. 

Which brings me to my second fundamental movitating point.  We need to
fully integrate the research work and the code.  I say this because I
believe that the system, actually all of the current systems, have
reached a natural limit for the given style of development. The
systems are both too broad and not nearly broad enough. 

They are "too broad" in that it is very difficult to be an expert user
of any of these systems in all of the areas they cover. In order to
use portions of these systems you need to understand the theory
supporting them.

They are "not broad enough" because there are many, many areas of
math that need to be encoded. They need a strong theoretical background
so we can know what answers we SHOULD expect. They need proven
algorithms so we can trust the results. In short, they need more
research done and added to them.

But I believe that the limitations of the "code only" approach 
make it ever more difficult to expand the system without error.
I believe we need to bring the research out of Mathematics
and the code out of Computer Science and pair them into the
Computational Mathematics framework in a more formal way.

So, to answer your question, I'm trying to architect the system
so that it fully understands, uses and support literate programming.
I believe we need to foster Computational Mathematics as a separate
science with its own standards of, among other things, publications.

Changes to Axiom are now done in the documentation. These changes
are compiled directly into the code. Documentation is automatically
split up into various parts including code, test cases, etc.

Pamphlet files are the primitive layer and they focus on one
pile of code. Booklet files will consist of cross-sections of
pamphlet files allowing "across the system" (e.g. all matrix 
functions) and "down into the system" (e.g. deep discussion of
integration). Booklets are intended to make teaching easier
and provide better support for teachers.

At the algebra level the implication is that the documentation
contains the theory as well as the code. Or at least that is the 
goal.


> >From my perspective, it seems far more likely for a computer
> algebra _language_ to endure 30 years than for a specific
> computer algebra system.  I would advocate channeling efforts
> into developing Aldor as a good language for writing computer
> algebra software.  Axiom then could offer itself as one system that
> runs Aldor code.  Axiom would best thrive as an open source
> project if other proprietary computer algebra systems could
> use Aldor code as well.

The Axiom language (Aldor language, Spad language, whatever)
is well thought out and carefully designed. The Aldor vs Axiom
debate is pointless. Whether you find stand-alone compiled
code (Aldor) or compiled-environment code (Axiom) depends on
what your needs are. The languages, modulo some platform issues,
are essentially the same. Axiom contains much more code than
the current Aldor libraries. Aldor libraries have facilities
(like parallel code) which are not (yet) in Axiom. (Axiom's
underlying lisp DOES support the same facilities. It needs
to be "raised up" into the code and will be, given time).

I hope to see 100% compatibility between Axiom and Aldor for
non-platform related code. Currently I/O is the main issue
and I suppose we need to modify Axiom to support Aldor's model
and/or write an Axiom I/O support library for Aldor. It can
be done and, given the time, will almost certainly come to pass.

Aldor is never going to be user-affectionate enough for new
users in a teaching environment. The Axiom interpreted version
has the potential to have many different teaching front-ends
that make it a better teaching vehicle. Axiom is never going
to be as efficient as Aldor. 

The Axiom algorithms were written by experts in their fields
and, as mentioned above, I don't think we'll be able to bring
together that much expertise again. "Lifting them" into Aldor
can probably be done but the research areas have improved and
it would be better to spend the time updating the algorithms
(in a literate way, of course).

I'd love to see Mathematica and Maple run Aldor code. It is
not clear how they will deal with Type towers which are an
essential feature of Aldor's world view but there are very
clever people in this field and I hope the idea gets the 
support it needs to make such a thing possible.

> > Axiom, as you know, has a vast amount of algebra encoded.
> > Unfortunately the documentation for the algorithms exists as thesis
> > work and conference papers which are enshrined in research libraries.
> > Most people do not have access to these papers. So, unlike other
> > open source projects, you cannot simply tell people to "read the code".
> 
> Papers can be posted on the web.  Once Axiom becomes fully open
> source, people can read the code.  I'm not sure I follow you.

Yes, papers can be posted on the web. That's hardly the same thing
as a structured document that includes source code and test cases.
The web documents won't contain cross-references to other pamphlets.
The web documents are unlikely to be reviewed to the standards that
a paper submitted to an Axiom Journal would be (that is, the code
is checked for conforming to the theory, the code is run and tested,
the code is checked for conformance to standards, the pamphlet 
contains proper cross-references, etc). 

Without the underlying assumption of Axiom and/or Aldor it hardly
makes sense to include anything but pseudo-code which cannot be run.
The effort to create runnable, journal-quality code is much, much
harder than writing pseudo-code.

Furthermore, the code can be improved by interacting with the
reviewers before publication.

> >
> > In order to address this problem Axiom is pushing hard in the
> > direction of completely developing the system using literate
> > programming. On the algebra front this means that we need to
> > do two things.
> 
> I'm all for this.  I like noweb.  But is this "pamphlet" format
> compatible with noweb?  Why not just use noweb?  Noweb can be
> used with Aldor.

Pamphlet files ARE noweb files. At least at the moment. The goal
is to add structure to the document format so that the system can
decompose the files into useful parts. Thus, using multiple "roots"
in a noweb file you can include several code packages, test cases
and examples in one Pamphlet. Or have a group of Pamphlets that
cross-reference each other to develop portions of the theory.
Thus a researcher can submit multiple papers over time which
reference and use his prior work automatically.

> 
> >....
> > Second, we need to encourage people to consider combining algorithms
> > with the theory in future technical papers. Currently one gets credit
> > for developing the theory but not the algorithm. I believe this needs
> > to change. Papers need to include the algorithm so reviewers and
> 
> Why do you think there is no credit for developing an algorithm?
> I believe people do get credit for developing algorithms.
> Think of the Journal of Symbolic Computation and the Proceedings of
> any ISSAC conference.  Most papers in these publications
> do include algorithms.

The "lack of credit" comes from discussions during an open-source
conference in May of 2002. Professors under the gun to generate
papers for a tenure track position have a good incentive to skip
the reduction-to-practice step in favor of pushing the research
papers further. ISSAC conference proceedings rarely contain 
executable code and, if they do, it is only code fragments.
Full listings are hard to come by. I know of none that have been
published in Axiom's language (though that could just be my oversight).
And even where I've seen code it hardly is "production quality",
ready-to-run software.

> 
> > readers can easily reproduce the results and use the implementation.
> 
> I agree that many journals may not include the source code or
> implementation of an algorithm.  Perhaps TOMS is an exception.
> The JSC contemplated an initiative some years ago to allow authors
> to submit source code that would be tested at a basic level by
> the Journal to make sure it compiles and works on the examples
> provided by the author.  Is this the sort of thing you have in mind?

Actually, as you can see above, I have much more ambitious goals than
just running "make" and "make test" over submitted code. There is a
large conceptual gap, usually only crossed by the researcher in
isolation and never written down, between the theory and the code.
Currently there is no vehicle to capture this crucial transition.
Literate programming can offer that vehicle. Time will tell if it
gets used.

Furthermore, Axiom Journal articles can assume a particular 
environment. Axiom algorithms tend to be very short, sometimes
even "1-liners", because the Axiom language allows you (with
careful thought) to get fairly close to the mathematics. If you 
are able to assume existing facilities for, say groebner basis 
computations, you can write very concise algorithms that work
in a very general setting.

Thus, an article may contain a complete code implementation 
that takes up less than a page of text. This is unlike other
environments where code listings in C can go on for dozens
of pages, especially if you want fully runnable code.

> > Physics and Chemistry require results to be reproduced; why not
> > Computational Mathematics? Why can't we just "drag and drop" a
> > technical paper onto a running system and have it work?
> 
> This does happen to a limited extent in computational mathematics
> when one author proposes a new algorithm for a problem and
> implements an older algorithm to demonstrate the improvement.
> I think that more such comparative analysis or efforts to
> reproduce results need to happen in the computer algebra
> community.
> 
> Literate programming does provide a means to convert a paper
> into source code, e.g., "notangle".  That's almost drag and drop.

Notangle isn't even close to "drag and drop" in the sense I'm using.
Notangle will extract the code (or one of the code roots, anyway).
However you still have to look at the references to other pamphlets 
that are cited and extract their code. You have to compile the code. 
You have to extract test cases (well, one SHOULD, but...). You
have to extract examples. You have to update online documentation.
Heck, if we get lucky, we might even have to run the proof,
validate the result and add the proven theorems to the existing
list of known results.

There is much to be done to fully integrate new algebra but all
of it can be automated. Ten years from now this should be expected
behavior. 

> 
> >
> > In order to take the second step we need to foster a forum for
> > publication of literate programs in Computational Mathematics.
> > I'm proposing creating an "Axiom Journal" which uses these
> > Pamphlet files as the submission format (basically, TeX with
> > trivial extensions).
> >
> > What is your opinion of creating such a Journal?
> 
> Why create a new journal when you could submit to an existing
> journal?  Or if you need a less formal venue, how about a formally
> reviewed paper in the SIGSAM Bulletin?  Write your code with noweb,
> do "noweave" and submit.  I don't see a problem.  I'm sure the
> JSC and Bulletin would be receptive to such submissions.  The JSC
> does have a category of submissions that are for implementation
> papers.  I know SIGSAM would be happy to post noweb source for
> Bulletin articles.

Submitting the noweave'd code misses the whole point. You really want
the end user to run noweave, whether that end user is the Journal
typesetters or the Axiom end user. You submit the noweb pamphlet
file. The noweave output is just dead TeX code. It isn't executable
unless you sit and type it into the system. That's a method of last
resort for someone who can only find the paper copy in a
library. People who receive the "Axiom Journal" would get the noweb
pamphlet file electronically, not as a paper copy. They can add it
directly to their system.  In fact, paper is irrelevant. The Axiom
Journal would be all electronic.  Worst case, it arrives on a CD in 
the mail.

> Starting a new "Axiom Journal" might tend to separate you from
> the larger community of researchers in computer algebra, which
> could hide the advantages of literate programming and Aldor
> rather than publicize them.

True. There is a Mathematica Journal, I'm told, but I've never seen
it. Maple also has one, I'm told, though I've never seen it either.
So why not Axiom?

The advantage of submitting pamphlet files to an online Axiom 
Journal would be that, except for reviewing time, you can publish
quickly. And your code could be spread quickly. Paper Journals
can take months to publish an article and ISSAC comes but once
a year.

Existing Journals would probably not accept and distribute pamphlet
files; certainly not as the "default" format.  Pamphlet files are
assumed to be open source (almost by definition) so they do threaten
the "copyright" of existing Journals. But this whole issue has been
brought up elsewhere and I don't want to discuss legal issues. I want
to explore new concepts that will get us thru the next 30 years.

>From your questions I can see that I wasn't as clear as I intended
to be. Mea Culpa.

Tim







reply via email to

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