[om] Newbie questions on the meaning of the Attribution Element

Richard Fateman fateman at cs.berkeley.edu
Mon Jan 13 00:47:21 CET 2003

Thanks to Steve for clarifying.  But I am still not a
believer.  In fact, Macsyma, a computer algebra system,
has attribute fields in every non-atomic tree.  that is,
in lisp notation a+b*c becomes...
(plus  a (times b c))
but with attribute fields..

((plus attributes...)    a  ((times attributes ...)  b c).

the only things that every were useful turned out to be
(a) rational form,
(b) simplified
(c) factored.

That is,

((plus simp) a ((times simp) b c))  is simplified, and so the
subtree ((times simp) b c).

This is the result of simplification.
Most attributes, including the ones Steve mentioned below
are destroyed by any operation.   e.g. if 42 took 5 million years to 
compute,and is a copyrighted number, and has factors 2 3 7
then if you add 1 to it and get 43, do you change the attributes?
Probably you should wipe them out.

The lesson from Macsyma was that the attributes either had
to be recomputed, or preserved with great care, or possibly
thrown out, any time the object was operated upon.  If
the object is merely stored in a database and referred to
from time to time, and the attributes could be anything,
then operations must generally wipe them out, because
the programs would not know how to propagate them.

If the attributes could plausibly be only members of a set,
then there could be optional slots in an OM object for each
of the attributes, and the operators would have a chance
of preserving some of them.

sal at dcs.st-and.ac.uk wrote:
> I think Richard misses many uses of attribution:
> 1. to include reproducible, but perhaps expensive to 
> compute information derived from the object. Eg the size of a group given by 
> generating permutations, or a factorization of a polynomial or a proof of 
> primality of a number or....
> So one would read this as: "the object is XXXX but you may also like to know 
> some things about it"

It is unlikely that a program could make use of anything not anticipated .

> Type information falls into this category.

Then a calculus of types must be included to use OM, else you will
lose this information.

> 2. to include history, copyright, origin and other non-mathematical 
> information: "the object is XXXX and was constructed by Steve Linton on Jan 
> 12th 2003, using data from this and that source...." or "the answer is 42 [object] 
> and it took 5 million years to compute at a cost to your grid account of 
> $XXXXX [ annotations]"

> 3. for non-mathematical control information. One option for a designer of an 
> OM service is to accept objects annotated with a description of what the user 
> wants done to them. There are other options. but this is one.

Thus attributes are required?

> 4. To qualify an object. "the value is 1.00000 with a systematic error of +- 
> 0.01 and a statistical error of +- 0.03". Or "the answer is 42, but I computed 
> it using a Monte Carlo algorithm with error probability 10^-9"

Now try to multiply that by 10 and fix the attribute..

> Annotation symbols need to be agreed between producers and consumers, just 
> like any other symbols, but those who do not understand them may ignore them 
> and retain the core meaning.

As a programmer, it seems to me that I would be hard pressed to
understand what the core meaning might be, for sure. The phrasebook
form my program would help, but that too might be mysterious.
   The attribute
"maple-version"    .... provides a much more specific core meaning for
anything that can be represented in Maple, but it fails if Maple
can't represent it.  Certainly a possibility in general, but not
a possibility between Maple-front-end and Maple-back-end.

> 	Steve

While all of Steve's examples are possibly useful in a static database
of (say) values of fundamental physical constants, I don't see them
being propagated by any programs except at great cost. Anyway, that
has been the Macsyma experience.

(The SIMP flag, by the way, was essentially another way of doing
Maple's hashcoding of simplified expressions, though Maple's 
implementation has a number of other implications that pay off for
large expressions.)


om at openmath.org  -  general discussion on OpenMath
Post public announcements to om-announce at openmath.org
Automatic list maintenance software at majordomo at openmath.org
Mail om-owner at openmath.org for assistance with any problems

More information about the Om mailing list