Skip to main content

Module canonical

Module canonical 

Source
Expand description

Canonical-tuple audit identity for fetched papers (ADR-0021 §1, ADR-0024).

Binding spec: docs/DECISIONS/0021-canonical-tuple-identity.md §1 (NORMATIVE shape + digest algorithm) and docs/DECISIONS/0024-canonical-ref-impl.md (implementation supersession).

§Algorithm (NORMATIVE)

canonical_digest := SHA256( source_type | 0x00 | source_id | 0x00
                          | resolver_profile | 0x00 | version_or_empty )

where | is byte concatenation, 0x00 is the single-byte field separator, and version_or_empty is the literal empty byte sequence when version is None (ADR-0021 §1 Slice 2 clarification — NO sentinel like "null" / "none" / "-").

The four source_type wire tokens fed into the digest match the lowercase variant names used by Ref’s tagged serde encoding: "doi", "arxiv". Future variants (Pmid, Handle, …) MUST use their lowercase variant name as the wire token.

Structs§

CanonicalRef
Four-tuple audit identity of a fetched paper (ADR-0021 §1).

Enums§

SourceType
Identifier-class tag for a CanonicalRef.