[comp.lang.prolog] Topological Structures

patch@hpldola.HP.COM (Pat Chkoreff) (09/15/89)

Fellow People:


I am interested in a problem which I classify as "the constructive,
algebraic representation of finite, dynamic topological structures".  I have
made quite a bit of progress on my own, but I find that I do not have the
mathematical or even philosophical concepts needed to proceed further.  It's
over my head.  I would be grateful for references on this subject.

Here's some background on my problem.  Lately, I have been working with
finite topological structures such as:

    - directed acyclic graphs

    - generalized graphs

    - partitioned sets

These are the key concepts for a Prolog program that I'm writing.  I have
devised representations for these objects as pure Prolog term structures, or
algebraic normal forms.  These representations are independent of any
human-assigned names for nodes, elements, or partitions:  the true names are
natural numbers, which can be systematically assigned by the machine.  Thus,
I hope to express all _essential_ processing of these objects using pure
first-order Horn clause logic, that is, without any use of `cuts', negation
by failure, built-in arithmetic and I/O, or all-solutions predicates such as
`findall'.  I hope to restrict the use of these so-called `impure'
constructs to the `periphery' of the program, i.e., the interfaces.

Of course, there are an infinite number of possible representation schemes.
I have been through an arduous process of devising a scheme to suit my
criteria, discovering the limitations of the scheme, strengthening my
criteria accordingly, and repeating the process.  I have iterated to a
"fixed point" solution, because I can think of no new criteria.

My solution is fine for representing individual static objects.  However,
I'm thinking of the future, when I might want to model "state changes" on
these objects.  For example, I might want to delete a node from a graph,
producing a new graph without that node.  Or I might want to change the
partition to which an element of a partitioned set belongs.  I fear that my
static representation scheme will not satisfy these new criteria.

Again, I would be grateful for references on this subject.  I'm all ears.


Patrick Chkoreff   719-590-5983
{hpfcla,hplabs}!hpldola!patch