Библиотека для грамматики графов и перезаписи графов

Меня интересует библиотека для:

  • Представление правил перезаписи графа
  • Представление формальных грамматик, относящихся к графам
  • (Низкий приоритет :), представляющий графовые автоматы
  • (Низкий приоритет:) Запуск автоматов графа на заданном графе
  • Быстрое применение правил перезаписи к графу, один раз и несколько раз

Не имеет значения, представляет ли библиотека сама графы или полагается на внешнюю библиотеку или пользователя для этого представления.

Библиотека должна поддерживать:

  • Ориентированные и неориентированные графы
  • Простые и мультиграфы
  • Метки и цвета ребер и вершин, желательно нескольких видов

Язык программирования должен быть в порядке убывания предпочтения:

  • Современный C++ (т.е. C++11 и более поздние версии)
  • старый (даже) С++
  • Что-нибудь еще

Лицензия:

  • Не нужно углубляться в коммерческий код
  • Предпочтительно что-то, из чего я могу создать производную работу и включить ее в другое место в коде.
  • Менее предпочтительно что-то, с чем я могу связать

Ограничение цены: должно быть свободно доступно для скачивания.

+1 за отличный вопрос. Вот ссылка на некоторые ресурсы: cs.le.ac.uk/people/rh122/gratra/applications.html .

Ответы (1)

Грамматики графов и переписывание уже давно являются горячей темой в немецких академических организациях.

Наиболее практичным инструментом для этого, который я знаю, является PROGRES: PROgrammed Graph REwrite Systems Энди Шурра . Эта работа была сделана в конце 1980-х — начале 1990-х и выглядела достаточно зрелой.

Я читал газеты, и все это звучит великолепно; но у меня нет личного опыта. Ковыряясь в сети, неясно, активен ли еще этот проект и/или где вы можете получить инструмент, если вы можете получить все это.

[У меня есть опыт работы с системами перезаписи AST, чтобы судить о полезности этого].

В Википедии перечислены различные механизмы перезаписи графов, одним из которых является PROGRES. Я мало знаю об остальных.

AST перезаписывает системы, например, TOM? Во всяком случае, посмотрю на PROGES.
Да, AST переписывает как в TOM. Если вам нужны подробности, см . semanticdesigns.com/Products/DMS/DMSToolkit.html . Я главный за этим.