DOT — це текстова мова опису графів. Вона достатньо проста як для людей, так і для комп'ютерів. Графи DOT це зазвичай и з розширенням .gv (чи .dot).

DOT-файли можуть оброблятись різними програмами. Такі як dot, neato, twopi, circo, fdp, та sfdp, прочитають DOT файл і відтворять його в графічній формі. Інші, як наприклад gvpr, gc, accyclic, ccomps, sccmap, та tred, після читання графу будуть виконувати над ним різні обчислення. А такі програми як GVedit, lefty, dotty, та grappa, надають інтерактивний інтерфейс. Більшість програм є частиною пакету Graphviz.

Синтаксис

Типи графів

Ненаправлені

Ключове слово graph використовують для створення нового графу, і його елементи описуються всередині фігурних дужок. Подвійний дефіс використовують щоб показати відношення між вершинами.

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

Направлені графи

Подібно до ненаправлених графів, мова DOT може описувати направлені, такі як блок-схеми та дерева залежностей. Синтакс такий самий, тільки на початку використовується ключове слово digraph (), і зв'язки між вершинами позначаються стрілочками (->). digraph graphname { a -> b -> c; b -> d;

Атрибути

Вершинам та ребрам можна присвоювати певні атрибути, які будуть змінювати вигляд графу, такі як колір, форма, чи стиль ліній. В квадратні дужки перед крапкою з комою ([]) поміщається одна, чи більше пар ім'я-значення, розділених комою. Щоб призначити атрибути для вершин, їх розміщують в рядку що містить тільки ім'я вершини, без відношень. graph graphname { // Атрибут label можна використовувати щоб змінювати підпис вершини a [label="Foo"]; // тут змінюємо форму вершини b [shape=box]; // А тут змінюємо вигляд ребер. a -- b -- c [color=blue]; b -- d [style=dotted];

Коментарі Dot підтримує коментарі як в стилі C, так і в стилі скриптових мов: // Однорядковий коментар /* А це - багаторядковий коментар. */ # І це коментар

Програми малювання Мова DOT описує граф, але не надає можливостей для його відображення. Існує кілька програм, що можуть використовуватись для перегляду та маніпулювання графами в мові DOT: Graphviz — колекція програм для обробки графів в мові DOT Grappa — Java редактор та переглядач графів, що базується на Graphviz Beluging — Переглядач графів що базується на Python та Google Cloud. Tulip може імпортувати файли dot для аналізу. OmniGraffle може імпортувати підмножину DOT, та створює документ який можна редагувати. (Результат можна знову зберегти в DOT) ZGRViewer, переглядач GraphViz/DOT (Посилання ) VizierFX, бібліотека рендерингу графів для Flex. Посилання.

Обмеження

Хоча можливо явно задавати розміщення графу з DOT, але не всі інструменти що використовують мову 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 } } Зображення вище трохи скошене, і мітка «(g o f)'» розташована не там де потрібно.

Це можна виправити за допомогою Inkscape чи іншого SVG редактора. В деяких випадках, це також можна виправити використовуючи атрибут pos для явного задання позиції.

Інші формати зберігання графів Trivial Graph Format, простий текстовий формат інший широко розповсюджений формат — GML GraphML, формат зберігання графів на базі XML — GraphML GXL, ще один XML формат — GXL XGMML XML формат дуже схожий на GML — XGMML DGML, Directed Graph Markup Language від Microsoft Mermaid — проста мова для створення графіків та діаграм

Див. також Graphviz Граф (абстрактний тип даних) lisp2dot інструмент для трансляції дерева програми на мові LISP в мову DOT

Примітки

Посилання Специфікація й інструкції до DOT Галерея прикладів Boost Graph Library Grappa Drawing Package Публікація графів онлайн в SVG, PNG, GIF, JPG