Обсуждение

В архиве: 10 комментариев.

Читать и комментировать в ЖЖ ↗

scriptum · 28 октября 2008

Комментарий

А как вы предпочитаете описывать соотношения 1:N? а) как N отношений б) как 1 отношение с встроенным параметром (N)

Анатолий Левенчук · 28 октября 2008

Комментарий

В Gellish кардиналити указывается в строчке таблицы. Так что -- одно отношение со встроенным параметром N.

Ответ на комментарий

belonesox · 28 октября 2008

возможно заинтересует...

Обращаю внимание, что кроме Graphviz есть UMLGraph, и вообще DSL-языки весьма хорошо идут в комплекте с виками. Возможно заинтересует SECR-овский доклад на эту тему (презентация, статья).

belonesox · 28 октября 2008

Re: возможно заинтересует...

тогда делайте SVG-графы. Кроме neato на больших объемах ненаправленных графов можно попробовать FDP или CIRCO. Кстати, реально большие графы я бы не стал описывать на дот. Лучше описать в виде Python-словарей, программой построить по ним граф, и сгенерировать набор диаграмм - и полную, и большой набор контекстных (все соседи в пути не больше 3). Ну и вообще это даст на порядок больше гибкости, при не меньшем удобстве. DOT-язык хорош именно при коллективной быстрой работе с небольшими графами. Для больших графов с которыми непонятно как манипулировать, лучше сразу в виде программных структур описывать (можно и более простой свой DSL придумать).

Ответ на комментарий

Анатолий Левенчук · 29 октября 2008

Комментарий

Нет, не использует (там табличный формат -- чаще всего используются электронные таблицы, дистрибутив поставляется в .xls). Но есть совместимый вариант, это оговаривается в документации.

Ответ на комментарий

Анатолий Левенчук · 30 октября 2008

Re: возможно заинтересует...

Пока видно три варианта: 1. Купить за 10тыс. евро Gellish Browser. Это по факту означает, что любые разработки PraxOS станут закрытыми, хотя все проблемы будут немедленно решены. 2. Использовать что-нибудь типа cmap. Это означает, что никаких средств для работы с большими графами нет и не предвидится. Кроме того, принципиально невозможно вводить много информации в узле (а нам потребуется как минимум имя + UID, да еще имена перещелкивать в зависимости от языка, т.е. хранить и признак языка тоже). 3. Использовать DOT + gvpr + zgrviewer. Недостатки: нет удобных WYSIWYG редакторов (по крайней мере, я не нашел). А WYSIWYG обычно дает повышение производительности в разы и разы по сравнению с batch-процессингом. Да и вообще, тут не столько редактор нужен, сколько интерактивный браузер. Кроме того, нужно много думать, как воткнуть информацию в узел (разве что делать узел подграфом, четко следуя идеологии Gellish: каждая строка Gellish Table является атомарным отношением и соответствует 12-и элементарным отношениям, т.е. представляет собой граф о 12 ребрах. И тут нужно использовать или record-based nodes или HTML-based labels). 4. Пойти по указанному вами пути "большого программирования", освоить язык программирования (чтобы воспользоваться питон-словарями нужно выучить питон, но после выучивания питона лучше уж взять какой-нибудь графический фреймворк, чтобы сразу смотреть графы -- и уж точно не мучаться с реализацией троек концепт1-отношениеX-концепт2 через словарные двойки, ибо ребра у меня именованные в общем случае). Запретительно по трудозатратам, требует продвинутых пользователей, знающих конкретный язык программирования. Чего бы не хотелось. DSL от продвинутого пользователя можно еще потребовать освоить, но вот создать DSL из традиционного языка программирования (питона, смолтока, форта, явы и т.д.) вряд ли. Впрочем, я на эту тему большой пост написал сейчас: http://ailev.livejournal.com/629345.html

Ответ на комментарий