Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

0027: Unit names and recorded registry guidance

An explicit esdieff.expanded.units/1 assessment adds unit-spelling/1 and unit-registry-guidance/1 to the immutable eight initial areas. It examines final effective Full data descriptions, including distinct consuming coordinates after inheritance and refinement. Source preflight and retained diagnostics do not define the observation population. Independent findings survive unresolved composition, critical features and operational limits, following ADR 0020: Owned effective views and nearest origins and ADR 0023: Supplied global composition and dependency scope. Direct items do not acquire Full unit meaning through an opaque donor; independently explicit Full alternatives retain their established meaning.

RFC 9880 Section 4.7 distinguishes ordinary SenML names from URI names by a colon, and prohibits the unit-subnamespace URN except for a unit name containing a colon. Esdieff inverts Section 7.3’s index encoding once to establish the represented-symbol guard. This interpretation is unit-index-mapping/1, not URN equivalence or assignment. Valid optional RFC 8141 r/q/f components remain separate from that guard. A literal slash violates the Section 7.3 pchar mapping; an encoded pchar has no invented overencoding error. Unestablished nonempty UTF-8 meaning leaves the unit-specific conclusion unfinished. Located replacement advice preserves exact case and scale and is conditional on the intended unit; it never rewrites the declaration or discards suffix meaning.

Literal urn and ietf recognition ignores ASCII case. Noncanonical params or unit marker case is deferred under unit-marker-identity/1: RFC 2648’s template says the whole ietf URN is case insensitive, while RFC 3553 requires exact case-sensitive params comparisons. Encoded markers are separately unestablished identity. Neither case ambiguity nor encoded-marker recognition authorizes normalization. RFC 8141 Section 3.1 forbids decoding NSS escapes for general URN equivalence.

Recognized unit URNs distinguish index defects from optional-component grammar. Empty or non-pchar-first r/q components receive unit.urn_components_syntax, an error grounded in RFC 8141 Section 2. An ordinary top-level question mark receives unit.urn_delimiter_advice, preserving that section’s qualified SHOULD processor recommendation as advice. Question marks within valid r/q/f components remain data. Rejected components and ordinary query delimiters establish no represented symbol, replacement or registry query; a completed classification leaves definition and assignment knowledge unestablished.

Registry guidance uses all 67 SenML and 39 Secondary Units positives from the recorded IANA XML edition, with all nine legacy flags retained. Exact direct symbols are neither trimmed, case folded nor percent decoded. A dated positive is scoped membership evidence; a completed miss finishes qualified guidance while current registration remains unknown. A represented-symbol match does not certify a URN assignment. The request’s RecordedRegistryPolicy permits recorded evidence by default or honestly withholds it according to an embedding’s evidence policy. Withholding preserves independent spelling findings and reports needed evidence as request-unavailable with caller_withheld, rather than pretending the compiled table is physically absent. This follows ADR 0002: Recorded standards baseline.

The borrowed unit summary counts final effective observations once. The four lookup outcomes are disjoint; legacy is a positive subset and URI names are orthogonal. Actual consultation, query completion and admitted evidence remain distinct. Section-specific metadata identifies each extracted table; source_edition identifies their common raw XML without claiming both sections were consulted. No observation means Absent, interrupted work before a comparison fabricates no record, and fixed owner failure reports unavailable/null counts. Finite report admission and one precharged operation allowance preserve these meanings even when every optional detail is omitted, following ADR 0009: Bounded processing and reporting and ADR 0011: Machine-readable report contracts. See the unit contract for bounds and callers.

Considered Options

A symbol whitelist would reject permitted URI names and turn dated misses into false current-negative registration claims. Normalizing every URN would conflate represented-index interpretation with identity and hide the namespace case conflict. An arbitrary caller snapshot would broaden ownership, update and trust contracts without the need served by explicit withholding. Per-name mandatory summaries would amplify storage; one fixed owner retains trustworthy aggregate observations while located findings and replacements remain optional. Smaller admission tied to renderer placement would couple semantic truth to fallback lifetimes; two complete extension DTO generations keep the independently charged mandatory boundary stable.

One combined index/component diagnosis would give slash-encoding instructions for a correct index with a malformed suffix. Treating the ordinary question-mark recommendation as a mandatory component error would also hide its SHOULD qualification; separate grammar errors and delimiter advice preserve those bases.