DOT (язык) | это... Что такое DOT (язык)? (original) (raw)

6n-graf.svg

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

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

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

Содержание

Расширение

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

Синтаксис

Общие положение

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

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

Комментарии

Язык 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 используется множество программ, виджетов и библиотек, среди которых:

Аналоги

См. также

Примечания

  1. File extension .dot or .gv?. Архивировано из первоисточника 5 сентября 2012. Проверено 8 марта 2011. (англ.)

Ссылки