Graphs are specified in the Dot language. (see this article for a short introduction and some examples). The web-application only supports a subset of the Dot language.
In brief:
A graph is specified as a list of node statements and edge statements.
The following example has three node statements (a, b ,c) and three edge statements (a->b,a->c,b->c).
The graph is a directed graph (digraph) and is named "example".
digraph example {
    a;
    b;
    c;
    a -> b;
    a -> c;
    b -> c;
 }
 
Node names should be unique.
Nodes and edges can have attributes between square brackets. Nodes can have a color attribute and edges can have a label attribute.
digraph example {
    a [color=red, style=filled];
    b [color=green, style=filled];
    c;
    a -> b [label=one, weight=3];
    a -> c [style=dotted, weight=4];
    b -> c [label=two, style=dotted, weight=12];
 }
Colored nodes should have an extra attribute [style=filled], otherwise only the border is colored. Edges can also be drawn in a dotted style. Edges can have color too. The edge weight attribute is used to calculate the optimal clusterings. It should be a positive integer or float. Color names should be valid CSS color names.