Всем привет!
Есть файл в формате DOT с описанием узлов и связей между.
Программа GraphViz успешно строит граф по этим данным, но не даёт возможности отредактировать положение узлов, например, некоторые узлы переместить на другое место.
Пробовал экспортировать граф в SVG-формат и открывать в разных редакторах (Inkscape, GIMP, yEd, draw.io и т.д.), но файл импортируется только целиком как единая картинка, без возможности редактирования узлов и связей.
Позже понял, что нельзя импортировать SVG-граф и редактировать его, так как SVG не сохраняет информацию, необходимую для определения, какие элементы — узлы, а какие — соединения.
Может это вообще нерешаемая задача - редактировать SVG-файл, созданный в Graphviz?
Пробовал вариант найти редактор, который бы импортировал DOT-файлы напрямую и сам бы строил графы, но нашёл только Gephi, который мне пока не очень нравится.
Может кто-то посоветует программу построения графов на основе DOT-файлов (аналог GraphViz), но с возможностью редактирования полученного графа прямо в этой программе?
Внутренний формат .dot файла описывает топологию. Вершины и связи. Но их положение на экране
не относится к графу. И этот дизайн не хранится внутри dot файла. Утилиты из семейства graphviz рисуют
"как бог даст" согласно их пониманию дизайна.
Я не знаю ни одного редактора который способен хотя-бы просто показать граф. При количестве вершин
например за миллион его просто невозможно нарисовать быстро. Десктопы умирают от такой задачи.
Но если тебе надо просто красивов расположить штук 10 узлов для презентации например - то бери
SVG/Inkscape и делай красоту там.
Для работы с графом как с базой данных (поиски фактов) можешь посмотреть по ключевым словам
SparQL, Neo4j, Apache Tinkerpop.
Благодарю за ответ (лайк).
Задача в том, что нужно использовать только DOT-файл и на основе него строить граф.
И потом иметь возможность его отредактировать (переместить узлы в нужное место).
Может это будет 30-50 узлов, явно не тысячи и миллионы.
Рисовать красивые SVG в каком-либо редакторе - не вариант.
За наводку на SparQL, Neo4j, Apache Tinkerpop - отдельное спасибо.
Это уже следующий этап :)