## Monday, November 21, 2011

### Computer graph system

My next programming project is to construct an effective computer graph system. Here are some examples of graphs this system might implement:
• Dataflow graphs which model computation using arrows between components.
• Molecular graphs which model physical structures in terms of chemical elements.
• Categories which model many abstract structures.
This system will be based upon nodes which contain links to one another. For example, Lisp cons cells are one type of node that have a unique next link. This sort of cell is powerful enough to effectively model all data structures, which is a fact most Lispers are familiar with.

Functions are one type of node with an $I \to O$ interface which generates some new output value for any input value. The implementation of the node can be freely modified so long as its interface remains in tact.

Morphisms are functions which contain another arrow $X \to Y$ representing a source set and a target set for the function. From there more complicated metadata can be used to describe functions, such as commutativity, associativity, invertibility, etc.