Skip to main content
A Facet is a summary or annotation cryptographically bound to a cell. Facets enable multiple views of the same content without modifying the original RawContent.

Facet IDs

Facet IDs are fixed in v1 (6 facet IDs: 0-5):

Facet structure

Key components:
  • ID — Facet identifier (0-5)
  • DerivedContent — The facet’s content
  • LastRotated — When this facet was last activated
  • DerivationHash — Hash of the source content for integrity verification

Facet lifecycle

Creation

Automatic on PutCell. Facet 0 holds RawContent; other facets are lazy or derived.

Update

UpdateFacet succeeds only if DerivationHash matches the current RawContent hash. Otherwise:
  • Reject the update, or
  • Create a seam and a new cell
This hash discipline ensures facets are always derived from the correct source content.

Invalidation

RawContent is immutable, so any change creates a new cell linked by seam. Old cells retain their facets for historical reference.

Rotation

A simple pointer flip on ActiveFacet. LastRotated tracks freshness for cache management.

Creating a facet

Updating a facet

If the hash doesn’t match, UpdateFacet returns an error.

Retrieving a facet

Iterating facets for a cell

Walking ring facets

Load facets for all cells on a ring:

Active facet

Each cell has an ActiveFacet field (0-5) indicating which facet is currently selected for display. Rotate between facets to show different views:

Use cases

Semantic summarization

Facet 1 holds generated summaries of long content:
  • Original content in facet 0 (immutable)
  • Summary in facet 1 (derived)
  • Switch between full text and summary based on budget

Conflict tracking

Facet 2 auto-populates when seams are created:
  • Stores conflict notes and resolution history
  • Visible when the cell is involved in a contradiction

Temporal views

Facet 3 mirrors the cell’s validity window:
  • Useful for time-bounded queries
  • Helps with MVCC snapshot filtering

Custom lenses

Facet 5 is reserved for application-specific views:
  • Domain-specific annotations
  • User-defined perspectives
  • Project-specific transformations

See also

  • Cells — Core data units
  • Seams — Contradiction and supersession markers
  • Context assembly — Budgeted context with facet selection