onto-describe
The groupant beside onto/src/describe.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.
Facts
Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.
Components
| component | label | where |
|---|---|---|
| approximant | partial | approximant |
| ast | partial | syntax.json |
| composition | partial | composition |
| cost | partial | cost |
| descriptant | present | descriptant |
| invariant | partial | invariant |
| tests | executed bounded checks | tests |
Obernants
The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.
| id | type | label | where |
|---|---|---|---|
behavior_complement | behavior_complement | partial source derived model | behavior_complement |
reverse_reconstruction | reverse_reconstruction | partial source derived model | reverse_reconstruction |
resolution_order | resolution_order | partial source derived model | resolution_order |
field_fallback | field_fallback | partial source derived model | field_fallback |
completeness_projection | completeness_projection | partial source derived model | completeness_projection |
bounded_provenance | bounded_provenance | partial source derived model | bounded_provenance |
Parts
Model text
descriptant
onto-describe
resolve explicit synset→context-compatible core→bridge. describe follows first up edge at most12, obtains parts, chooses nonempty known core list before graph fallback then n/a/unknown; numeric fields core-only.13 flags record applicability/known; character properties printed separately.
Modeling epoch 2026-10-31
Prospective model saved before edits; nine existing sources read fully. Added bounded inline tests; store reader overflow repaired only after compiled old-code failing witness. No live corpus, teacher, model or database effects executed. Source syntax generated twice identically; partial lexical projection only.
approximant
Forward relation
resolve explicit synset→context-compatible core→bridge. describe follows first up edge at most12, obtains parts, chooses nonempty known core list before graph fallback then n/a/unknown; numeric fields core-only.13 flags record applicability/known; character properties printed separately.
Equations
filled(D)=Σ_i 1[app_i∧known_i], applicable(D)=Σ_i 1[app_i]. List field=core_known_nonempty ⊕ graph_nonempty ⊕ n/a ⊕ unknown, with ⊕ ordered fallback.
Domain
filled<=applicable; read-only. world_classes retains first class context and lexical output order.
Categorical behavior and effect boundaries have no validated percentage surrogate. Executable Rust approximant unsupported; 1/2/5/10% future caps require a useful metric first.
invariant
Invariant and domain
filled<=applicable; read-only. world_classes retains first class context and lexical output order.
Limits
Finite synthetic fixtures are not semantic proof. Public invalid indices, allocation failures, huge counters, environment races and live effects outside explicit checks remain unverified.
cost
Cost approximation
Graph resolution/parts +17 property calls; chain<=12 and graph list<=12 per relation. Completeness O(13D), output-sized memory.
Symbolic costs only; no timing or throughput claim.
composition
Composition
filled(D)=Σ_i 1[app_i∧known_i], applicable(D)=Σ_i 1[app_i]. List field=core_known_nonempty ⊕ graph_nonempty ⊕ n/a ⊕ unknown, with ⊕ ordered fallback.
Graph builder→store shape check→Kb; Kb→query→bridge/describe/pron. hs Parsed→hsmap preference/scoring/gates. Core SynMap last-duplicate vs Graph first-duplicate requires unique synset keys for interchangeable lookup. Syntax children below share parent projection; exact byte ranges bind original source semantics.
-
resolution: resolve(w)=explicit_id(w) or context_core(w) or bridge(w)
-
field-render: For lists choose core-known-nonempty then graph then n/a then unknown; numbers core only;13 flags
models
behavior_complement
Nonempty known core excludes graph fallback; character-only seeds cannot fill props. Missing concept excludes Some(Desc).
reverse_reconstruction
Same bounded chain/parts/flags admit arbitrary omitted alternatives; aggregate category counts admit many Desc assignments and lose texts/concepts.
resolution_order
Explicit synset overrides lemma core; ambiguous unmatched core context falls through.
field_fallback
Known nonempty→graph→not applicable→unknown; empty Known risks counts known none.
completeness_projection
filled=Σ(app&&known), applicable=Σapp; empty aggregates output headers.
bounded_provenance
12 first ancestors/12 graph items are presentation caps, not exhaustive proof.
tests
Actual-code checks
describe::wave29_tests::graph_fallback_completeness_and_missing
Evidence 2026-10-31
Each selected test passed twice debug and twice release after exact mutation restoration (15 named suite checks; all four sorted outcome sets equal, exits0). Compiled source control: negative-describe.log (compiled source mutation assertion failure101). Controls compile successfully and fail an assertion with exit101. Store control is the original unsafe length addition before repair.
Finite graph/token/temp fixtures; public invalid states and unselected branches not exhausted
Whole CLI, live teacher/corpus/model/prior loading, filesystem failure/durability and huge inputs were not executed. No exact wrapper is advertised as a percentage surrogate. Added test blocks rustfmt-formatted independently; unrelated source formatting preserved. Strict broad Clippy not repeated: existing dependency/source warnings are outside this work.
This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/onto/src/describe.rs.groupant/