Expand description
uor_addr::sexp — the S-expression realization of UOR-ADDR
(ARCHITECTURE.md “Format-specific realizations” § uor-addr-sexp).
S-expression typed-input content-addressing under Rivest’s canonical
S-expression form, with the σ-projection bound to
prism::crypto::Sha256Hasher.
§Authoritative sources
- Canonical S-expressions — Ronald L. Rivest, S-expressions, May 4 1997 draft, archived at https://people.csail.mit.edu/rivest/Sexp.txt. I-D form at https://datatracker.ietf.org/doc/html/draft-rivest-sexp-00.
- SPKI canonical form citation — IETF RFC 2693 §3 SPKI Certificate Theory (https://datatracker.ietf.org/doc/html/rfc2693#section-3).
- SHA-256 σ-projection — NIST FIPS 180-4 (https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).
§Grammar
SExprValue ::= Atom(bytes) — symbolic atoms (UTF-8 bytes)
| Cons(SExprValue, SExprValue)
| NilThe wire-format input is canonical S-expression syntax — atoms as
<n>:<bytes> length-prefixed byte sequences (Rivest’s canonical
form), lists as parenthesized sequences, nil as (). The parser also
admits the Lisp-style sugared form (a b c).
§Canonicalization (ADR-060 streaming)
The realization no longer materializes a structurally-tagged byte
form. SExprCanon is a [prism::uor_foundation::pipeline::ChunkSource] over the
borrowed input that emits Rivest canonical bytes on demand — atoms as
<n>:<bytes>, lists as (s₁ s₂ … sₙ), nil as () — and ψ₉ folds
those chunks through the σ-axis. There is no input size, atom-width,
element-count, or nesting-depth ceiling.
Re-exports§
pub use model::AddressModel;pub use model::AddressModelBlake3;pub use model::AddressModelKeccak256;pub use model::AddressModelSha3_256;pub use model::AddressModelSha512;pub use model::AddressRoute;pub use pipeline::address;pub use pipeline::address_blake3;pub use pipeline::address_keccak256;pub use pipeline::address_sha3_256;pub use pipeline::address_sha512;pub use pipeline::AddressFailure;pub use pipeline::AddressOutcome;pub use pipeline::AddressWitness;pub use pipeline::VerifyError;pub use value::canonicalize;pub use value::SExprCanon;pub use value::SExprValue;pub use verbs::address_inference;pub use verbs::VERB_TERMS_ADDRESS_INFERENCE;pub use crate::resolvers::AddressResolverTuple;
Modules§
- model
sexp::AddressModel*— the sexp realization’sPrismModeldeclarations, one per admissible σ-axis (crate::hash). Each binds the sharedAddressResolverTupleψ-tower and the axis’s capacity profile (AddrBoundsfor the 32-byte axes,AddrBounds64for sha512).AddressModel(sha256) is the default.- pipeline
sexp::address— the S-expression realization’s public entry point.- value
SExprValue— the typed S-expression input handle (ADR-023 amended by ADR-060).- verbs
- S-expression realization’s ψ-chain content-address derivation verb (wiki ADR-024 + ADR-035 + ADR-036 + ARCHITECTURE.md “Common verb arena”).