DOT — язык описания графов.

Граф, описанный на языке DOT, обычно представляет собой текстовый файл с расширением .gv или .dot в понятном для человека и обрабатывающей программы формате.

В графическом виде графы, описанные на языке DOT, представляются с помощью специальных программ, например Graphviz.

Расширение Хотя язык допускает использование стандартных расширений .gv и .dot, следует отдавать предпочтение первому варианту — .gv, так как расширение .dot используется в Microsoft Office 2003.

Синтаксис

Общие положения Структура графа на языке DOT описывается в виде списка субграфов, каждый элемент которого представляет собой конструкцию:

graph %имя_графа% { } внутри которой (в фигурных скобках — { }) находятся комментарии и инструкции, описывающие субграф. Инструкции описывают вершины и рёбра целевого графа и разделяются символом точкой с запятой — ;.

Комментарии Язык DOT поддерживает комментарии в стиле языков C и C++ — // и /**/, а также используемый для этих целей в некоторых языках программирования символ # в качестве первого символа однострочного комментария. // Комментарий в одну строку. # Комментарий в одну строку. /* Комментарий из нескольких строк. */

Типы графов

Неориентированный граф

Неориентированный граф в языке DOT описывается списком вершин и рёбер, представленных названием вершин и двойным тире (--) между связанными вершинами.

graph graphname { a; b; c; d; a -- b; b -- c; b -- d; } Или эквивалентным образом, опустив избыточные описания:

graph graphname { a -- b -- c; b -- d; }

Ориентированный граф

Ориентированный граф в языке DOT описывается списком вершин и рёбер, представленных названием вершин и стилизованной тире и треугольной скобкой стрелочкой (->) между связанными вершинами:

digraph graphname { a -> b -> c; b -> d; } Либо с избыточным описанием:

digraph graphname { a; b; c; d; a -> b; b -> c; b -> d; }

Атрибуты

При описании графов на языке DOT можно использовать атрибуты, определяющие цвет, форму и стиль вершин и рёбер. Атрибуты описываются парами ключ=значение, заключёнными в квадратные скобки ([ключ=значение]). Для каждого элемента графа может быть определено несколько атрибутов, разделённых пробелом graph graphname { // label - видимое название вершины a [label="Foo"]; // shape - определение формы вершины b [shape=box]; // color - определение цвета ребра a -- b -- c [color=blue]; // style - определение стиля ребра b -- d [style=dotted]; }

Ограничения

Так как язык DOT располагает элементы оптимальным образом автоматически, в нём не предусматривается указание их позиций. Поэтому иногда элементы располагаются не соответствующим ожидаемому образом.

Для корректировки визуального представления используются графические редакторы.

Например: digraph g { node [shape=plaintext] A1 -> B1 A2 -> B2 A3 -> B3

A1 -> A2 [label=f] A2 -> A3 [label=g] B2 -> B3 [label="g'"] B1 -> B3 [label="(g o f)'" tailport=s headport=s]

{ rank=same; A1 A2 A3 } { rank=same; B1 B2 B3 } }

Программное обеспечение Для представления графов, описанных на языке DOT используется множество программ, виджетов и библиотек, среди которых: Graphviz OmniGraffle ZGRViewer VizierFX

Аналоги GraphML Trivial Graph Format GML GXL XGMML DGML

См. также Теория графов XML SVG

Примечания

Ссылки Документация по языку DOT Google Chart Tools: Image Charts : GraphViz Charts flow.ps shape file — Postscript — символы блок-схем для Graphviz

Категория:Математическое программное обеспечение Категория:Форматы файлов Категория:Языки описания графов