# ASL/INDEXES/1 -- Index Taxonomy and Relationships Status: Draft Owner: Architecture Version: 0.1.0 SoT: No Last Updated: 2025-01-17 Tags: [indexes, content, structural, materialization] **Document ID:** `ASL/INDEXES/1` **Layer:** L2 -- Index taxonomy (no encoding) **Depends on (normative):** * `ASL/1-CORE-INDEX` * `ASL-STORE-INDEX` **Informative references:** * `ASL/SYSTEM/1` * `TGK/1` --- ## 0. Conventions The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, and **MAY** are to be interpreted as in RFC 2119. ASL/INDEXES/1 defines index roles and relationships. It does not define encodings or storage layouts. --- ## 1. Purpose This document defines the minimal set of indexes used by ASL systems and their dependency relationships. --- ## 2. Index Taxonomy (Normative) ASL systems use three distinct indexes: ### 2.1 Content Index Purpose: map semantic identity to bytes. ``` ArtifactKey -> ArtifactLocation ``` Properties: * Snapshot-relative and append-only * Deterministic replay * Optional tombstone shadowing This is the ASL/1-CORE-INDEX and is the only index that governs visibility. ### 2.2 Structural Index Purpose: map structural identity to a derivation DAG node. ``` SID -> DAG node ``` Properties: * Deterministic and rebuildable * Does not imply materialization * May be in-memory or persisted ### 2.3 Materialization Cache Purpose: record previously materialized content for a structural identity. ``` SID -> ArtifactKey ``` Properties: * Redundant and safe to drop * Recomputable from DAG + content index * Pure performance optimization --- ## 3. Dependency Rules (Normative) Dependencies MUST follow this direction: ``` Structural Index -> Materialization Cache -> Content Index ``` Rules: * The Content Index MUST NOT depend on the Structural Index. * The Structural Index MUST NOT depend on stored bytes. * The Materialization Cache MAY depend on both. --- ## 4. PUT/GET Interaction (Informative) * PUT registers structure (if used), resolves to an ArtifactKey, and updates the Content Index. * GET consults only the Content Index and reads bytes from the store. * The Structural Index and Materialization Cache are optional optimizations for PUT. --- ## 5. Non-Goals ASL/INDEXES/1 does not define: * Encodings for any index * Storage layout or sharding * Query operators or traversal semantics