Mangle – a language for deductive database programming
Mangle — проект Google на GitHub.
Язык: Go.
Лицензия: Apache-2.0.
Описание
Mangle — это компилятор/интерпретатор логического языка, ориентированного на:
- анализ и трансформацию графов;
- декларативные запросы к данным;
- поддержку Datalog-подобного синтаксиса.
Ключевые особенности
- Компилирует логические правила в Go-код или исполняет напрямую.
- Поддерживает рекурсивные запросы и агрегации.
- Работает с in-memory и persistent-хранилищами.
Установка
go install github.com/google/mangle/cmd/mangle@latest
Быстрый старт
- Создай файл
example.mgl
:edge("a", "b"). edge("b", "c"). path(X, Y) :- edge(X, Y). path(X, Z) :- edge(X, Y), path(Y, Z).
- Запусти:
mangle example.mgl --query="path(\"a\", Z)"
Документация
Комментарии (14)
- Участники спорят, связан ли новый язык Google с «Deductive Database» из видео 3b1b: одни считают, что это очередной внутренний эксперимент, другие — просто «люди, которые веселятся под крылом Google».
- Поднимается вопрос, почему почти все инструменты расширяют «ванильный» Datalog: его ограничения делают расширения неизбежными.
- В треде упоминаются альтернативные языки запросов — PreQL/Trilogy, Malloy, PRQL, PathQuery — и обсуждается, как они соотносятся с SQL и реляционной алгеброй.