kb-prolog es una base de conocimiento hiperrelacional de tipo local-first, construida como prototipo de tesis de máster sobre Trealla Prolog, SQLite y C. Su modelo de datos se articula en torno al término statement(Subject, Predicate, Object, Properties), donde sujeto y objeto pueden ser a su vez enunciados, lo que permite hacer afirmaciones sobre afirmaciones (reificación).
El proyecto incorpora un sistema de almacenamiento direccionable por contenido (CAS) implementado en C: los archivos se staged, se les calcula un hash SHA-256 y se confirman de forma atómica junto con sus metadatos en el grafo, con deduplicación automática. Cada actualización genera una nueva versión del enunciado enlazada mediante replaces_id, y un módulo de history recorre la cadena de versiones para ofrecer una funcionalidad de time-travel sobre el conocimiento.
La arquitectura combina Prolog como lenguaje principal con librerías compartidas en C accedidas por FFI. SQLite actúa como capa de persistencia, con un esquema ANY, WAL, FTS5 y soporte de reificación. Raylib y raygui dan forma a un visor gráfico interactivo con previsualización de imágenes, barra de consulta y búsqueda de nodos. La carga de contexto emplea CTEs recursivos bidireccionales para extraer de la base el subgrafo alcanzable desde una semilla y llevarlo a la memoria de trabajo de Prolog.
La construcción se realiza con make tras clonar con submódulos, y existe un shell de Nix para compilaciones reproducibles. El repositorio se distribuye bajo licencia GPL-3.0.
