DOT — язык описания графов , разработанный в рамках проекта Graphviz . Графики DOT обычно хранятся в виде файлов с расширением или.gv
— предпочтительнее , чтобы избежать путаницы с расширением, используемым версиями Microsoft Word до 2007 года. [1] — также название основной программы для обработки файлов DOT в пакете Graphviz..dot
.gv
.dot
dot
Различные программы могут обрабатывать файлы DOT. Некоторые из них, такие как dot , neato , twopi , circo , fdp и sfdp , могут читать файлы DOT и отображать их в графической форме. Другие, такие как gvpr , gc , acyclic , ccomps , sccmap и tred , читают файлы DOT и выполняют вычисления на представленном графике. Наконец, другие, такие как lefty , dotty и grappa , предоставляют интерактивный интерфейс. Инструмент GVedit объединяет текстовый редактор и неинтерактивный просмотрщик. Большинство программ являются частью пакета Graphviz или используют его внутренне.
DOT исторически является аббревиатурой от «DAG будущего», поскольку он является преемником формата DAG и программы DAG , которая обрабатывала только направленные ациклические графы . [2]
В простейшем случае DOT можно использовать для описания неориентированного графа . Неориентированный граф показывает простые отношения между объектами, например, взаимную дружбу между людьми. graph
Ключевое слово используется для начала нового графа, а узлы описываются в фигурных скобках. Двойной дефис ( --
) используется для отображения отношений между узлами.
// Имя графика и точки с запятой необязательны graph graphname { a -- b -- c ; b -- d ; }
Подобно неориентированным графам, DOT может описывать ориентированные графы , такие как блок-схемы и деревья зависимостей . Синтаксис такой же, как и для неориентированных графов, за исключением того, что digraph
ключевое слово используется для начала графа, а стрелка (->) используется для отображения отношений между узлами.
орграф имя_графа { a - > b -> c ; b -> d ; }
Различные атрибуты могут быть применены к графикам, узлам и ребрам в файлах DOT. [3] Эти атрибуты могут управлять такими аспектами, как цвет, форма и стили линий. Для узлов и ребер одна или несколько пар атрибут-значение помещаются в квадратные скобки []
после оператора и перед точкой с запятой (которая необязательна). Атрибуты графа указываются как прямые пары атрибут-значение под элементом графа, где несколько атрибутов разделяются запятой или с использованием нескольких наборов квадратных скобок, в то время как атрибуты узла помещаются после оператора, содержащего только имя узла, но не отношения между точками.
graph graphname { // Этот атрибут применяется к самому графу size = "1,1" ; // Атрибут label может использоваться для изменения метки узла a [ label = "Foo" ]; // Здесь изменяется форма узла. b [ shape = box ]; // Оба этих ребра имеют разные свойства линий a -- b -- c [ color = blue ]; b -- d [ style = dotted ]; // [style=invis] скрывает узел. }
Поддерживаются метки в стиле HTML, хотя изначально Graphviz их не обрабатывал. [4]
DOT поддерживает однострочные и многострочные комментарии в стиле C и C++ . Кроме того, он игнорирует строки с символом числа в качестве первого символа, как и многие интерпретируемые языки.#
Язык DOT определяет граф, но не предоставляет возможности для рендеринга графа. Существует несколько программ, которые можно использовать для рендеринга, просмотра и манипулирования графами на языке DOT:
dot
– CLI-инструмент для конвертации между .dot
форматами и другими форматами