Time-Travel

Navigate QNTX's attestation history to understand how knowledge evolved.

Core Concept

Every attestation has a timestamp (✦) and causal links (⟶), creating a complete navigable history of system intelligence.

What Makes It Unique

Primary Use Case

Watch knowledge evolution - how the system's understanding developed over time through continuous learning cycles.

Temporal Dimensions

Visual Concept: Z-Axis Time Layering

AI Integration

Technical Foundation

Future: Self-Describing Temporal Schemas

Vision: Ingesters attest their own temporal structure, making QNTX fully domain-agnostic.

# Ingestor declares temporal schema via attestations
ingester:example -> has_temporal_field -> "start_time"
ingester:example -> has_duration_field -> "duration_months"
ingester:example -> temporal_unit -> "months"
ingester:example -> temporal_format -> "RFC3339"

Benefits:

This extends the attestation abstraction to time itself, completing QNTX's domain-agnostic vision.

Related Vision

Roadmap

Phase 1: Temporal Range Queries

Phase 2: Semantic Awareness (planned)


Reference (XTDB temporal SQL): XTDB v2's bitemporal query extensions (FOR VALID_TIME AS OF, FOR SYSTEM_TIME AS OF) are a well-designed ergonomic reference if ATS temporal expressions grow beyond since/until/on/between. XTDB distinguishes valid time (when the fact was true) from system time (when the system recorded it) — a distinction that maps to attestation time vs. ingestion time.

Footnote (OverFilter): Duration aggregation (over 5y) was explored as a query-time accumulation mechanism — summing duration predicates across attestations per subject to answer "who has over N years of X?" It was removed: the complexity of plugin-provided numeric predicates, unit conversion, and temporal windowing didn't justify itself. If temporal accumulation returns, it belongs in a materialized view or plugin, not the query path.

Footnote (QueryExpander): Natural language semantic expansion ("is engineer"role=engineer OR title=engineer) was explored as a Go interface (QueryExpander) that domain-specific implementations could use to expand predicates into semantic equivalents. It was removed: the abstraction added complexity without a concrete implementation beyond NoOp. If semantic expansion returns, it belongs as attestation-based expansion rules (expansions are themselves attestations) or as a plugin service (e.g., MeiliSearch via ADR-015), not baked into the query path.