Разработчик Mateu опубликовал гиперреляционную базу знаний на Prolog - прототип для магистерской диссертации, который уже интересен всерьёз
На GitHub появился необычный проект: разработчик под псевдонимом Mateu выложил kb-prolog - гиперреляционную базу знаний с локальным хранилищем, адресуемым по содержимому. Формально это прототип для магистерской работы. По факту - цельная система с интерактивным интерфейсом, версионированием данных и нетривиальной архитектурой.
Что внутри и почему это не очередной учебный проект
Основа kb-prolog - гиперреляционный граф. Знания хранятся в виде четырёхэлементных утверждений: субъект, предикат, объект и набор свойств. Ключевой момент - субъекты и объекты сами могут быть утверждениями. Это реификация: система умеет делать утверждения об утверждениях, что принципиально отличает её от классических троек в духе RDF. Такой подход давно обсуждается в академической среде как более выразительная альтернатива стандартным графам знаний, но реализаций в открытом доступе - единицы.
Хранилище работает через SHA-256. Файлы хешируются и атомарно фиксируются вместе с метаданными графа. Дедупликация происходит автоматически - повторный контент просто не копируется. Это архитектура в духе content-addressable storage, хорошо знакомая тем, кто работал с Git или IPFS.
Отдельного внимания заслуживает поддержка time-travel. Каждое обновление порождает новую версию утверждения, связанную с предыдущей через поле replaces_id. История восстанавливается по цепочке. Звучит просто - на практике это редкость для подобных систем.
Prolog как главная среда, а не как экзотика
Среда выполнения - Trealla Prolog. Это не дань академической моде: Prolog органично подходит для работы с реляционными структурами и логическими запросами. Доступ к SQLite и графической библиотеке Raylib организован через FFI - разделяемые C-библиотеки подгружаются по мере надобности.
Сам код написан на C и Prolog, опубликован под лицензией GPL v3.0. Открытая лицензия означает, что любой может форкнуть, доработать и встроить компоненты в собственные исследовательские или прикладные проекты.
Графический интерфейс и перспективы
Проект комплектуется визуальным просмотрщиком графов на базе Raylib. Там есть предварительный просмотр изображений, строка запросов и поиск по узлам. Для академического прототипа - уровень неожиданно высокий.
Интерес к подобным системам в последние годы заметно вырос - во многом благодаря буму вокруг графов знаний в контексте больших языковых моделей. Гиперреляционные структуры рассматриваются как способ хранить более богатый контекст, чем позволяют классические триплеты. kb-prolog занимает в этом пространстве скромную, но чёткую нишу: локальная, прозрачная, хорошо документированная система без зависимости от облачных сервисов.
- Язык реализации: C и Prolog
- Среда выполнения: Trealla Prolog
- Хеширование: SHA-256
- Лицензия: GNU GPL v3.0
- Интерфейс: графический просмотрщик на Raylib
- Хранилище: SQLite через FFI