Tip: Removing a Junctor

Tip: Removing a Junctor

A user wrote and asked:

I’m evaluating Flying Logic Pro on a Mac. I found that an edge with a negate or complement operator in it can’t easily have the operator removed. Selecting the operator and hitting Delete removes the operator and the edges connected to it. It should just remove the operator and unify the input and output edges. This should happen for any operator with one input edge and one output edge. I also think it should happen when an entity with one input and one output is deleted.

Part of the problem here is that when an edge is deleted, large-scale rearrangement may occur on the graph, making the previous state obscure to the user. I expect that it would be common to remove unary operators and want the connection to remain.

The situation described is like this:

flying-logic-ng001.png

If the junctor or either of the two edges is selected and then deleted, the two entities will end up unconnected. This is because edges must always be connected at both ends, and junctors must always have at least one incoming edge and one outgoing edge.

It turns out there is a very easy way to remove the junctor and keep the entities connected. To do this, we use the “redirect” gesture, which is used to redirect the head or tail of an edge to a different entity or junctor. Redirect is initiated by clicking and dragging right at the end of an edge, and is signified by a special arrow with a circular head.

flying-logic-ng002.png

By redirecting the head of the arrow before the junctor to the entity after the junctor…

flying-logic-ng003.png

The junctor and the second arrow are removed, while the redirected arrow remains.

flying-logic-ng005.png

You could just as easily redirect the tail of the second edge to the leftmost entity. Since edges can have different annotations or weights, this method gives you choice over which edge will remain after the junctor is removed.