Content Addressing

Content addressing is the foundational principle of UOR: an object is identified by what it is, not where it is. The UOR Content Addressing namespace formalizes this with the Element class and the ContentAddressed interface.

The Universal Address Space

Every object in UOR has a canonical address derived from its content. The address space is grounded in the byte ring Z/(2^8)Z at Witt level W32. An address is a point in this ring (or a tuple of ring elements for higher-dimensional data), making every UOR identity a statement about ring arithmetic.

The UniversalAddress class is the root of the address hierarchy. Every addressable object implements the Identifiable interface, which requires a content hash that uniquely identifies the object's algebraic content.

Content vs. Location

Traditional systems identify objects by location: a URL points to a server, a file path points to a disk sector. Content addressing inverts this: the identifier is the content (or a hash of it). This provides three guarantees:

  1. Deduplication -- identical content has identical addresses, regardless of where it is stored.
  2. Verification -- given an address and a datum, anyone can check whether the datum matches the address by recomputing the hash.
  3. Portability -- addresses are independent of storage location, network topology, or naming authority.

Addresses and the Ring

The address space is grounded in the The Ring Substrate -- specifically the byte ring Z/(2^8)Z at Witt Levels W32. The address property maps every identifiable object to its position in the universal address space.

The ring provides the algebraic structure that makes content addressing more than just hashing. Ring operations (addition, multiplication, negation, bitwise complement) act on addresses, and the dihedral group D_{2^n} generated by these operations structures the space of all content-addressed objects.

Connection to the PRISM Pipeline

Content addressing lives in the Define stage of the PRISM pipeline. The UOR Content Addressing namespace is a kernel-space namespace that establishes what exists before the Resolve stage determines what type it has. The Site Bundle Semantics bundle structure overlays typed meaning onto the address space defined here, and the The Partition Decomposition decomposes addresses into disjoint classification sets.