07 — Semantics Governance (who owns meaning)¶
Principle¶
The framework never ships "the ontology." It ships the machinery for governing meaning: registry → lookup → validation → versioned evolution. Content is always user-supplied.
Ownership layers¶
| Layer | What | Owner | Lives in |
|---|---|---|---|
| Foundation vocab | schema.org, FOAF, DCTerms, PROV-O, SKOS |
Standards bodies | src/semantic/vocab.ts (prefixes only) |
| Domain ontology (TBox) | Classes, properties, ranges — the stable meaning | Data steward / domain expert | Versioned files, e.g. ontologies/core@v3.ttl |
| Application shapes | Per-agent constraints (required fields, ranges) | Agent builder | SHACL shapes/<agent>.ttl, versioned with the agent |
Rules of the road¶
- Agents look up, never invent. Unknown predicate → SHACL gate rejects + suggests canonical term. No silent drift (
worksAtvsworksFor). - LLM proposes mappings; autonomy by default, review optional.
emp_location → schema:workLocationcommits on proposal (new MappingProposals({ store })— default), matching the autonomous write path everywhere else; provenance (dct:source) is mandatory. Where drift is unacceptable, opt into human review:new MappingProposals({ autonomy: false })queues proposals fordecide(), or gate the tool with humanInTheLoopMiddleware. - TBox stable, ABox streams. Ontology changes on release cadence with review; facts stream continuously. Queries/rules/dashboards couple to the TBox, never to source formatting.
- Provenance mandatory on writes. Every agent-committed quad carries
dct:source+prov:wasDerivedFrom(+validUntilwhere applicable). No source = rejected atGraphStore.validate. Claims are queryable objects with evidence, not footnotes. - Text is the interface, triples are the asset. Runs return text but commit validated triples — the graph compounds, prompts don't have to.
Lifecycle¶
bootstrap (reuse foundation vocab) → map (LLM proposes source→ontology) → approve (human) → enforce (SHACL on every write) → evolve (TBox v3→v4 with migration + conformance tests).