From f185d16ddbac93d596a772eb7d6b2a3b88059484 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 31 Aug 2026 15:24:11 +0000 Subject: [PATCH] ogar-vocab: mint the 9 domain-reference-tree blocks (0x90..0x9A minus the two aliases) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator ruling 2026-08-31: "mint die 9 bloecke". Read off MedCare-rs data/config/domain_classids.tsv, which has carried the allocation since 2026-08-21 with status "erbeten". The defect it closes: all eight medcare domains live in ONE block, 0x03XX (Ontology). The high byte therefore says only "biomedical reference" and not WHICH domain — so a compartment has to be looked up from the vocabulary classid instead of read off the key, and a reasoning path that leaves a compartment and bends back into it (a horseshoe U-turn) is invisible at the address. With the tree, HIGH byte = compartment and LOW byte = vocabulary carried 1:1 from 0x03: mondo 0x0301 -> 0x9101, loinc 0x0307 -> 0x9407, atc 0x030B -> 0x970B. The compartment becomes classid >> 24, a byte compare. Minted: 0x90 Reference (tree root) · 0x91 Disease · 0x92 Phenomenology · 0x94 Lab · 0x95 Imaging · 0x96 BiologicalProcess · 0x97 Substance · 0x98 Procedure · 0x9A Form. NOT minted, deliberately: 0x93 anatomy and 0x99 genetics are ALIASES onto the existing authorities 0x0A Anatomy and 0x0E Genetics (ogar-fma and ogar-cpic/q2 already consume those) — minting them here would be a second source of truth for one domain. 0x9E stays unclaimed: it is has_phenotype in ogar-ro's PREDICATE space, a different axis that overlaps these numbers. ZERO codebook rows, as with Ontology: the tree reserves ADDRESSES; the concepts stay plug-and-play in their producers. That is the same posture the 0x03XX revert restored this morning, applied to the successor blocks. Two-sided falsifiers: the nine resolve AND the three lookalikes (0x93/0x99/0x9E) stay Unassigned; the tree carries no codebook rows, with an anti-vacuity check that the codebook is populated at all. ogar-vocab 166; workspace green; clippy 0, fmt clean. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PFnYKqw6d7TTiB9cT8eFdK --- crates/ogar-encryption/src/lib.rs | 2 +- crates/ogar-render-askama/src/field_view.rs | 13 +- crates/ogar-vocab/src/lib.rs | 177 ++++++++++++++++++++ 3 files changed, 187 insertions(+), 5 deletions(-) diff --git a/crates/ogar-encryption/src/lib.rs b/crates/ogar-encryption/src/lib.rs index 41a4c9f7..ebebb1ef 100644 --- a/crates/ogar-encryption/src/lib.rs +++ b/crates/ogar-encryption/src/lib.rs @@ -62,7 +62,7 @@ pub use encryption::{aead, envelope, hash, kdf, sign}; // ── Root-level convenience aliases, mirrored from `encryption`'s own root // re-exports (`envelope::{seal, open}` plus the envelope's error/parameter // types), so callers that used the upstream crate's short paths keep them. -pub use encryption::{open, seal, EnvelopeError, KdfParams}; +pub use encryption::{EnvelopeError, KdfParams, open, seal}; // ── The platform-CSPRNG-unavailable error, mirrored from `encryption`'s // crate root. diff --git a/crates/ogar-render-askama/src/field_view.rs b/crates/ogar-render-askama/src/field_view.rs index c5f1d286..9fbd6fda 100644 --- a/crates/ogar-render-askama/src/field_view.rs +++ b/crates/ogar-render-askama/src/field_view.rs @@ -217,7 +217,10 @@ mod tests { // The surface is addressed by class + concept + key. assert!(src.contains("data-class-id=\"0x0102\""), "{src}"); - assert!(src.contains("data-concept=\"commercial_document\""), "{src}"); + assert!( + src.contains("data-concept=\"commercial_document\""), + "{src}" + ); assert!(src.contains("data-key=\"0801000301020304\""), "{src}"); // Each field carries its POSITION (layout address) — including the // wide position past 63. @@ -265,7 +268,10 @@ mod tests { assert!(!src.contains("