Graphviz notation

The graphviz.notation vocabulary provides words for building graphs in a way that looks similar to the DOT language (see

The graphviz vocabulary alone already follows the general structure of the DOT language: graphs and subgraphs consist of an ordered sequence of statements; each statement will add either a node, an edge, or some attribute declaration (graph-attributes, node-attributes, edge-attributes); and attributes may be set on individual nodes and edges. Even some DOT niceties are already supported, like being able to have an edge between anonymous subgraphs. For instance, compare
<digraph> { 1 2 3 } { 4 5 6 } add-edge

with the DOT code
digraph { { 1 2 3 } -> { 4 5 6 } }

However, there are some rough points that this vocabulary addresses:
Notation for setting Graphviz attributes
Aliases that resemble DOT code