docs(od-ontology): pull SPO schema from lance-graph + name the compiler-AST frame#13
Merged
AdaWorldAPI merged 1 commit intoJun 22, 2026
Conversation
…the compiler-AST frame Phase-1 repatriation per REPATRIATION-FRAME.md: pulled the rich predicate schema documentation from `lance_graph::graph::spo::odoo_ontology` (where it was wrong-altitude — generic graph spine carrying a per-app vocabulary) into `triple.rs` where the consumer that USES the vocabulary owns its docs. And operator-named the deeper frame this pull surfaces: "lance-graph on OGAR is acting like a compiler, so the AST needs to think like that" Made explicit in triple.rs head: SPO corpus = AST (typed nodes = 13 predicates, provenance = 4 truth bands); odoo-rs = language frontend; OGAR Class/ActionDef = IR; lance-graph + adapters = middle/back end. Adding a 14th predicate is a language change, not a doc update. Slices reference externs resolved by the symbol table (OGAR ClassView), not in-slice. Pulled into the module doc: - 13-predicate × 3-S/O-shape × provenance-band schema table - The 4 truth-value provenance bands (corrected from lance-graph's incomplete 3-band claim — the corpus actually carries (1.0, 1.0) declaration AND (1.0, 0.95) membership; the new test caught it) - The "a + b → c through d?" Foundry query pattern (what the corpus is FOR) - Two enrichment layers (target/inverse_name; deep reads_field) + the _inherit-only / multi-emitter corrections New `tests/corpus_schema_pin.rs` — 10 invariant pins, all green against slice-1 (account_move) and slice-2 corpora. Catches: undocumented predicate appearing, truth band outside the four, structural band leaking into a non-structural predicate, inherits_from / reads_field self-loops, target carrying odoo: prefix, validation_kind drift, raises in wrong namespace, + the canonical convergence-pin deep read (_compute_amount cross-model). Three pins SHIFTED in scope from the lance-graph original (the AST-view made the demands the slice corpora can't meet): inherits_from base is "well- formed extern" not "declared in slice"; target object is "raw, no odoo: prefix" not "must be dotted" (single-word comodels like `website` exist). Full-corpus integrity claims belong on the full corpus, not slices. Additive — lance-graph's odoo_ontology.rs untouched (it's the duplicate now, to be subtracted in a later phase). 39 lib + 7 bin + 10 corpus-pin + all integration green; clippy 0; fmt-clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This was referenced Jun 22, 2026
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 7, 2026
…2 to the recipe OGAR (#174/#175/#176) + lance-graph (#658) migrated to generic plug-and-play capability handling, retiring the COUNT_FUSE dual-store. Checked odoo-rs against the migrated mains: - Restarted branch from merged main (PR #24 = 0bd6809); floated deps to OGAR dee1fc5 (hot-plug) + ruff 55bbf60 (which now INCLUDES the merged DTO arm, ruff #51). cargo test -p od-ontology --features cli,fieldmask = 17/17 green. ZERO breakage: COUNT_FUSE was internal to the OGAR<->lance-graph bridge; the additive capability_registry/ocr_actions surfaces don't touch the Class/ActionDef/compile_graph_python surface odoo-rs consumes. - Handover §2b documents the socket/authority/bridge/consumer model + sibling-path-dep NO-PIN rule + the 5 drift arms. - W2 revised: the lance-graph V3 sink is no longer 'invent a sink' — it is the hotplug-consumer-migration recipe (declare odoo_actions authority table + HOT_PLUG const + activation test + executor), mirroring the tesseract-rs #13/#14 template. odoo-rs needs no HOT_PLUG until W2. Ref: E-HOTPLUG-GENERIC-1, E-HOTPLUG-MIGRATION-1, OGAR .claude/knowledge/hotplug-consumer-migration.md.
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.
What
Phase-1 of the repatriation (per
REPATRIATION-FRAME.mdshipped in #12).Pulled the rich SPO predicate-schema documentation from
lance_graph::graph::spo::odoo_ontology(wrong-altitude: generic graph spinecarrying a per-app vocabulary) into
triple.rs— the consumer that USES thevocabulary now owns its docs. Additive only; lance-graph's copy stays in place
to be subtracted in a later phase.
The compiler-AST frame (operator-named)
Made explicit at the head of
triple.rs:Class/ActionDef= the IR.not a doc update.
ClassView),not by the slice.
What landed in
triple.rstable.
incomplete 3-band claim — the corpus carries
(1.0, 1.0)declaration AND(1.0, 0.95)membership; the new test caught the omission).target/inverse_name; deepreads_field) +_inherit-only / multi-emitter corrections.What landed in
tests/corpus_schema_pin.rs10 invariant pins, all green against both shipped corpora (slice-1 and
slice-2). Catches:
inherits_from/reads_fieldself-loops;targetcarrying anodoo:prefix;validation_kinddrift outside the recognised five;raisesoutside theexc:namespace;_compute_amountcross-model).Three pins shifted in scope from lance-graph's originals (the AST-view
made them demand things the slice corpora can't deliver):
inherits_frombase is a declared ObjectType in this corpusodoo:<name>IRI (slice externs are AST-valid; resolved via the symbol table)targetobject always contains a dotodoo:prefix (single-word comodels likewebsiteare valid)rdf:type+has_function(one band)1.0, 1.0,rdf:typeonly) + membership band (1.0, 0.95,has_functiononly)Full-corpus integrity claims belong on the full corpus, not on slices.
Tests
39 lib + 7 bin + 10 corpus-pin + all integration green; clippy 0;
fmt-clean. Builds on merged #12 (the frame).