I am once again looking at pages of notes I wrote three years ago attempting to find a way to declaratively diagram concurrent legal processes so as to illuminate the steps available to the parties as the process unfolds. I feel like I have something worth exploring, but to illustrate it I need a diagramming language that allows me to nest nodes inside of one another, and draw edges that originate and terminate at arbitrary depths of nodes. DOT won't let you draw an arrow starting at the edge of a subgraph, and doesn't have any way of nesting actual nodes, for example. Is anyone aware of a text-based graphing language that will let me nest objects and draw edges between arbitrary depths?