Date: 2026-08-30
l4block-id-diff is an executable end-to-end regression gate for the current
Lean vertical. Given Turtle and a parsed SELECT, it evaluates the same query
through two independently wired inputs:
Turtle graph -> existing list-backed dataset evaluator
Turtle graph -> IndexedBlock -> IBK1 bytes -> decode -> IndexedBlock.readOps
-> existing SPARQL backend evaluator
It compares the resulting solution sequences exactly. It is intentionally not a theorem: it protects the integration boundary while the general codec and refinement theorems are extended.
The executable was built with:
lake build l4block-id-diff
It passed on the 486-triple Wikidata active-site Schema.org-adjacent source with an ordered, predicate-and-object-bound SPARQL query:
SELECT ?item WHERE {
?item <http://www.wikidata.org/prop/direct/P31>
<http://www.wikidata.org/entity/Q423026>
} ORDER BY ?item
The result contained 132 rows after the IBK1 encode/decode path. This checks
more than an SSE wrapper: the SPARQL evaluator receives only the decoded
indexed block's BackendReadOps, whose bound-predicate branch reads a physical
predicate posting partition.
The same gate also passed on the 9,227-triple chromosome.ttl corpus with a
parsed aggregate query over a predicate-bound triple pattern. It produced one
COUNT(*) solution after a 526,057-byte IBK1 round trip. The end-to-end
differential run took 25.2 seconds on the development laptop; that includes
Turtle parsing, index construction, encoding, decoding, and both evaluator
routes, so it is not a query-only performance claim.
This is a real Lean storage/query vertical, but it is still an in-process
memory/file implementation. PostgreSQL bytea, mmap, TiKV, range partitions,
and a canonical cross-input graph identity remain separate next milestones.
The PostgreSQL acceptance criteria are tracked in GitHub issue #635.