Where the guarantee comes from
Provenance: A Latecomer
Run “data integrity,” “data consistency,” “data governance,” and “data provenance” through Google’s Ngram corpus, and ask when each of them entered use.

The four terms arrive in order. Integrity comes first, rising from the 1970s — the decade the relational model arrived — and dominating the vocabulary for the next four decades. Consistency follows in the 1980s and settles early at a modest level, where it stays. Governance and provenance don’t launch until the mid-2000s. Then governance climbs steeply enough to very nearly catch integrity by 2022, while provenance lifts only faintly: in the most recent data it still trails integrity by a factor of eight.
The relational model accounts for that gap. Codd and fifty years of database research talk about integrity and almost never about provenance, because the model solved the problem at a deeper level. Provenance became a named discipline in the 2000s in workflow and e-science computing (Buneman 2001; the W3C PROV working group from 2011), where the substrate could not enforce relationships between artifacts. If your results are files produced by scripts, nothing stops you from holding a result whose inputs are gone. So you keep a record beside the data describing what happened, and you work hard to keep that record honest.
Provenance is the complete record of a data entity’s origin: what produced it, from what inputs, under what conditions, and through what chain of transformations.
Customers routinely expect that definition to cover two things it leaves out: the scientist’s reasoning, and governance.
- Provenance records the how, and stops short of the why. The standards ask who, when, and by what means, and so does 21 CFR Part 11. Someone who asks for provenance and means “capture why the scientist chose this analysis” is asking for a different system. Say so early.
- Governance is the wider regime — access, cataloging, audit, retention — and provenance is one component of it. DataJoint produces the authoritative provenance that a governance system consumes.
The literature also splits provenance into prospective, the declared plan, and retrospective, the observed run (Freire 2008; Lim 2010). Integrity is preventive. Provenance tooling is forensic. Prevention and forensics are different guarantees, and much of the confusion in this field comes from buying one and assuming the other.sic. Prevention and forensics are different guarantees, and much of the confusion in this field comes from buying one and assuming the other.
The Standards Landscape
Three families of systems account for most of what the field means by provenance tooling. They are also how the rest of the world will phrase its questions.
W3C PROV is the vocabulary: Entities (a thing), Activities (something acting on entities over time), Agents (who bears responsibility), joined by relations like used, wasGeneratedBy, wasDerivedFrom, and wasAttributedTo.

OpenLineage is the same shape recast for data engineering — runs of jobs that read and write datasets — and it is the lingua franca of Airflow, Spark, and Marquez. Governance catalogs — Unity Catalog, Collibra, Alation, Purview, DataHub — record table and column lineage across the enterprise.
Then there is compliance, which is where pharma actually lives. ALCOA+ — attributable, legible, contemporaneous, original, accurate, plus complete, consistent, enduring, available — and 21 CFR Part 11, with audit trails that no one, administrators included, is permitted to delete. ALCOA+ is defined in PIC/S PI 041-1 and in the UK MHRA’s GXP data integrity guidance; Part 11 is 21 CFR Part 11, Electronic Records; Electronic Signatures. These are obligations of a deployment and a process, never features of a library.
In genomics the same shape appears again in the workflow standards of the Global Alliance for Genomics and Health (GA4GH), and in data science in the run-metadata stores that record inputs, parameters, and outputs for each run.
What every one of these families has in common is that the record is kept beside the data. Keeping it there is the only option available when the substrate cannot do better. The consequence is that there are now two things to keep in agreement, and nothing but diligence keeps them there.
One Slice Each
Three approaches cover most of what pharma runs today, and each covers its slice well. Document versioning tracks records rather than computation: version every controlled document, with no computational lineage underneath it. That is the quality and regulatory world, where Veeva Vault is the de facto standard. Metadata cataloging renders enterprise lineage as a graph, as Collibra and Informatica do; it traces, it does not enforce. Domain audit logging captures every edit with user, timestamp, and reason inside one boundary, which is what Medidata Rave does for electronic data capture in clinical trials. Large internal integration platforms move research data at enormous scale, with provenance supplied by whatever tooling sits on top of them.
Each covers one slice, well. None makes provenance a property of the data itself. The provenance system and the data system are separate systems, and separate systems can diverge.
How the ELN and the Workflow Fit Together
The system a bench scientist actually touches is the electronic lab notebook (ELN): Signals Notebook across most of large pharma, Benchling across much of the adjacent market. It is where the provenance chain starts, and the two systems fit together at that seam. The notebook attests to what was done at the bench. The workflow carries what was computed from it.
Every generation of the notebook, from paper through the AI-assisted tools now arriving, rests on the same mechanism: an experiment is recorded, and a second person reviews it and signs.
That signature is provenance of a specific kind: attestation. A named person asserts that the work was done as described, which is what ALCOA+ codifies and why contemporaneous is on that list. Recorded as the work happens, not reconstructed afterward. It is the right instrument for the bench, where what has to be vouched for is human judgment and physical work. It says someone vouched. It does not say the result could not have been otherwise.
Vince Paton, who spent years selling these systems, draws the line: “An ELN captures the experiment, DataJoint captures the science.” The notebook is authoritative for what a person did at the bench. The workflow is authoritative for what was computed from it. Neither is trying to be the other, and the two kinds of assurance compose: attestation at the boundary, structure downstream of it.
So the integration is a join, not a migration. The notebook’s entry identifiers and sign-off enter the workflow as the extrinsic record on the rows they describe — source, agent, time — and every result computed from those rows carries that identity in its lineage. Ask where a figure came from and the chain runs from the result, through the computation that produced it, back to the signed notebook entry it began in.
The join has to work by reference rather than by copy, and that is the practical requirement customers state themselves. Pointing an ELN’s search at a lakehouse or an object store would mean replicating that data into its backend, which they decline to do. Nothing needs replicating. The ELN keeps its record, the workflow keeps its structure, and the provenance chain crosses the boundary intact.
Two Pictures: Assembled vs Declared
Compare what each approach actually produces.
First, from the W3C PROV Primer, the complete provenance graph for one newspaper article: every entity, activity, agent, and relation needed to describe how a single artifact came to be.

It is assembled by observation, it is stored next to the thing it describes, and keeping it accurate is somebody’s job.
Now the schema of a liquid chromatography–mass spectrometry (LC-MS) workflow: twelve entities and their parts, dependencies running left to right, origins carried by shape and color.

That one diagram is the lineage of every row in every table. Nobody assembled it. It was declared before any data existed, and the database refuses to hold a computed result whose upstream dependencies are not present and correct.
A catalog can disagree with the data it describes; a schema can’t.
Why can a catalog drift when a schema cannot? Because the two artifacts in the second picture — the data and its lineage — are not two artifacts. They are the same one.
Provenance: Extrinsic vs Intrinsic
This is the distinction the rest of the vocabulary hangs from.
| Extrinsic | Intrinsic | |
|---|---|---|
| Source of guarantee | Observational: recorded as metadata | Structural: entailed by the data model |
| Posture | Forensic, after the fact | Preventive, before the fact |
| Failure mode | Can be incomplete, or drift | Cannot be created broken |
| Answers | “This datum was reported to come from there” | “This result must derive from these inputs” |
As used here the terms are specific to the Relational Workflow Model, the model DataJoint introduces, formally defined in Yatsenko & Nguyen 2026. That is the definition this essay argues from. Intrinsic means entailed by the schema and enforced by referential integrity, not merely inherent in some general sense.
Extrinsic provenance is a record captured about data whose origin lies outside the model’s structural guarantees: read from an instrument, transcribed from a notebook, pulled from a laboratory information management system or a sample registry. Every system in the preceding sections produces this kind, and produces it well. Intrinsic provenance is entailed by the structure of the Relational Workflow Model and maintained by the database itself. It is not a record kept about the data. It is the data model.
Mapped onto the literature: extrinsic corresponds to retrospective provenance, intrinsic to prospective, with one sharpening. In DataJoint the prospective structure is enforced by referential integrity, so it is a binding guarantee rather than a declared intention.
The pair of terms came to DataJoint from Doug Welsh, in February 2026, from the commercial side rather than the engineering one and new enough to still hear the vocabulary the way a customer hears it. Two claims were sharing one word: customers who said they already had provenance had a careful record of what had happened, and DataJoint was offering something that is not a record at all.
The available reading was that DataJoint keeps a better record than the alternatives. He took the harder one: that it keeps no record, and the guarantee comes from somewhere else.
That reading was available to him because he had spent a career selling the alternatives: data virtualization into pharmaceutical accounts, the data lake and its catalog, unified storage, array stores for scientific data. Every one of those systems keeps a record about data it does not control, which is the extrinsic model sold for a living.
Part of that career was in declarative infrastructure. Infrastructure-as-code rests on the claim that a declaration is the source of truth and not a description of one, and that drift from it is worth building machinery to prevent. A schema that is the lineage is the same claim, moved from infrastructure to scientific data.
Naming the two kinds apart let each be judged on its own terms — the record for how faithfully it is kept, the structure for what it makes impossible. Doug had already made the underlying argument in print, that deterministic provenance has to be a property of the system that produces results, not a record kept alongside it. Naming the two kinds is what made that property easy to see.
“What struck me is how elegant it is. A result can’t exist unless its inputs are there — the provenance falls out of how the pipeline works. I spent a career around records kept next to the data, and that’s what got me: the science comes out more reliable because of how the system is built, not because someone remembered to document it.”
Doug Welsh, Chief Revenue Officer, DataJoint
Both kinds do necessary work. Extrinsic governs a workflow’s boundaries; intrinsic governs what happens inside it. A complete account needs both, joined at interfaces you can point at.
Origin, Contract, Code
DataJoint’s contribution is that the code for a computational transformation is part of the schema. A computed table’s declaration includes the make() that populates it. So classic data integrity comes to subsume computation. The problem provenance was invented to solve, reconnecting a result with the code and inputs that produced it, does not arise as separate bookkeeping, because the data and the transformation were never separated.
Three structural facts follow about every entity: where it came from, what code produced it, and whether it reproduces.
DataJoint marks every table by its origin. Each declaration states where the table’s rows come from, and that marking is the provenance classification. The four names answer one question — what puts rows in this table — which is the question provenance asks. Lookup — the code itself, via contents, so governed by code provenance: which committed version defined it. Entry — something outside the table: a scientist recording a study design, a sample registered on receipt, an instrument’s run sheet. The intrinsic chain begins here, and this is where the extrinsic record has to be captured, because the source is outside what the workflow tracks. Ingest — the table’s own make(), reading an instrument export or an upstream system the workflow does not control: an extrinsic boundary despite being automated. Compute — the table’s own make(), deriving entirely from declared upstream: fully intrinsic and reproducible.
The two nouns are tables somebody else fills. The two verbs are what populate() does. That split is the intrinsic/extrinsic boundary written into the names.
The marking has to match reality. A table filled through a form at run time is an Entry table however it is declared, because code provenance cannot vouch for what a person typed after the code shipped.
Determinism is the make() contract, five rules now published as part of the framework’s documentation (the make() contract, specified in full with rationale and enforcement model in the AutoPopulate reference §4.3):
- Populate-only. Rows arrive only through
make()viapopulate(), never a direct insert. - One entity per call, in isolation. One
make(key)produces one master row and its parts. No shared state, no ordering, no reading peer rows, which makes populate embarrassingly parallel and each entity’s provenance self-contained. - Read only upstream, restricted to the job. Fetch only declared ancestors reachable from the key. The violation is not “an undeclared table.” It is reading outside the cone.
- Write the result to
selfand its parts, atomically. Writes elsewhere are allowed, provided each destination is given its own extrinsic record. - No other result-affecting input. Arguments to
populateorchestrate: batching, parallelism, logging. Anything that changes what is computed enters through a declared upstream table.
A rule you can point at is a rule a reviewer can check, and eventually one a tool can check. As unwritten convention, none of the five was either.
Code provenance is the third pillar, and it is routinely confused with the industry’s software provenance — software bills of materials, supply-chain attestation frameworks such as SLSA, in-toto — which certifies where a software artifact came from and who built it. Code provenance is process provenance in the PROV sense: the code is the activity that produced a data entity, and the record of which version of it ran. The deployment requirement is that populate runs from committed code whose dependencies the repository captures, so that a repo hash is a sufficient representation of what ran. Populating from an uncommitted working tree breaks it. repo hash is a sufficient representation of what ran. Populating from an uncommitted working tree breaks it.
Fan-Out at the Boundary
Fan-out is the established pattern for capturing provenance at the edge of a workflow.
An ingestion table’s make() reads one instrument export — an assay plate read, a chromatography run, a sequencing batch — and, besides its own result, inserts rows into the Entry tables that export describes: the subject, the sample, the session, each carrying the record of where it came from: the source, the agent, the time, and by what means. No foreign key points back to the table that wrote them, and none is needed, because the extrinsic record is the provenance. The contract allows exactly this. A make() may write beyond itself provided it supplies extrinsic provenance to each destination.

The reason the pattern exists is that the workflow changes what it is keyed by at this point. Before ingestion it is keyed by the vehicle that delivered the data: a file, an export, a dataset. After it, entities are extracted and the rest of the workflow is keyed by them: subjects, samples, sessions. The chain leaves the foreign-key graph and re-enters it, so the boundary write is where the account of the outside world gets attached.
The record rides on the destination row rather than in a log beside it, so it cannot be separated from the entity it describes. Only the master carries it; parts inherit it.
The framework produces intrinsic provenance automatically. Supplying extrinsic provenance is the workflow developer’s contract. Even when the source offers little — a nightly pull from a sample-inventory system, say — the author still records what arrived and when. The framework cannot infer what it did not compute.
Where Each Guarantee Is Enforced
The two kinds of provenance are enforced at two different times, and the split follows from what each one depends on.
Intrinsic provenance is settled at schema definition time. The lineage is structural, so whether it holds is a property of the declaration — and a declaration can be checked before it is allowed to define anything. A schema and its transformations are code in a repository: they pass through continuous integration, every branch is read statically, and deployment is pinned to the commit that passed. A transformation that would read outside its declared inputs never deploys, so it never produces a result to audit. This is prevention, and it is available precisely because nothing about it depends on a particular run.
Extrinsic provenance is enforced at run time, because that is when the outside world shows up. What instrument produced this file, which system it came from, who entered it, when it arrived — none of that exists at deploy time, and no static check can supply it. What the deployment can do is refuse to let it go unrecorded: the boundary write carries its source record as the data lands, and a write that arrives without one is not a tolerated gap but a failed ingestion.
So the platform holds both ends. Integrity is guaranteed before anything runs, by admitting only declarations that hold up — the familiar shape of infrastructure-as-code governance, applied to scientific workflows. The account of the outside world is captured as it enters, at the boundary, on the row it describes. Neither can substitute for the other: a static check cannot know what an instrument did last night, and a run-time record cannot make a badly declared workflow consistent.
The stakes rise as agents do the work. An agent produces results faster than anyone can read the record of them, so provenance that depends on being audited falls behind as a matter of arithmetic. What holds at that speed is the guarantee enforced before the run: a result that cannot exist unless its inputs do needs no reader to be true.
Export as Projection
Export is a projection, not a reimplementation. The lineage already exists, complete and consistent; export serializes it into a vocabulary someone else speaks. A row is a PROV Entity, a make() is an Activity, upstream reads are used, and the transitive closure of that upstream trace is wasDerivedFrom. OpenLineage takes the same content in run-centric form, which is how Unity Catalog, Collibra, and DataHub will read it. ALCOA+ maps line by line. Knowledge graphs are the general case, of which a provenance graph is one subgraph.
The mapping is total across the structural core and reaches as far as the deployment records. An auditor verifies the structure itself rather than a record kept beside it.
The data model is the lineage, and it cannot drift from the data, because it is the same thing as the data. That is what it means to sit upstream of the platforms an organization already runs: not another record of the science, but the structure the science is written in.
Integrity first. Provenance follows.
Better science in. Better intelligence out.
References and Figure Credits
Cited in the text:
- Codd, E. F. (1970). A relational model of data for large shared data banks. Communications of the ACM, 13(6), 377–387. doi:10.1145/362384.362685
- Buneman, P., Khanna, S., & Tan, W.-C. (2001). Why and where: A characterization of data provenance. Database Theory — ICDT 2001, Lecture Notes in Computer Science, 316–330. doi:10.1007/3-540-44503-X_20
- Freire, J., Koop, D., Santos, E., & Silva, C. T. (2008). Provenance for computational tasks: A survey. Computing in Science & Engineering, 10(3), 11–21. doi:10.1109/MCSE.2008.79
- Lim, C., Lu, S., Chebotko, A., & Fotouhi, F. (2010). Prospective and retrospective provenance collection in scientific workflow environments. 2010 IEEE International Conference on Services Computing, 449–456. doi:10.1109/SCC.2010.18
- Moreau, L., & Groth, P. (eds.) (2013). PROV-Overview and PROV Primer. W3C Working Group Notes, 30 April 2013.
- Yatsenko, D., & Nguyen, T. T. (2026). DataJoint 2.0: A computational substrate for agentic scientific workflows. arXiv. doi:10.48550/arXiv.2602.16585 — the formal definition of the Relational Workflow Model.
- OpenLineage specification. LF AI & Data Foundation.
- PIC/S (2021). Good Practices for Data Management and Integrity in Regulated GMP/GDP Environments, PI 041-1 — the definition of ALCOA+ and its nine attributes.
- MHRA (2018). ‘GXP’ Data Integrity Guidance and Definitions, rev. 1 — the ALCOA principles as a regulator applies them.
- FDA. 21 CFR Part 11 — Electronic Records; Electronic Signatures, Title 21, Chapter I, Subchapter A.
- On the term: “intrinsic provenance” is also used, independently and without a shared definition, in artifact authentication — evidence recovered from an artifact’s own material properties rather than from an attached label (Sun, B., Trustworthy provenance for physical and digital artifacts with commodity mobile devices, National University of Singapore, extended abstract). The sense defined above is narrower and belongs to the Relational Workflow Model.
Figures:
- Ngram chart — generated from the Google Books Ngram JSON API (
encorpus, smoothing 3). - PROV core types and the complete example graph — from the W3C PROV Primer, reproduced unmodified under the W3C Document License.
- LC-MS schema — DataJoint diagram output for the
lcms-demoschema. - Fan-out pattern — drawn to the DataJoint diagram notation described in Read diagrams.

















