Section 11 · OES Spec
Data lineage and provenance
What allows another system to trust — or reproduce — the result.
Provenance is what turns an OES document from a snapshot into a research object. Borrowing from RO-Crate-style thinking, an experiment is more than a JSON blob: it points to specific datasets, queries, code versions, and exposure sources. The provenance block records those pointers and, optionally, hashes that let consumers detect tampering.
Fields
| Field | Type | Purpose |
|---|---|---|
| provenance.createdBy | object | Person or system that created the experiment record. |
| provenance.exportedBy | object | Person or system that exported it. |
| provenance.analysisGeneratedBy | string | Tool, notebook, warehouse job, or service. |
| provenance.dataSources | object[] | Tables, datasets, event streams. |
| provenance.queryIds | string[] | Warehouse job or query IDs. |
| provenance.codeVersion | string | Git commit or package version. |
| provenance.metricDefinitionVersion | string | Snapshot version of the metric definitions. |
| provenance.assignmentSource | object | Where assignment came from. |
| provenance.exposureSource | object | Where exposures came from. |
| provenance.resultHash | string | Optional hash of the result payload. |
| provenance.attachmentsHash | string | Optional hash of attached files. |