digraph { // rankdir=LR center=1 // ordering=out // sources rank=same {app1 app2 app3} app1 [label="Some cool language application"] app2 [label="Mozilla Firefox"] app3 [label="OpenOffice.org"] // dist rank=same {deb} deb [shape="circle", label="Debian"] // shared derivations // rank=same {deb_edu deb_med deb_ezgo deb_blankon ub} rank=same {deb_edu deb_ezgo ub} deb_edu [label="Debian-edu"] // deb_med [label="Debian-med"] deb_ezgo [label="Debian-EzGO"] // deb_blankon [label="Debian-blankon\n(graphics + menu structure"] ub [shape="circle", label="Ubuntu"] // distro-specific customizations // rank=same {skolelinux_config ezgo_graphics ezgo_locale ezgo_struct blankon_hw blankon_doc blankon_graphics} rank=same {ezgo_graphics ezgo_locale ezgo_struct} skolelinux_cfg [label="configuration", style="invis"] ezgo_graphics [label="graphics", style="invis"] ezgo_locale [label="translation", style="invis"] ezgo_struct [label="menu structure", style="invis"] ezgo_content [label="open content"] /* blankon_hw [label="hardware support", style="invis"] blankon_doc [label="documentation", style="invis"] blankon_graphics [label="graphics", style="invis"] blankon_locale [label="translation", style="invis"] blankon_struct [label="menu structure", style="invis"] */ // derivatives of blends/derivatives // rank=same {skolelinux ezgo blankon emate} rank=same {skolelinux ezgo emate} // blankon [shape="circle", label="BlankOn"] skolelinux [shape="circle", label="Skolelinux"] ezgo [shape="circle", label="EZGo"] emate [shape="circle", label="E-mate"] // chains app1 -> deb [dir="both"] app2 -> deb [dir="both"] app3 -> deb [dir="both"] deb -> deb_edu [dir="both", style="bold"] // deb -> deb_med [dir="both", style="bold"] deb -> deb_ezgo [dir="both", style="bold"] // deb -> deb_blankon [dir="both", style="bold"] deb -> ub skolelinux_cfg -> skolelinux [style="invis"] deb_edu -> skolelinux ezgo_content -> skolelinux ub -> ezgo_graphics [style="invis"] ub -> ezgo [style="invis"] deb_edu -> ezgo deb_ezgo -> ezgo ezgo_graphics -> ezgo [style="invis"] ezgo_locale -> ezgo [style="invis"] ezgo_struct -> ezgo [style="invis"] ezgo_content -> ezgo /* ub -> blankon [style="invis"] deb_ezgo -> blankon deb_blankon -> blankon blankon_doc -> blankon [style="invis"] blankon_hw -> blankon [style="invis"] blankon_graphics -> blankon [style="invis"] blankon_locale -> blankon [style="invis"] blankon_struct -> blankon [style="invis"] */ deb_edu -> emate // deb_med -> emate deb_ezgo -> emate ezgo_content -> emate // deb_blankon -> emate }