[Inquiry] Theme One Program
Jon Awbrey
jawbrey at oakland.edu
Sun Mar 16 09:24:38 CST 2003
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
TOP. Expository Note 1
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
Theme One Program Exposition
Jon Awbrey, Spring 2003
1. Invitation
Theme One is a program for building and transforming a particular species
of graph-theoretical data structures in memory, structures that have been
designed to support a variety of fundamental learning and reasoning tasks.
The program was developed as a part of an exploration into the
implementation and integration of different types of learning
and reasoning procedures, concerned especially with the types
of algorithms and data structures that might work in support
of inquiry. In its current state, Theme One integrates over
a common data structure fundamental algorithms for one type
of inductive learning and one type of deductive reasoning.
The first order of business is to describe the general class of
graph-theoretical data structures that are used by the program,
as they are determined in their local and their global aspects.
It will be the usual practice to shift around and to view these
graphs at many different levels of detail, from their abstract
definition to their concrete implementation, and many points
in between.
The main work of the Theme One program is achieved by building and
transforming a single species of graph-theoretical data structures.
In their abstract form these structures are most closely related to
the graphs that are called "cacti" and "conifers" in graph theory,
and so I will generally refer to them under those names.
The graph-theoretical data structures used by the program are
built up from a basic data structure called an "idea-form flag".
This structure is defined as a pair of Pascal data types by means
of the following specifications:
type idea = ^form;
form = record
sign: char;
as, up, on, by: idea;
code: numb
end;
An 'idea' is a pointer to a 'form'.
A 'form' is a record consisting of:
1. A 'sign' of type char;
2. Four pointers, 'as', 'up', 'on', 'by', of type idea;
3. A 'code' of type numb, that is, an integer in [0, max integer].
Represented in terms of 'digraphs', or directed graphs,
the combination of an 'idea' pointer and a 'form' record
is most easily pictured as an 'arc', or a directed edge,
leading to a 'node' that is labeled with the other data,
in this case, a letter and a number.
At the roughest but quickest level of detail,
an 'idea' of a 'form' can be drawn like this:
o a 1
^
|
@
When it is necessary to fill in more detail,
the following schematic pattern can be used:
^ ^ ^
as\|up on|
o-----o by
| a 1 |--->
o-----o
^
|
@
The idea-form type definition determines the local structure of
the whole host of graphs that are used by the Theme One program,
including a motley array of ephemeral buffers, temporary scratch
lists, and other graph-theoretical data structures that are used
for their transient utilities at specific points in the program.
I will put off discussing these more incidental graph structures
until the points where they actually arise, focusing here on the
particular varieties and the specific variants of cactoid graphs
that constitute the main formal media of the program's operation.
Jon Awbrey
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
More information about the Inquiry
mailing list