Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions docs/identity-fabric/musts-intends-wishes.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= QuandleDB / KRL — Normative Scope (Must / Intend / Wish)
:toc: preamble
:revdate: 2026-06-19

[abstract]
Normative scope record for the QuandleDB and KRL halves of the KRL stack,
grouped Must / Intend / Wish, with the shared (both) requirement highlighted at
each level. Captured 2026-06-19. `◇` marks proposals not yet canonical.

== Levels

* *MUST* — required to be what it is (RFC 2119 normative).
* *INTEND* — committed direction.
* *WISH* — aspirational.

The middle column is the shared requirement — what is *commonly required for
both* components at that level.

== Table

[cols="1,3,3,3", options="header"]
|===
| Level | QuandleDB (own) | ⊕ Both — shared requirement | KRL (own)

| *MUST*
| Durable store: presentations, invariants, fingerprints, equivalence classes,
witnesses; extract quandle from TangleIR; serve invariant +
colouring/fingerprint; read-only server (writes via Skein)
| Rest on TangleIR / Tangle type-safety (extend, never redefine);
*equivalence-integrity = the `a = a` idem core*; estate governance
(MPL-2.0, SCM-only-in-`.machine_readable`, CI green); honest KRL-stack
grounding (no op↔component category error)
| Be the resolution DSL — Construct / Transform / Resolve / Retrieve; lower to
TangleIR; run on the QuandleDB+Skein substrate (no 1:1 op↔component);
*not merely a query language*

| *INTEND*
| Canonical persistence + equivalence face; host the server-side KRL parser
(`server/krl/`); stable API + AffineScript TEA frontend
| Serve resolution-relevant artefacts + witnesses + provenance/explanations
(KRL names them → QuandleDB supplies); feed Verisim's identity / consonance
layer
| Retrieve = resolution artefacts, not arbitrary query; finish the rsr-template
instantiation; keep polynomial/colouring compute in the engine, invoked not
language-level ◇

| *WISH*
| "maths analogue of a graph database" ◇; re-ground the withdrawn
knot-relation edge layer / schema v5
| Verisim federation node — map↔territory anchoring, anti-drift; generic query
access (deferred — krl ADR 0002)
| A language family: KRL (resolution) + quandle-algebra (object-level
set/relations) + narrative-projection (Lithoglyph) ◇; KRL dialects
|===

== Spine

The ⊕ MUST cell is load-bearing: *equivalence-integrity*. The `a = a` problem
is the single thing both components are unconditionally bound to, from opposite
ends — QuandleDB *computes and stores* it; KRL *resolves with* it. This is the
idem axis of the identity fabric; see `../../AFFIRMATION.adoc` for the
equivalence / narrative / consonance framing (Conway·Fichte / Bruner /
Ricoeur).
Loading