Block engine Tuesday OKRs — 2026-09-01#

Objective#

Turn the optimized persistent three-pattern query path from a working, regression-tested implementation into a proof-connected and reproducibly measured Lean 4 storage-engine slice.

Both sides of each refinement are Lean 4. The reference Lean evaluator is the simple executable SPARQL semantics. The optimized Lean physical-plan algorithm uses predicate blocks, subject indexes, and direct binding construction. “Pure” is reserved for deterministic in-memory code without file-I/O, Merkle, or harness effects; it does not distinguish Lean from non-Lean code.

Key results#

  1. Close the two immediate semantic gaps.

  2. Advance the verified persistence bridge.

  3. Broaden evidence without a costly corpus download.

  4. Make performance claims measurable.

  5. Leave a durable handoff.

Guardrails and stretch result#

PostgreSQL and TiKV remain optional hosts, not today's critical path; local immutable files and existing Lean tooling are enough for this assurance rung. Use subagents only for sharply bounded checks with clear payoff. Preserve unrelated FoafMixer and user work. Do not turn “passes current tests” into a standards or SOTA claim.

The stretch result is an end-to-end theorem chain for the admitted query shape:

Merkle-verified IBK3/SRI2 rows
        → predicate fragments
        → optimized Lean physical-plan solutions
        → reference Lean evalBgp solutions

Order-sensitive modifiers remain on the reference route until their physical ordering contract is stated explicitly.

Alpha format-readiness decision#

The main current family is suitable for an explicitly experimental MVP/alpha, but it is not yet a fully specified or long-term-stable storage standard. The current writable generation is:

SBM6 manifest
  -> predicate-local IBK3 block
       -> embedded PTD1 local-ID-to-RDF-term dictionary
  -> SRI2 subject-ID-to-row-offset sidecar
  -> TLI1 RDF-term-to-local-ID sidecar
  -> OLI2 object-ID-to-row-offset sidecar

DLOG (DLB1 batches of DLE1 operations) + CEP1 compacted epoch
CURRENT -> one admitted immutable generation

This is strong enough for alpha code because the bytes are versioned, writers and strict decoders exist in Lean, malformed framing and checksums are rejected, artifacts are bound by SHA-256 and fixed-chunk Merkle commitments, activation checks the sidecar relations against their target IBK3 block, and the publish/update/compact/reopen/query lifecycle has repeatable executable regressions. Local IDs are intentionally scoped to one IBK3 artifact; TLI1 is the translation boundary.

The alpha compatibility rule is: do not silently reinterpret bytes under an existing magic/version. A byte-layout or denotation change gets a new format version. Earlier versions may remain readable while useful, but there is no installed base that requires preserving every prototype writer.

It is not yet honest to call the family fully specified because:

The practical beta gate is therefore: prove the current codecs' round-trip or denotation properties, connect verified selected ranges to SPARQL denotation, publish portable golden vectors and the normative layout, settle the RDF 1.2 term encoding, and demonstrate the same bytes in at least two host paths.

“W3C” terminology#

“W3C” is an origin or evidence qualifier here, never a synonym for “Factoidal”, “verified”, or “certified”. Use these phrases precisely:

Avoid the recent shorthand “W3C disk gate”: it can sound like a W3C storage format or certification. The storage formats are Factoidal/Shardborough formats; W3C material is being used as standards-derived test data and expected query results.

Umbrella specification and semantic scope#

The repository previously had no single specification for the complete active format family. Architecture parts, dated implementation notes, the Lean codec modules, and storage skills each held part of the contract. The new alpha umbrella draft is docs/shardborough-storage-spec.md; it registers the IBK/PTD/index/SBM/Merkle and durable-update formats and states which Lean definitions currently own their executable layouts.

The audit also found a semantic-control-plane gap. IBK3 row bytes are usefully vocabulary-neutral, but SBM6 records no named-graph scope, asserted/derived role, entailment profile, schema/rules identity, or trust policy. Its physical planner selects exact predicate IRIs only. Existing Lean RDFS/OWL code defines and proves rdfs:subPropertyOf rules, but no persisted Shardborough index uses those relationships to select subordinate predicate blocks.

The umbrella draft therefore requires an open, content-addressed semantic context rather than a closed enumeration of favoured standards. It specifies a future predicate-entailment map bound to source, schema/rules, regime, graph scope, and trust identities. Superproperty scans must deduplicate identical inferred triples before exposing SPARQL bag multiplicity. Absence or mismatch of the map means complete fallback, never a false-negative shortcut. The implementation and proof work is tracked in issue #636.

Browsable specification#

docs/shardborough-storage-spec.md remains the source document. Alpha draft 0.2 begins with the system's purpose, publication/query/update lifecycle, deployment profiles, adoption scope, and current implementation limits. The semantic index proposals are explicitly optional extensions. Eleventy renders the Markdown with docs/_includes/spec.njk as a responsive technical specification page at /factoidal/shardborough-storage-spec/. The page has stable heading links, a generated table of contents, source and issue links, print styling, and an explicit statement that it is a Factoidal draft rather than a W3C publication.

The specification also records an optional endpoint-type summary for early block rejection. Bloom-filter keys can distinguish subject/object roles and quantized prevalence claims such as at_least_1, at_least_half, and all. Negative results provide safe bounds when construction and context are verified; positive results remain probabilistic. Materialized supertypes are permitted only under a named graph, schema/rules, entailment, and trust context.