About this project
Lithoglyph (Greek lithos "stone" + glyphein "to carve") is described as a narrative-first, reversible, audit-grade database core. Its stated thesis is that schemas, constraints, migrations, blocks and journals are narrative artefacts rather than an opaque substrate, and that data is carved in stone: permanent, auditable and reversible.
Project status is declared active but secondary priority. The README says it is working toward production for specialist use in journalism, narrative arts and media/communications, while VeriSimDB is named as the current primary project. It suggests Lithoglyph and its GQL query language are likely the right choice for most journalism, storytelling and media workflows, with VeriSimDB and VCL/VCL-UT becoming relevant for cross-source investigative verification, large-scale entity tracking, long-term identity consistency, or proving that data across databases has not drifted.
Stated primary values rank auditability above performance, meaning above features, and reversibility above throughput, with agent understanding required. Target domains listed are investigative journalism, governance/compliance, agentic ecosystems and multi-repo handover, and long-term cultural or institutional archives.
The repository is organised into spec (AsciiDoc format specs and rationale), core-forth (Form.Blocks and Form.Model, described as the truth core), core-zig (Form.Bridge, ABI and port framing), core-factor (Form.Runtime, GQL and introspection), control-plane (an optional Elixir/OTP gateway), tools (render/inspect/doctor utilities), test-vectors (golden bytes and golden renders) and stories (narrative examples and onboarding artefacts).
The architecture is layered by language and responsibility. Form.Blocks in Forth provides deterministic storage, journal and reversibility primitives: fixed-size blocks with symbolic headers, an append-only journal, crash recovery and integrity checks, and repair guidance. Form.Model in Forth is the multi-model logical layer covering document collections, edge collections, schema and constraint metadata, and migration artefacts. Form.Bridge in Zig offers a stable Zig ABI with no C dependency, opaque handles, byte buffers and explicit error codes, doing marshalling only and using callconv(.C) for FFI compatibility without a C toolchain. Form.Runtime in Factor handles GQL parse/plan/exec, explain and introspection, planner step introspection, constraint explanation surfaces and provenance surfaces. Form.Normalizer combines Factor and Lean 4 for automatic functional dependency discovery (DFD/TANE/FDHits), type encoding of FDs in GQL-DT, normal form predicates from 1NF through BCNF, proof-carrying schema evolution and narrative explanations for normalization decisions. Form.ControlPlane in Elixir/OTP is optional and provides an out-of-process core engine via port, sessions, supervision and cluster edge coordination.
Core invariants are presented as non-negotiable: on-disk truth is owned by the block/journal layer and higher layers do not bypass it; every mutating operation is journaled before being considered committed; every committed operation must have a defined inverse or be explicitly marked irreversible-with-story; blocks and journal entries must be deterministically renderable into human/agent-readable form; query results can optionally include provenance pointers to journal and blocks; and constraints are explainable, with rejections returning reasons, pointers and narrative rationale.
GQL (Glyph Query Language) is the native query interface. The proof-of-concept subset covers INSERT of a document into a collection, INSERT of an edge with from, to, type and props, SELECT with simple predicates, EXPLAIN returning plan and reasons, INTROSPECT of schema and constraints, and optional provenance output.
Explicit non-goals include being a drop-in Postgres replacement, winning microbenchmarks, and shipping full distributed consensus in the first PoC. PoC acceptance criteria include single-node open/close, an append-only journal with deterministic rendering, document and edge insert/select, constraint rejection returning an explain payload, a recorded and reversible migration artefact, passing golden test vectors, and seam checks (B↔M, M↔R, B↔R) passing at freeze.
Open questions are tracked in a machine-readable handover file, covering minimal block header layout, minimal journal entry schema, ABI blob encoding choice, GQL PoC grammar, Elixir/OTP introduction timing, and several self-normalizing topics such as default FD discovery algorithm, approximate FD handling, denormalization scope, GQL-DT proof integration and query rewriting.
The README links documentation for quickstart, versioning, changelog, architecture, roadmap, philosophy, GQL specification, GQL dependent types, self-normalizing database, block and journal formats, deployment, observability, security and auth, API reference, migration from RDBMS, integration patterns, and an interactive documentary/journalism work package. Related projects listed include GQL-DT, Lithoglyph Studio, BoFIG, Zotero-Lithoglyph, Lithoglyph Debugger and FormBase. Code is MPL-2.0 and documentation is CC-BY-SA-4.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.