DOT (мова)
DOT | |
Розробник | Bell Laboratories[1] |
---|---|
URL довідки користувача |
graphviz.org/doc/info/lang.html graphviz.org/doc/info/attrs.html graphviz.org/doc/info/shapes.html graphviz.org/doc/info/arrows.html graphviz.org/doc/info/colors.html |
MIME-тип інтернет-вмісту | text/vnd.graphviz[2] |
Розширення файлу |
.gv [2] або .dot [2] |
DOT у Вікісховищі |
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 (англ. directed graph), і зв'язки між вершинами позначаються стрілочками (->).
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. [1]
- Tulip [Архівовано 13 квітня 2009 у Wayback Machine.] може імпортувати файли dot для аналізу.
- OmniGraffle може імпортувати підмножину DOT, та створює документ який можна редагувати. (Результат можна знову зберегти в DOT)
- ZGRViewer, переглядач GraphViz/DOT (Посилання [Архівовано 12 червня 2018 у Wayback Machine.])
- 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[en] інший широко розповсюджений формат — GML [Архівовано 28 листопада 2009 у Wayback Machine.]
- GraphML, формат зберігання графів на базі XML — GraphML [Архівовано 13 грудня 2009 у Wayback Machine.]
- GXL, ще один XML формат — GXL [Архівовано 5 січня 2010 у Wayback Machine.]
- XGMML XML формат дуже схожий на GML — XGMML
- DGML, Directed Graph Markup Language від Microsoft
- Mermaid — проста мова для створення графіків та діаграм[3]
- Graphviz
- Граф (абстрактний тип даних)
- lisp2dot інструмент для трансляції дерева програми на мові LISP в мову DOT
- ↑ https://reference.wolfram.com/language/ref/format/DOT.html
- ↑ а б в https://www.iana.org/assignments/media-types/text/vnd.graphviz — 2008.
- ↑ Mermaid | Diagramming and charting tool. mermaid.js.org. Процитовано 17 січня 2023.
- Специфікація й інструкції до DOT [Архівовано 2 грудня 2010 у Wayback Machine.]
- Галерея прикладів [Архівовано 2 грудня 2010 у Wayback Machine.]
- Boost Graph Library [Архівовано 2 грудня 2008 у Wayback Machine.]
- Grappa Drawing Package [Архівовано 12 жовтня 2010 у Wayback Machine.]
- Публікація графів онлайн в SVG, PNG, GIF, JPG