Skip to content

EnVar microschema · class

Provenance Chain

ProvenanceChain

The ordered list of all upstream ToolRuns whose outputs were inputs to this run, terminating in a typed root. Patterned after W3C PROV (prov:wasDerivedFrom, prov:wasGeneratedBy).

3 fields 0 core

URI: prov:Bundle

ReferencesToolRun

Core Conditionally core Recommended Optional
Recommended Strongly encouraged 2 fields
Optional Include when available 1 field
Chain Compatibility Assertionsoptional

chain_compatibility_assertions · range String · cardinality * · multivalued

These are notes saying "step B was built to accept what step A produces" — like declaring that a plug and a socket follow the same standard, so a checker can catch mismatched pairs automatically.

Declarations that two chain steps are compatible (e.g. daymet@1.0.0 expects geocoder@>=3.0.0 output column schema). Optional but enables strict-mode validation.

Example

None

Why it matters & mappings

Version bumps in one chain step can silently break the assumptions of the next (e.g. a changed output column schema); explicit compatibility declarations make such mismatches machine-checkable in strict mode instead of surfacing later as wrong values.

Full field reference — every slot, cardinality & inheritance
Field Name Tier Cardinality / Range Description
Provenance Chain Steps provenance_chain_steps recommended *
ToolRun
Ordered list of upstream ToolRuns, from oldest to most recent, whose output...
Provenance Chain Terminus Type provenance_chain_terminus_type recommended 0..1
ProvenanceChainTerminusEnum
The kind of root of the chain
Chain Compatibility Assertions chain_compatibility_assertions optional *
String
Declarations that two chain steps are compatible (e
Diagram & LinkML source
 classDiagram
    class ProvenanceChain
    click ProvenanceChain href "../../classes/ProvenanceChain/"
      ProvenanceChain : chain_compatibility_assertions

      ProvenanceChain : provenance_chain_steps





        ProvenanceChain --> "*" ToolRun : provenance_chain_steps
        click ToolRun href "../../classes/ToolRun/"



      ProvenanceChain : provenance_chain_terminus_type





        ProvenanceChain --> "0..1" ProvenanceChainTerminusEnum : provenance_chain_terminus_type
        click ProvenanceChainTerminusEnum href "../../enums/ProvenanceChainTerminusEnum/"



name: ProvenanceChain
annotations:
  domain_of_use:
    tag: domain_of_use
    value: environmental_exposure
description: The ordered list of all upstream `ToolRun`s whose outputs were inputs
  to this run, terminating in a typed root. Patterned after W3C PROV (`prov:wasDerivedFrom`,
  `prov:wasGeneratedBy`).
title: Provenance Chain
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://www.w3.org/TR/prov-o/
- https://www.w3.org/TR/prov-primer/
rank: 1000
attributes:
  provenance_chain_steps:
    name: provenance_chain_steps
    annotations:
      tier:
        tag: tier
        value: recommended
      justification:
        tag: justification
        value: A value like a daily temperature is usually the end of several runs
          (geocode, then extract); without the ordered steps a consumer can verify
          only the last hop, and any upstream error is invisible. The chain lets anyone
          walk the full derivation back to its root.
      explanation:
        tag: explanation
        value: A step-by-step history of every program run that led to this data,
          oldest first — like a parcel's tracking history showing each station it
          passed through on the way to you.
      covered_by:
        tag: covered_by
        annotations:
          omop_gaia:
            tag: omop_gaia
            annotations:
              extent:
                tag: extent
                value: partial
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: gaia_catalog/meta_etl_*.json (ETL recipe) + gaia_db/spatial_join_log.txt
                  (SQL NOTICE lines)
              note:
                tag: note
                value: 'Gaia''s ETL descriptor plus the spatial-join log capture upstream
                  steps, but not as an ordered per-run W3C-PROV chain. Conservative:
                  partial.'
          degauss:
            tag: degauss
            annotations:
              extent:
                tag: extent
                value: absent
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: DeGAUSS emits no ordered upstream-run chain on its native outputs.
          amadeus:
            tag: amadeus
            annotations:
              extent:
                tag: extent
                value: absent
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: No native Amadeus file records an ordered upstream-run chain.
          cher:
            tag: cher
            annotations:
              extent:
                tag: extent
                value: partial
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: dataset_lineage table (parent-child links) + lineage_notes
              note:
                tag: note
                value: C-HER's dataset_lineage links parent and child resources but
                  is a dataset-lineage graph, not an ordered per-run W3C-PROV tool
                  chain.
          codata:
            tag: codata
            annotations:
              extent:
                tag: extent
                value: out_of_layer
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: Ordered tool-run provenance is instance-layer; out of scope
                  for CODATA.
    description: Ordered list of upstream `ToolRun`s, from oldest to most recent,
      whose outputs were inputs to this run.
    title: Provenance Chain Steps
    examples:
    - description: a single upstream geocoding step preceding the daymet run
      object:
        tool_name: geocoder
        tool_version: 3.3.0
        run_timestamp_utc: '2026-05-23T14:02:11Z'
        output_file_sha256: 5b6c7d8e9f0a...
    from_schema: https://w3id.org/linkml/microschemas/envar
    see_also:
    - https://www.w3.org/TR/prov-o/
    owner: ProvenanceChain
    domain_of:
    - ProvenanceChain
    range: ToolRun
    multivalued: true
    inlined: true
    inlined_as_list: true
  provenance_chain_terminus_type:
    name: provenance_chain_terminus_type
    annotations:
      tier:
        tag: tier
        value: recommended
      justification:
        tag: justification
        value: A chain that just stops is unverifiable — stating whether it ends at
          a raw source download, synthetic data, or a pre-existing curated dataset
          tells consumers what kind of trust the root deserves, and makes the no-orphaned-steps
          validation rule checkable.
      explanation:
        tag: explanation
        value: This says what the very first link of the history is — freshly downloaded
          raw data, simulated data, or an existing curated dataset. Different starting
          points deserve different levels of scrutiny.
      covered_by:
        tag: covered_by
        annotations:
          omop_gaia:
            tag: omop_gaia
            annotations:
              extent:
                tag: extent
                value: absent
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: Gaia's meta_etl points at raw source downloads but has no typed
                  chain-terminus field.
          degauss:
            tag: degauss
            annotations:
              extent:
                tag: extent
                value: absent
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: DeGAUSS carries no typed provenance-chain terminus.
          amadeus:
            tag: amadeus
            annotations:
              extent:
                tag: extent
                value: absent
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: Amadeus carries no typed provenance-chain terminus.
          cher:
            tag: cher
            annotations:
              extent:
                tag: extent
                value: absent
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: C-HER's lineage graph has no typed terminus field on the chain.
          codata:
            tag: codata
            annotations:
              extent:
                tag: extent
                value: out_of_layer
              status:
                tag: status
                value: asserted
              where:
                tag: where
                value: no column
              note:
                tag: note
                value: Chain-terminus typing is instance-layer; out of scope for CODATA.
    description: The kind of root of the chain.
    title: Provenance Chain Terminus Type
    examples:
    - value: raw_source_download
    from_schema: https://w3id.org/linkml/microschemas/envar
    owner: ProvenanceChain
    domain_of:
    - ProvenanceChain
    range: ProvenanceChainTerminusEnum
  chain_compatibility_assertions:
    name: chain_compatibility_assertions
    annotations:
      tier:
        tag: tier
        value: optional
      justification:
        tag: justification
        value: Version bumps in one chain step can silently break the assumptions
          of the next (e.g. a changed output column schema); explicit compatibility
          declarations make such mismatches machine-checkable in strict mode instead
          of surfacing later as wrong values.
      explanation:
        tag: explanation
        value: These are notes saying "step B was built to accept what step A produces"
          — like declaring that a plug and a socket follow the same standard, so a
          checker can catch mismatched pairs automatically.
    description: Declarations that two chain steps are compatible (e.g. `daymet@1.0.0`
      expects `geocoder@>=3.0.0` output column schema). Optional but enables strict-mode
      validation.
    title: Chain Compatibility Assertions
    examples:
    - object: daymet@1.0.0 expects geocoder@>=3.0.0 output column schema
    from_schema: https://w3id.org/linkml/microschemas/envar
    owner: ProvenanceChain
    domain_of:
    - ProvenanceChain
    range: string
    multivalued: true
class_uri: prov:Bundle

See Also

Identifier and Mapping Information

Annotations

property value
domain_of_use environmental_exposure

Schema Source

Mappings

Mapping Type Mapped Value
self prov:Bundle
native envar:ProvenanceChain