Skip to content

Temporal Semantics

Temporal semantics is the common contract used to compare time across direct ancient-DNA evidence, pollen context, and archaeology context. It keeps a numeric interval, a caveated estimate, a textual period, and an unresolved date from becoming equivalent simply because they appear in the same atlas.

The contract does not force every source into a shared chronology model. It provides a shared vocabulary for stating what each source can support and for refusing comparisons that would manufacture precision.

The Comparison Contract

Every temporal payload answers four distinct questions:

Field Question answered
evidence_class What kind of dating support exists?
precision_posture How precise is that support for this record?
comparability_posture May this record participate in numeric comparison?
temporal_window_key Which broad display window contains its midpoint?

The payload also preserves the summary label, BP bounds and midpoint, duration, source path and locator, original and normalized labels, comparison note, and uncertainty notes. A display window never replaces the source interval.

Comparability Postures

Posture Meaning Permitted use
numeric_interval numeric bounds with direct, sufficiently precise support interval filtering and overlap comparison
numeric_interval_with_caveat numeric bounds exist, but modeling or contextual ownership limits them comparison only with the caveat attached
contextual_label_only time is expressed as a period or textual label orientation and display, not numeric overlap
mixed_interval_and_context an aggregate combines numeric and contextual time support aggregate comparison with explicit mixed-support warning
unresolved no trustworthy comparable time representation exclusion from temporal scoring

Numeric fields alone do not authorize comparison. The posture must also be one of the numeric classes; this prevents a parsed number from overruling its evidence class.

Comparison Operations

Operation Required inputs Result boundary
interval overlap two numeric-comparable BP bounds overlapping or non-overlapping intervals at declared uncertainty
interval distance two numeric-comparable BP bounds distance between intervals, not between display midpoints
window filter numeric midpoint plus retained source bounds navigation subset, not contemporaneity
contextual grouping explicit labels and evidence roles shared descriptive context, not numeric order
mixed aggregate member-level postures and denominators aggregate with visible mixed-support warning

An operation must refuse inputs whose posture does not meet its contract. A textual period cannot enter interval arithmetic through an assumed lookup, and an unresolved date cannot be treated as zero or as outside every window.

flowchart LR
    Left["record A posture and bounds"] --> Operation{"requested comparison"}
    Right["record B posture and bounds"] --> Operation
    Operation --> Eligible{"both inputs eligible?"}
    Eligible -->|yes| Numeric["interval result with uncertainty"]
    Eligible -->|partial| Context["qualified contextual result"]
    Eligible -->|no| Refusal["explicit comparison refusal"]

Interval Arithmetic Contract

Canonical BP intervals are ordered from the younger, lower BP bound to the older, higher BP bound. For eligible intervals [a_start, a_end] and [b_start, b_end]:

Derived value Rule
overlap start max(a_start, b_start)
overlap end min(a_end, b_end)
overlap overlap start is less than or equal to overlap end
separation the younger interval's older bound is below the older interval's younger bound
midpoint rounded mean of one interval's bounds; navigation only
duration older bound minus younger bound

Touching endpoints count as overlap at the represented precision. Reversed source bounds are normalized before comparison; missing bounds do not become zero-width intervals. The result inherits the weaker comparability posture of its inputs and retains both original intervals, because an overlap label alone cannot communicate width or uncertainty.

Three-State Comparison Logic

Temporal comparison has at least three outcomes, not a Boolean pair:

Outcome Required support Meaning
overlap both records are numeric-comparable and their intervals intersect compatible time support at the declared precision
separated both records are numeric-comparable and their intervals do not intersect numeric non-overlap at the declared precision
not comparable either record lacks an eligible numeric posture no numeric temporal conclusion is available

not comparable must remain distinct from separated. Collapsing both into false would turn missing or contextual chronology into evidence of temporal absence. The same distinction applies to aggregates: an overlap rate needs the number of eligible pairs as its denominator, plus the number excluded as not comparable.

Comparison Results Are Evidence Records

A reusable temporal result preserves more than overlap: true:

Result member Why it is required
endpoint identities identifies the two governed objects being compared
chronology claim identities fixes which supported temporal statements were selected
original and normalized bounds permits the comparison to be reproduced and interpreted
comparability postures proves that both endpoints were eligible for the operation
operation and rule version distinguishes overlap, separation, windowing, and another declared test
outcome and uncertainty retains overlap bounds, separation, caveat, or explicit refusal
database revision ties the derived relation to the evidence state that produced it

If either chronology claim changes, the relation is stale even when its Boolean outcome happens to remain the same. Reuse therefore joins through the claim identities and recomputes the comparison rather than copying a previous label.

flowchart TD
    Pair["two records"] --> Eligible{"both numeric-comparable?"}
    Eligible -->|no| Unknown["not comparable"]
    Eligible -->|yes| Intersect{"intervals intersect?"}
    Intersect -->|yes| Overlap["overlap"]
    Intersect -->|no| Separated["separated"]

An atlas may display all three records together, but a temporal score must use only eligible comparisons and must report the refused share. Otherwise a source family with weak chronology can appear artificially precise merely because its unresolved records disappeared from the denominator.

For aggregate reporting, publish the candidate-pair count, eligible-pair count, overlap count, separated count, and not-comparable count. An overlap proportion without both the candidate and eligible denominators answers only how often already-comparable pairs overlapped; it does not describe temporal coverage of the collection.

Capability In The Checked-In Collection

Source family Records Numeric intervals Time-aware use
LandClim 492 site sequences 482 supporting pollen context at the sequence interval
Neotoma 200 sites 175 supporting pollen context where a site span exists
SEAD 2,172 normalized sites 0 archaeology context only in the current capture
RAÄ 761,917 published sites in the density source 0 coarse spatial archaeology context
SVAR 40,565 lakes 0 candidate-lake identity and location
boundaries 4 polygons 0 geographic framing only

Record volume is not temporal capability. The largest contextual collection in the table has no repository-owned numeric intervals, while the smaller pollen collections carry varying degrees of time support. A score or visual summary must use the declared posture, not infer evidentiary weight from row count.

From Source Date To Atlas Comparison

flowchart LR
    A[Source date or period] --> B[Family-specific interpretation]
    B --> C[Evidence class]
    B --> D[Precision posture]
    C --> E[Comparability posture]
    D --> E
    E --> F{Comparable numeric interval?}
    F -->|yes| G[BP interval and overlap]
    F -->|caveated| H[BP interval with warning]
    F -->|no| I[Context label or unresolved]
    G --> J[Temporal window for navigation]
    H --> J
    I --> K[Excluded from numeric scoring]

Broad navigation windows are assigned from a numeric midpoint:

  • recent and historical: 0–1000 BP;
  • Late Holocene: 1001–3000 BP;
  • Mid-Holocene: 3001–6000 BP;
  • Early Holocene and older: 6001+ BP;
  • unresolved when no numeric midpoint exists.

These bins make filtering understandable; they do not claim that records in the same bin are contemporaneous.

Temporal overlap itself is interval-aware. Two numeric rows can overlap even when their midpoints fall on opposite sides of a navigation boundary, and two rows in the same broad window can remain thousands of years apart. The window key supports browsing; the source bounds and comparability posture govern analysis.

For example, an animal sample interval of 2500–2200 BP and a pollen sequence interval of 2300–1800 BP overlap from 2300 to 2200 BP. Their midpoints alone would obscure that shared range. If the archaeology layer nearby carries only a textual period, it remains contextual beside the numeric overlap; it does not acquire the same interval.

Source-Family Differences Remain Visible

The checked-in collection currently carries different temporal capability by source family:

  • LandClim site sequences usually carry numeric BP windows and can contribute pollen context to time-aware comparison;
  • Neotoma includes many numeric site spans, but the review surface records uneven chronology-row capture and sites without BP ranges;
  • SEAD currently functions as a site-inventory context layer in the Sweden-facing capture and must not be treated as uniformly time-resolved;
  • RAÄ contributes spatial archaeology density without repository-owned time windows;
  • SVAR and boundary layers provide lake identity and geographic framing, not dated evidence;
  • human and animal aDNA can contribute sample-owned intervals when their chronology lineage and precision support it.

Spatial proximity therefore does not guarantee temporal overlap. Ranking can count a nearby record as time-aware only when both the candidate evidence and the context point have numeric bounds; unresolved or context-only time cannot increase an overlap count.

flowchart TD
    Candidate["candidate with reviewed time semantics"] --> Pair{"context record nearby?"}
    Pair -->|no| SpatialZero["no spatial support"]
    Pair -->|yes| Comparable{"both postures numerically comparable?"}
    Comparable -->|no| ContextOnly["spatial context only"]
    Comparable -->|yes| Bounds{"BP intervals overlap?"}
    Bounds -->|yes| TimeAware["time-aware contextual support"]
    Bounds -->|no| SpatialOnly["spatial support outside temporal interval"]

Auditing Cross-Source Time

data/source_spatiotemporal_posture_registry.json gives the governing path, record count, numeric-interval count, scoring posture, and caveats for each context source. Family-specific reviews remain authoritative for coverage details, including data/neotoma/review/temporal_review.json and data/sead/review/temporal_review.json.

For direct animal evidence, begin with the species-owned normalized/sample_records.json, use its project linkage to reach data/adna/governance/source_library/projects/<project-accession>/, and inspect the project's sample_chronology_evidence.json and sample_chronology_provenance.json. See chronology evidence for sample-level classification and spatiotemporal posture for the source-family comparison boundary.