axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Senior Software Engineering Project


From: daly
Subject: [Axiom-developer] Senior Software Engineering Project
Date: Tue, 17 Jun 2008 23:26:25 -0500

Dr Judith Stafford,

This is a proposal for your Senior Software Engineering Project effort.

Name of sponsoring organization: Axiom
Address of sponsoring organization: address@hidden
Technical Liason:
  Tim Daly
  914-886-8120
  address@hidden

Project title: The Crystal 

Project Constraints:

This is a design project that requires innovative ideas on the future
of a new computer algebra software interface. 

The problem is to generate design ideas that will be "state of the art"
in 30 years. 

It is a requirement that the project be done using literate programming.
Documentation of ideas is THE fundamental requirement.

It is a requirement that it can prototyped in a standard browser using
javascript and AJAX. The code need not be complete and need only
illustrate each basic idea. 



Possible Textbook: 

Terry Winograd "Bringing Design to Software" 1996
                   ACM Press ISBN 0-201-85491-0 



The Project Description:

You can assume a "petamachine". That is, a machine with a petabyte of
disk space, a terabyte of memory, a terahertz cpu, and a terabyte of
network bandwidth. The petamachine has thousands of processors that
can be dynamically allocated to do things like scan the entire web for
any possible reference or chase a chain of connections. Each new
factoid found is automatically "pushed" into the local knowledge
network. The petamachine acts without instructions from the user
and dynamically updates everything in the knowledge net continuously.

In addition, you can assume that the petamachine is tracking the
user's "intentional stance", that is, what the user appears to be
trying to accomplish at the time. Thus, if the user is working on a
paper about integration and a new paper appears on the web with some
related information then the user can be notified.

The problem space is that of a researcher in computer algebra. The
"problem" itself can be viewed as a large "knot" (e.g. a knowledge
representation network) "hanging" in space. Now wrap a "crystal"
around the knot. The question is "what can this crystal do to make
the researcher's job easier"? You need to think about ways to reduce
the "information load", ways to simplify facet creation, ways to 
automate presentation, structuring, and content presentation.

Each facet of the crystal represents a different view of the
information.  Every facet has an up-to-date view (thus, a
model-view-controller kind of mechanism is likely but other ideas are
welcome). For instance, one facet could contain the source code, a
second could contain the bibliographic references, a third could
contain graphic representations of the problem, etc.

Facets are able to be created dynamically and new code to implement
the facet behavior can be dynamically added and changed.

Facets are recursive. Thus a single facet can represent the face of
several crystals. Picture a big crystal with a smaller crystal inside
where the smaller crystal has one facet "glued to" (shared with) the
larger crystal. The smaller crystal can have smaller crystals within.
Each encapsulates some interesting piece of the knowledge net which
is completely user specific. Strict containment is not required since
crystals of very different content can share a facet.

For navigation purposes the crystal may need to be "flattened". 
Consider the use of the javascript information visualization toolkit
<http://blog.thejit.org/javascript-information-visualization-toolkit-jit>

Consider what might happen when writing a story using crystals.
The author might have a knowledge network that describes all the known
history of computer programming. The article under construction might
be about the "genealogy" of a software product told thru stories about
the people involved from its history. Suppose the people involved are
Alice, Bob, and Charlie. 

The author can construct a crystal around each person which describes
all the known information about that person which is available anywhere
on the net (and 30 years from now that will be a lot). The author uses
this information to construct various facets about the person such as
their work history. One of the facets will be a paragraph "for the 
article" which describes the contribution by each person. Thus, there
would be a facet around Alice that describes her work history on one
facet and the author's description of her contribution to the project
on another facet.

Eventually the author ends up with a set of crystals, one for Alice,
Bob, and Charlie that can be chained together, with the "description
of their project contributions" facets exposed. Thus, a web "article"
would now be a string-of-pearls-like set of these crystals.  This
would look like and read like an ordinary web page. However, each
paragraph is a facet of a separate crystal that can be rotated to view
many different pieces of information, such as Alice's work history,
current contacts, hobbies, etc.

This will eventually be applied in the context of the Axiom computer
algebra system. A technical article which describes a particular 
subject, such as the integration facility in Axiom, would look like
an ordinary technical paper. However, the "paragraph" crystal facets
can be rotated to show the code, show equations, show graphs, show
branch points, show references, show examples, show help, show related
topics, or any other information that is relevant. Notice that these
crystals are "live" objects so manipulation the equations changes the
graph and manipulating the graph changes the equations, since they both
are connected to the underlying knowledge network.

The essence of the work product is ideas. What will be state of the
art in the user interface in 30 years? We assume a crystal-like
structure wrapped around a knowledge-representation network which
lives in and selectively extracts from "the river of the internet"
on an unlimited petamachine. What is the "wild but possible" ideas
that will define this new interface?

As shown above, one possible way to present the crystal ideas is
to relate a story about how they might be used with some illustration
of the idea in a small prototype.

While seemingly "blue sky" this project is based on history. Axiom
originally had a "hyperdoc" help browser written in the late 80s
which anticipated current browsers. You could create new pages with
a markup language, embed live graphics, dynamically change pages,
create separate windows, dynamically query server information to
display pages, etc. All of this is now "standard browser technology"
but it was new and innovative at the time.

What can you create now that will be "new and innovative" but will
be "standard technology" 30 years from now?




Project Deliverable: 

A single literate document containing the ideas and the prototype code.



Footnote: Axiom is a free and open source computer algebra project.
Visit <http://axiom.axiom-developer.org>




reply via email to

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