One of the Axiom project goals is to develop a "Computer Algebra Test
Suite" (CATS). Albert Rich has done this with RUBI and integration. That
work is already partially in the test suite and work has been done on the
pattern matching. Large datasets (like Kamke) are always welcome. Some,
such as Schaums were hand-developed. This is tedious.
As Axiom develops more explanations and documentation it would be
useful to execute the formulas directly so there is a local incentive to be
clear about semantics.
In the long term the hope is that we can just grab formulas directly from
their sources (ala literate programming). Your work makes it plain that raw
latex does not carry sufficient semantics. There is a global question of
how to make this work. Unfortunately a general cross-platform solution
is difficult (cite Dewar/Davenport/et al. for OpenMath).
Since Axiom is literate and extracting formulas is trivial it seems that
literate markup is a natural goal. Since Axiom uses abstract algebra
as a scaffold the type tower already has a lot of axiomatic semantics.
The natural join of literate latex and abstract algebra is clearly
semantic markup, aka selatex.
===========
Consideration 10: semantic->inputform translation (weaver? :-) )
>x and not x has no particular meaning, but if x is explicitly
true or false,
>Maxima simplifies it to false. If SEALATEX has a semantics -- are
you
>defining yet another CAS? Or perhaps you should link it 100% to
Axiom's
>semantics, which you presumably know about and can modify.
I am NOT defining another CAS. The goal is a "well-designed hack" using
universally understood latex, a latex package, and a translation program.
The selatex idea is only partially Axiom specific. \INT, for instance, seems
pretty generic. However, if the idea is to read formulas and disambiguate
a=b (boolean) vs a=b (equation) then the markup needs to be grounded
to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
\BOOLEAN(a=b)
\EQ(a=b)
are unambiguous relative to each other in Axiom. I don't know enough
about Maxima to understand how this might translate.
The extracted formulas with the decorated semantics still needs a
semantics->inputform (weaver) pre-processor which could be Maxima
specific. This would lead to debate about what "equality" means, of course.
Axiom has tried to create a first-order "rosetta stone" to translate between
systems (rosetta.pdf [1]) but it is too shallow to consider providing
cross-platform semantics.
=============
Consideration 11: \scope in selatex
>As far as recording stuff in DLMF -- there are presumably scope
issues
>("in this chapter n,m are natural numbers....") and maybe even a
need
>to make value assignments.
>I think you need to model these in SEALATEX too.
(See Consideration 6)
Clearly there are scoping issues. My current thinking is to create a
\scope markup that would manage the environment(s). This is not
a new issue (see "Lisp in Small Pieces" [0])
There seem to be three concerns.
First is the scope name, with something like 'global' as a keyword.
Second is the "closure chain" of other scopes.
Third is the symbol being scoped.
\scope{name}{chain}{symbol}
The weaver program would walk this chain to create the proper
file syntax for system input.
============
Consideration 12: System specific commands \axiom
Along with the formulas it is clear that some system specific
input may be required, such as loading files, clearing workspaces,
etc. Some of these may be done in the weaver program, such as
between formulas. Others may need to be added to the semantics
block. So a markup that provides verbatim quoting per system
might be defined, e.g.
\axiom{)clear all} %clear the workspace
which would simply quote an input line.
==============
Note that so far all that is being suggested is transparent formula
markups which do not impact the presentation, some special tags
(\scope, \axiom,...) and a weaver program, along with the ability to
read the latex and extract named formulas (aka a literate program,
which Axiom already can do).
It ought to be possible (by design) to create a semantic version of
CRC that any system could import, assuming a "sufficiently clever
weaver".
On a more ambitious note, I am trying to find a way to keep the selatex
markup "hidden" in a pdf and use it as the clipboard paste when the
formula is selected. Anyone with a clue, please help.
===============
[0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
(2003)
[1] Wester, Michael J. and Daly, TImothy "Rosetta"