digraph G {
    compound=true;
    subgraph cluster1 {
        label="Source codes";
        serverSource [label="server" fillcolor=lightgray style=filled shape=box];
        editorSource [label="editor" fillcolor=lightgray style=filled shape=box];
    }
    subgraph cluster2 {
        label="Documentation system";
        subgraph cluster4 {
            label="documentation source\n(DAI XML format)";
            authSource [fillcolor=lightgray style=filled shape=box     label="authored"];
            genSource  [fillcolor=lightgray style=filled shape=ellipse label="generated"];
        }
        subgraph cluster3 {
            label="Wiki";
            authWiki [fillcolor=lightgray style=filled label="authored" shape=box];
            genWiki  [fillcolor=lightgray style=filled label="generated"];
        }
        subgraph cluster5 {
            label="generated documentation in different formats";
            "phpWiki"    [fillcolor=lightgray style=filled shape=ellipse];
            "HTML 4.01"  [fillcolor=lightgray style=filled shape=ellipse];
            "XHTML 1.1"  [fillcolor=lightgray style=filled shape=ellipse];
            "bbCode"     [fillcolor=lightgray style=filled shape=ellipse];
            "plain text" [fillcolor=lightgray style=filled shape=ellipse];
            editorDocumentation [fillcolor=lightgray style=filled shape=ellipse label="HTML 4.01\nfor editor"];
        }
        subgraph cluster6 {
            label="documentation generation support files";
            subgraph cluster7 {
                label="transformation specifications (XSLT 2.0)";
                xslt2bbCode  [shape=box label="bbCode"];
                xslt2xhtml11 [shape=box label="XHTML 1.1"];
                xslt2html4   [shape=box label="HTML 4.01"];
                xslt2phpWiki [shape=box label="phpWiki"];
                xslt2editor  [shape=box label="editor\n(TODO)"];
                xslt2ascii   [shape=box label="plain text\n(TODO)"];
            }
            daiDtd [shape=box label="DTD"];
        }

        "validation"    [shape=diamond fontsize=12];
        xslt            [shape=diamond fontsize=12 label="XSLT 2.0"];
        editorBuild     [shape=diamond fontsize=12 label="Editor\nBuild"];
        editor          [shape=ellipse label="Editor Jar\n(Includes Help)"];
        "wiki\nupdater" [shape=diamond fontsize=12 label="Wiki\nupdater\n(TODO)"];
        genTools   [shape=diamond fontsize=12 label="some\ntools"];


        serverSource -> genTools;
        editorSource -> genTools;
        genTools -> genSource;

        "phpWiki" -> "wiki\nupdater" -> genWiki;
        authSource -> "validation" [ltail=cluster4];
        daiDtd -> validation;
        validation -> xslt;
        xslt2editor -> xslt [ltail=cluster7];
        xslt -> "phpWiki";
        xslt -> "HTML 4.01";
        xslt -> "XHTML 1.1";
        xslt -> "bbCode";
        xslt -> "plain text";
        xslt -> editorDocumentation;
        authSource -> authWiki [style=dashed dir=back];
        editorDocumentation -> editorBuild;
        editorBuild -> editor;
    }
}
