
"José Miguel Vilaça"
I'm trying to change Blobs to become an editor for a language which is not exactly a directed graph. In such system I have the notion of ports in nodes; which node have a previously fixed number of labelled ports and instead of having edges between nodes, it's only allowed having edges connecting ports.
For the picture of Malcolm Wallace "Failure Propagation and Transformation Calculus" in Blobs web page it seems to me that such framework addresses the same situation.
Yes, my FPTC application needs the concept of ports on nodes, in order to pass incoming data from an edge into the correct position of the expression stored at the node. However I haven't implemented it yet - the ordering of incoming/outgoing edges is arbitrary at the moment. My thought is to permit an optional "arity" specification on a node, giving it a definite number of in-ports and out-ports. Such ports might optionally be associated with different "attachment points" in the node shape, if a visual representation of the ports is needed. Every edge must then record, not only its source node and target node, but the port-number within each node (if it has ports). The context menu on an edge will allow these port-numbers to be changed or swapped. Regards, Malcolm