Skip to content

Data Architecture Handbook

Bijux Pollenomics uses a version-controlled evidence database. Its records are governed files whose history, schemas, identifiers, and publication effects can be inspected together. It is not a database service hidden behind the maps, and the maps are not the database.

Evidence Layers

Layer Governing question Typical contents Authority limit
captured What material entered the repository? payloads, retrieval metadata, upstream identity, license, and hashes does not imply correct interpretation
normalized How is source meaning represented consistently? typed fields, stable identifiers, geometry, dates, and source-native values does not imply publication fitness
reviewed What can this record support for a named use? conflict, precision, coverage, substitution, caveat, and exclusion decisions remains product- and claim-specific
published Which qualified records are exposed? manifests, rows, maps, tables, rankings, warnings, and citations cannot redefine upstream facts
flowchart LR
    Captured["captured source"] --> Normalized["normalized evidence"]
    Normalized --> Reviewed["reviewed posture"]
    Reviewed --> Decision{"named product contract"}
    Decision -->|admit| Published["published member"]
    Decision -->|qualify| Published
    Decision -->|exclude| Negative["exclusion or recovery evidence"]
    Published -. "never governs upstream facts" .-> Reviewed

Evidence Preparation Transaction

Preparing one source family is a sequence of accountable state changes, not a single import:

flowchart LR
    Receipt["source receipt<br/>identity + terms + content"] --> Parse["source-preserving parse"]
    Parse --> Normalize["typed objects + stable identities"]
    Normalize --> Relate["evidence-backed relations"]
    Relate --> Curate["precision + conflict + missingness"]
    Curate --> Admit{"claim-specific admission"}
    Admit -->|member| Project["manifested projection"]
    Admit -->|non-member| Account["exclusion, refusal, or recovery"]
State change Required retained evidence
source receipt upstream identity, release or accession, retrieval method, terms, content identity, and failure state
parse source artifact, locator, source-native field, parser rule, and rejected-row accounting
normalization governed object identity, source value, normalized value, method, unit, and null semantics
relation construction typed endpoints, cardinality, evidence locator, method, and ambiguity posture
curation fact owner, competing claims, precision, decision, reason, and recovery condition
projection product identity, rule set, member and non-member inventories, warnings, and revision

The transaction may stop honestly at any boundary. Captured material can remain unnormalized; normalized objects can remain unreviewed; reviewed objects can remain outside a product. A later state cannot be used as evidence that an earlier missing authority exists.

Close A Preparation Transaction

A preparation run is accepted as evidence state only when its receipt accounts for both changed and unchanged meaning:

Receipt field Required evidence
input identity source release, retrieval or archive identity, configuration, and prior data revision
output identity governed roots, schema versions, manifests, and content digests
object diff added, removed, retained, merged, split, and superseded identifiers
semantic diff field meaning, units, null semantics, precision, taxonomy, and relation changes
decision diff new, changed, or invalidated conflicts, qualifications, admissions, and exclusions
population diff eligible, reviewed, admitted, non-member, and published counts by observation unit
dependent diff downstream products changed or shown unaffected through stable identities
verification focused validators, warnings, failures, and intentionally unexecuted broader lanes

Parser success and row totals cannot replace this receipt. A refresh with the same row count can still replace identities or semantics; a refresh with fewer published members can be more correct when new evidence exposes a conflict.

Three Contract Registries

The database is made legible by three cross-cutting registries:

Registry Responsibility
data/source_family_contracts.json declares each family's scientific role, lifecycle roots, example artifacts, and coverage metrics
data/source_fact_ownership_registry.json assigns recurring facts to one governing surface and lists downstream supporting copies
data/evidence_artifact_contracts.json defines project, paper, sample, species, atlas, and country artifact shapes

These registries answer different questions. A source-family contract says what a family contributes. Fact ownership says where disagreement is resolved. An artifact contract says which files must exist for a complete evidence unit.

Database Invariants

The file-backed design depends on invariants that are stronger than directory conventions:

Invariant Consequence
one fact, one owner repeated values resolve to a declared governing record rather than majority agreement
source and interpretation remain distinct normalization can be challenged without losing what the source said
derivation moves downstream a map, report, or species view cannot silently feed facts back into project evidence
precision never increases without evidence formatting, geocoding, or normalization cannot manufacture certainty
negative states remain typed missing, unresolved, excluded, deferred, and outside-scope records retain different meanings
membership is product-specific admission to one scope or surface does not grant universal publication fitness
every public member is reversible product identity can be traced to evidence, decision, captured artifact, and upstream identity
flowchart TB
    Source["source-native fact"] --> Owner["governing repository record"]
    Owner --> Views["normalized and domain views"]
    Views --> Decision["product-specific decision"]
    Decision --> Member["published member"]
    Member -. trace only .-> Owner
    Views -. never redefine .-> Source

These invariants let the repository use ordinary versioned files while still behaving like an evidence database: ownership, lineage, constraints, and revision effects remain inspectable.

Database Model Boundaries

The architecture separates three kinds of structure that are easy to conflate:

Structure Defines Does not define
directory lifecycle where captured, normalized, reviewed, and published artifacts belong object identity or scientific joins
object and relation model typed identities, cardinality, fact ownership, and supported relations fitness for a particular publication
revision and state model accepted database snapshot, claim states, supersession, and causal consistency stronger evidence than the governing records contain

Directory proximity never grants authority. A review file beside normalized rows may evaluate them without owning their source facts; a final/ input may be downstream-complete while remaining subordinate to its sample evidence.

Revision Consistency

A Git revision is the database snapshot. It is coherent only when authorities, required companions, and derived consumers describe the same evidence state. Checking in one regenerated table while leaving its manifest, traceability, or review surface behind is equivalent to a partial database transaction.

flowchart TD
    Change["authority change"] --> Companions["required contract companions"]
    Change --> Descendants["affected derived members"]
    Companions --> Snapshot{"coherent revision?"}
    Descendants --> Snapshot
    Snapshot -->|yes| Commit["reviewable database snapshot"]
    Snapshot -->|no| Partial["partial state; do not publish"]

Review consistency across four dimensions:

Dimension Consistency question
identity do manifests, rows, traceability, and exclusions name the same governing members?
semantics do units, roles, precision, and null states agree with their owners?
membership do additions and removals have an admission, scope, or recovery explanation?
accounting do totals equal their declared member populations without mixing observation units?

File timestamps and successful rendering are not consistency evidence. The revision must preserve causal order: authority first, required companions with it, derived consumers from the same state, and public claims no stronger than the resulting review posture.

Source-Family Topology

Family Evidence role Characteristic reviewed state Public use
LandClim primary pollen context freshness, coverage, and publication posture world and regional pollen layers
Neotoma primary pollen context site-level temporal comparability world and regional pollen layers
SEAD contextual archaeology access, temporal, and normalization legibility environmental archaeology context
RAÄ contextual archaeology Sweden-specific coverage and spatial interpretation Sweden archaeology context
SVAR sampling and hydrography lake identity, coverage, and ranking inputs Sweden lake products
boundaries geographic framing scope and geometry fitness world, regional, and country selection
AADR direct human aDNA sample identity, chronology, and locality human country and regional layers
animal aDNA direct animal aDNA project, paper, supplement, sample, place, time, coordinate, and archive integrity admitted animal atlas and country members

Role is preserved across shared products. An archaeology or boundary layer can frame direct evidence without inheriting its claim strength.

Animal Evidence Graph

Animal evidence is modeled as linked authorities because one publication can cover multiple projects, one project can contain multiple sites, and one site can contain samples with different chronologies.

flowchart TB
    Paper["paper registry"] --> Supplement["supporting-material manifest"]
    Project["project registry"] --> Bundle["project source bundle"]
    Supplement --> Bundle
    Bundle --> Master["sample master"]
    Master --> Site["sample-site relation"]
    Site --> Locality["locality evidence"]
    Master --> Chronology["chronology evidence"]
    Locality --> Species["species-normalized record"]
    Chronology --> Species
    Species --> Admission["product admission"]

The graph prevents project locality, publication date, or archive metadata from being copied into every sample as if it were sample-owned evidence.

Curation Decisions

Curation is recorded whenever source material does not map mechanically to a claim. Typical decisions include:

  • connecting an archive project to a paper and its supporting materials;
  • reconciling source-native and repository-owned sample identifiers;
  • choosing whether a place is sample-owned, site-owned, project-level, or unresolved;
  • preserving reported chronology alongside its normalization basis and precision;
  • classifying a coordinate as source-supplied, resolved, approximate, substituted, region-only, or withheld;
  • admitting, qualifying, or excluding a record for one product.

The decision must retain its evidence owner and reason. A normalized value without that context is easier to consume but harder to trust.

Negative Evidence

Absence has several meanings:

State Interpretation
required artifact missing the evidence unit is structurally incomplete
governed field empty the source chain contains no defensible value
unresolved competing or insufficient support prevents a decision
excluded a known record fails a named product contract
outside scope the record may be valid but is not a member of this product

These states remain queryable. They are not collapsed into zero, false, or an invented value.

Traceability Invariant

A public feature must resolve through product membership, admission decision, governing evidence record, captured source, and upstream identity. A product that cannot make that traversal is incomplete even when its visible geometry looks precise.

Continue to the evidence database for the unified contract, the object and relation model for identities and cardinality, and the revision and state model for coherent snapshots and change semantics.