axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] RE: XML


From: William Sit
Subject: Re: [Axiom-developer] RE: XML
Date: Wed, 15 Jun 2005 03:54:47 -0400


"Page, Bill" wrote:
> 
> On Tuesday, June 14, 2005 11:52 PM Tim Daly wrote:
> 
> > > > \spadcommand{x:=2}\bound{x}
> > > > \spadcommand{y:=3}\bound{y}
> > > > \spadcommand{x*y}\free{x}\free{y}
> > > >
> > > > clicking on the third expression tells the browser that it needs to
> > > > find a meaning for x and a meaning for y somewhere prior in the page.
> > > > these are determined by the \bound expression.
> > >
> > > Can you give an example?
> >
> > cd mnt/linux/doc/hypertex/pages
> > fgrep free *
> 
> Yes, I see it everywhere. But what does it do?
> 
> You said: "clicking on the third expression tells the browser that
> it needs to find a meaning for x and a meaning for y somewhere prior
> in the page."
> 
> What do you mean by "find a meaning for x"? Do you mean that when
> you click on some expression (presumably intending that Axiom execute
> this expression), that the browser actually builds some kind of
> dependency tree and then executes (i.e. passes commands to Axiom)
> the minimum number of commands needed to compute this expression?
> This would be a form of lazy evaluation.

This is exactly what the Axiom browser can do. In hyperdoc, if you click on an
example, you can click on any of the command lines even though the command
depends on earlier commands. It then opens a new frame in Axiom (that is, a
totally new and independent session) to perform the computation, making sure to
resolve all the referenced variables (I think on the same page) before
completing the clicked command. This technology is one that I find extremely
clever and so far, I have not seen the like of it (in Mathematica FrontEnd or
Maple). 

One way to appreciate this would be to try to imitate that in MathAction pages.
The advantage would be that no Axiom calls are made until the user initiates it
(this would allow some test code that are computationally intensive without
affecting user interactions like minor editing), but the user can initiate it at
any command, rather than click through from beginning to end one by one (which
presents the problem of missing one and causing subsequent problems). Also, by
starting a new frame, a user can immediately modify the command to "play" with
it, or insert any other commands.

> If this is the case, then Axiom's browser is doing a lot more than
> just browsing. This is more or less the problem to which I was
> referring when I asked in a previous email what we could do about
> a set of related pages in which one page contained Axiom calculations
> that depended calculations contained on one another page. In that
> case I can see how this "free" and "bound" thing might be used.

These declaration is how hyperdoc knows which commands on the example page need
to be fed to the new Axiom frame.
 
> Does the Axiom browser only look for bound variables occurring
> earlier on the same page?

I'll let Tim answer this one. (I believe so).

One more comment on this Axiom browser discussion: 
I think the most urgent task is not to reimplement hyperdoc, but to make sure
that it still works as it was (say in the NAG version). (see new Issue #168).

William




reply via email to

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