À propos du projet
Lithoglyph (du grec lithos « pierre » + glyphein « graver ») est décrit comme un noyau de base de données narratif, réversible et de qualité auditable. Sa thèse affirme que les schémas, contraintes, migrations, blocs et journaux sont des artefacts narratifs plutôt qu'un substrat opaque, et que les données sont gravées dans la pierre : permanentes, auditables et réversibles.
Le statut du projet est déclaré actif mais de priorité secondaire. Le README indique qu'il vise la production pour un usage spécialisé dans le journalisme, les arts narratifs et les médias/communications, tandis que VeriSimDB est nommé comme projet principal actuel. Il suggère que Lithoglyph et son langage de requête GQL sont probablement le bon choix pour la plupart des flux de travail journalistiques, narratifs et médiatiques, VeriSimDB et VCL/VCL-UT devenant pertinents pour la vérification d'investigation multi-sources, le suivi d'entités à grande échelle, la cohérence d'identité à long terme, ou la preuve que les données entre bases n'ont pas dérivé.
Les valeurs principales déclarées classent l'auditabilité au-dessus de la performance, le sens au-dessus des fonctionnalités, et la réversibilité au-dessus du débit, avec la compréhension par les agents requise. Les domaines cibles listés sont le journalisme d'investigation, la gouvernance/conformité, les écosystèmes agentiques et la transmission multi-dépôts, et les archives culturelles ou institutionnelles à long terme.
Le dépôt est organisé en spec (spécifications au format AsciiDoc et justifications), core-forth (Form.Blocks et Form.Model, décrits comme le noyau de vérité), core-zig (Form.Bridge, ABI et cadrage de portage), core-factor (Form.Runtime, GQL et introspection), control-plane (une passerelle Elixir/OTP optionnelle), tools (utilitaires de rendu/inspection/diagnostic), test-vectors (octets de référence et rendus de référence) et stories (exemples narratifs et artefacts d'intégration).
L'architecture est stratifiée par langage et responsabilité. Form.Blocks en Forth fournit le stockage déterministe, le journal et les primitives de réversibilité : blocs de taille fixe avec en-têtes symboliques, journal en ajout seul, récupération après incident et contrôles d'intégrité, et conseils de réparation. Form.Model en Forth est la couche logique multi-modèle couvrant les collections de documents, les collections d'arêtes, les métadonnées de schéma et de contraintes, et les artefacts de migration. Form.Bridge en Zig offre une ABI Zig stable sans dépendance C, des handles opaques, des tampons d'octets et des codes d'erreur explicites, effectuant uniquement le marshalling et utilisant callconv(.C) pour la compatibilité FFI sans chaîne d'outils C. Form.Runtime en Factor gère l'analyse/planification/exécution GQL, explain et introspection, l'introspection des étapes du planificateur, les surfaces d'explication des contraintes et les surfaces de provenance. Form.Normalizer combine Factor et Lean 4 pour la découverte automatique de dépendances fonctionnelles (DFD/TANE/FDHits), l'encodage typé des DF dans GQL-DT, les prédicats de forme normale de 1NF à BCNF, l'évolution de schéma porteuse de preuves et les explications narratives des décisions de normalisation. Form.ControlPlane en Elixir/OTP est optionnel et fournit un moteur central hors processus via port, sessions, supervision et coordination de bord de cluster.
Les invariants fondamentaux sont présentés comme non négociables : la vérité sur disque appartient à la couche blocs/journal et les couches supérieures ne la contournent pas ; toute opération mutante est journalisée avant d'être considérée comme validée ; toute opération validée doit avoir un inverse défini ou être explicitement marquée irréversible-avec-récit ; les blocs et entrées de journal doivent être rendus de manière déterministe sous forme lisible par humain/agent ; les résultats de requête peuvent optionnellement inclure des pointeurs de provenance vers le journal et les blocs ; et les contraintes sont explicables, les rejets renvoyant des raisons, des pointeurs et une justification narrative.
GQL (Glyph Query Language) est l'interface de requête native. Le sous-ensemble de preuve de concept couvre INSERT d'un document dans une collection, INSERT d'une arête avec from, to, type et props, SELECT avec prédicats simples, EXPLAIN renvoyant le plan et les raisons, INTROSPECT du schéma et des contraintes, et une sortie de provenance optionnelle.
Les non-objectifs explicites incluent d'être un remplacement direct de Postgres, de gagner des microbenchmarks, et de livrer un consensus distribué complet dans le premier PoC. Les critères d'acceptation du PoC incluent l'ouverture/fermeture mono-nœud, un journal en ajout seul avec rendu déterministe, l'insertion/sélection de documents et d'arêtes, le rejet de contrainte renvoyant une charge utile d'explication, un artefact de migration enregistré et réversible, la réussite des vecteurs de test de référence, et la réussite des vérifications de jointure (B↔M, M↔R, B↔R) au gel.
Les questions ouvertes sont suivies dans un fichier de transmission lisible par machine, couvrant la disposition minimale de l'en-tête de bloc, le schéma minimal d'entrée de journal, le choix d'encodage de blob ABI, la grammaire GQL du PoC, le moment d'introduction d'Elixir/OTP, et plusieurs sujets auto-normalisants tels que l'algorithme de découverte de DF par défaut, la gestion des DF approximatives, la portée de la dénormalisation, l'intégration des preuves GQL-DT et la réécriture de requêtes.
Le README renvoie à la documentation pour le démarrage rapide, le versionnage, le journal des modifications, l'architecture, la feuille de route, la philosophie, la spécification GQL, les types dépendants GQL, la base de données auto-normalisante, les formats de blocs et de journal, le déploiement, l'observabilité, la sécurité et l'authentification, la référence API, la migration depuis un SGBDR, les modèles d'intégration, et un lot de travail documentaire/journalistique interactif. Les projets associés listés incluent GQL-DT, Lithoglyph Studio, BoFIG, Zotero-Lithoglyph, Lithoglyph Debugger et FormBase. Le code est sous MPL-2.0 et la documentation sous CC-BY-SA-4.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.