Skip to content

Local traces and workflow provenance

The main manuscript §3 and SI S4–S5 separate an analytical statement from the wider computational workflow. A concise pipe sits above source-qualified nouns, configured transformations, state, trace, source queries, provenance, fixtures, QA, and tests. Decision context remains outside software authority. These layers let a reviewer descend into the evidence beneath the expression.

Local record boundary

The semantic model owns the state vocabulary and inspection methods. A trace covers completed stages in one pipe. Provenance also identifies source inputs, derivations, environment and work before pipe() or after unwrap(). Those wider records need explicit retention.

Branches require separate records

In Working Lands, temperature and precipitation each produce a condition in their own pipe. The final pipe receives the unwrapped conditions, combines them, and reduces time. It records overlap definitions and exact alignment, but does not automatically merge both complete upstream histories.

Object to retain Accompanying record
Temperature branch Source query, units, quantile parameters, messages, state transitions
Precipitation branch Source query, units, inclusive threshold, messages, state transitions
Final overlap and mean Selected variables, overlap definition, alignment requirement, reduction dimension, final state
Percent presentation Multiplication by 100 after unwrapping, recorded in the notebook or project

Retaining only the final pipe loses part of the analytical argument. SI Table S17 specifies these record types; it does not provide the exact serialized outputs. The worked protocol keeps that evidence boundary explicit.

User callables and ordinary arrays

An ordinary callable can participate without subclassing or registration. apply forwards the current object to user code and infers output state from the returned public object. Values, dimensions, and shape are controlled by that callable. Its scientific intent is not validated by a maintained verb contract, and the trace does not archive its source code or implementation revision. Project provenance must retain those identifiers and tests.

Nouns and conditions remain ordinary xarray objects. NumPy or Dask execution belongs to the underlying stack when the operation permits it. A lazy array does not demonstrate bounded remote transport. Record transport behavior separately from array evaluation.

Use runtime identity to record the version, imported path, artifact kind, and available Git identity. A semantic version alone cannot distinguish rc3 from a later checkout or stale kernel. That report also does not archive the rest of the environment.

Continue with custom verbs, provenance, and submission evidence.

Source: main, pp. 5–7 and SI, pp. 5–9.