Federation Phase 0: registry producer contract + SPEC §11 - #22
Merged
Conversation
Groundwork for meta-lokf, a registry that aggregates independent lokf bundles into one cross-repo graph without a central database. `lokf export` now additively writes two artifacts a registry harvests: - graph.nt — the whole bundle as N-Triples (the SPARQL harvest source) - concepts.jsonld — every concept's frontmatter + body under one @context/@graph (offline access to a concept's source document) alongside the existing graph.json + datasets.jsonld. The two are isomorphic (86 triples on the acme example); concepts.jsonld additionally carries the raw frontmatter+body so a consumer can read a foreign concept without refetching markdown. Both new outputs are gitignored under web/public/. SPEC gains §11 "Federation: registries of bundles" (Versioning → §12): the producer contract, the lokf-registry.yaml DCAT/VoID manifest, owner(iri) longest-base_iri-prefix resolution as the inverse of §7 IRI minting plus its three guards, the forthcoming lazy named-graph traversal + agent surface, and governance (public/local-only membership, metadata-not-rows, best-effort freshness). Adds the void: prefix to Appendix B. 135 tests pass; docs site builds and renders §11.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First slice of meta-lokf — a registry that aggregates independent lokf bundles into one cross-repo graph, with no central database. Design context: SPEC §11 (added here).
What ships
Producer contract —
lokf exportnow additively writes two artifacts a registry harvests, alongside the existinggraph.json+datasets.jsonld:graph.ntconcepts.jsonld@context/@graph— offline access to a concept's source document without re-fetching markdown.The two are isomorphic (86 triples on the acme example);
concepts.jsonldadditionally carries raw frontmatter+body. Both are gitignored underweb/public/.SPEC §11 "Federation: registries of bundles" (Versioning → §12) documents the whole design so this groundwork has a north star:
lokf-registry.yamlDCAT/VoID manifest (one entry per bundle, keyed bybase_iri);owner(iri)= longest-base_iri-prefix match — the exact inverse of §7 IRI minting, so cross-bundle resolution is pure string math (no network, no shared DB) — plus its three guards (explicit-id index, namespace precedence/non-nesting, ownership validation);lokf registryCLI /lokf-registryMCP surface (marked informative);sensitivitygate, best-effort freshness.Adds the
void:prefix to Appendix B.Why this slice first
It's independently useful (any bundle can now publish a complete harvestable footprint) and unblocks every later phase, with zero new runtime surface. Later phases (registry manifest + routing, document access, lazy federated store, agent MCP tools) build on it.
Verification
lokf export examples/acme-knowledge→ all four artifacts;graph.nt≅concepts.jsonld(86 triples), both parse cleanly.Decisions folded in (from discussion)
PHI/governance and PURL operation are owned by @nicholsn; freshness is best-effort; private/perimeter-bound bundles are explicitly a future extension (v0.1 is public-artifact/local only).