ogar-loco: value_codebook seam + ogar-ro relation vocabulary (W-RO-1..5) - #246
Merged
Merged
Conversation
Closes the RO/ogar-loco consumer wishlist relayed from lance-graph: - W-RO-1: new ogar-ro crate — a curated RO/BFO binary-predicate palette (part_of, has_part, regulates, capable_of, …) minted as FnIndex bytes in ogar-loco's domain range, implementing Vocabulary so a relation assertion rides the same Call ABI as any other sibling vocabulary. CURIEs cross-reference real RO terms via ogar-obo::Namespace::Ro (ro_curies_parse_as_real_ontology_terms). Mints zero shared-codebook rows: the relation-body content classid sits one slot past ogar-obo's own RO term-node concept inside the existing Ontology domain. - W-RO-2: confirmed in running code, not just assertion — every minted predicate declares pushes_result = Some(false), so a relation body segments into per-assertion statements via the existing statement_bounds machinery with zero new plumbing. - W-RO-3: new ValueCodebook seam on Vocabulary (domain_value_codebook / value_codebook), threaded through FnSpec, VocabularyTable::compose, CheckedVocabulary's delegation, and conformance::check's shared-core drift detection. Default None everywhere — opt-in, zero cost for every existing vocabulary (ogar-blockly unaffected). ogar-ro is the first user: every predicate declares RELATION_TARGET_CODEBOOK, the basin-local table its subject/object operands resolve against. - W-RO-4: documented, not coded — CheckedVocabulary never required a callability marker; ogar-ro is validated exactly like ogar-blockly. - W-RO-5: recorded as an explicit, unresolved cross-repo decision in ogar-ro's module docs (LaneShape vs lance-graph-contract's CascadeShape) rather than picked unilaterally — either direction changes a dependency edge between two repos with independent release cadences.
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_07a42855-dd9d-4b2a-8947-587d66347cbf) |
AdaWorldAPI
marked this pull request as ready for review
August 5, 2026 15:57
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.
Closes the RO/
ogar-lococonsumer wishlist relayed from a lance-graph session (W-RO-1 through W-RO-5).W-RO-1 —
ogar-ro, a new vocabulary crateA curated RO/BFO binary-predicate palette (
part_of,has_part,regulates,capable_of,overlaps, …) minted asFnIndexbytes inogar-loco's domain range, implementingVocabularyso a relation assertion rides the exact sameCallABI every sibling vocabulary shares. CURIEs cross-reference real RO terms viaogar_obo::Namespace::Ro(ro_curies_parse_as_real_ontology_terms). Mints zero rows in the sharedogar_vocabcodebook — the relation-body content classid sits one slot pastogar-obo's own RO term-node concept, inside the already-reservedOntologydomain.W-RO-2 — confirmed mechanically, not just asserted
Every minted predicate declares
pushes_result = Some(false), so a relation body segments into per-assertion statements through the existingstatement_boundsmachinery with zero new plumbing — exercised end-to-end byevery_minted_predicate_is_a_binary_non_pushing_leaf_assertion.W-RO-3 — new
value_codebookseamogar-loco'sVocabularygainsdomain_value_codebook/value_codebook, threaded throughFnSpec,VocabularyTable::compose,CheckedVocabulary's delegation, andconformance::check's shared-core drift detection. DefaultNoneeverywhere — opt-in, zero cost for every existing vocabulary (ogar-blocklyunaffected, still green).ogar-rois the first user: every predicate declaresRELATION_TARGET_CODEBOOK, the basin-local table its subject/object operands resolve against (mirrors medcare-gotham'sEdgeSlotsshape).W-RO-4 — documented, not coded
CheckedVocabularynever required a callability marker;ogar-rois validated exactly likeogar-blocklyis, whether or not any consumer invokes a relation call. Recorded inogar-ro's module docs rather than adding dead machinery.W-RO-5 — recorded as an open cross-repo decision, not picked
ogar_loco::LaneShapeand lance-graph-contract'sCascadeShapeare bit-identical carvings. Unifying them changes a dependency edge between two repos with independent release cadences — not this crate's call. Filed as a named, unresolved item inogar-ro's module docs instead of unilaterally choosing a direction.Verification
cargo test -p ogar-loco -p ogar-ro -p ogar-blockly— all greencargo clippy --all-targets -- -D warnings— cleanRUSTDOCFLAGS="-D warnings" cargo doc --no-deps— cleancargo fmt --check— cleanGenerated by Claude Code