Format reference
Provenance
Source material, passage, lot, custody and lineage. The chain a package carries from a cell bank through build conditions to a measured result, and the codes that refuse a broken link.
Definition
A WWD package carries the material chain of the thing it describes. A living component MUST identify source taxon using an NCBITaxon IRI and MUST identify each declared cell type using a Cell Ontology IRI when an applicable CL term exists, an anatomical origin SHOULD use an UBERON IRI, and a named established cell line MUST use a Cellosaurus accession with the Cellosaurus release pinned. A primary, donor-derived or novel line absent from Cellosaurus MUST use CL plus NCBITaxon and MUST identify the derivation source and provenance. Passage number and population doublings SHOULD be recorded when scientifically applicable. Every declared biological population MUST declare custody, and a population held under producer_supplied custody SHOULD declare commercial_derivative_rights. Silence is not permission: a consumer MUST NOT infer any right from the absence of a licensing declaration. Every realization MUST have an identifier, MUST declare its identifier scheme and MUST reference the exact component design revision realized, and WWD provenance MUST be representable as a directed graph of entities, activities and agents.
A WWD package states what the material is, where it came from, who holds it, what was done to it, and which physical unit the numbers were read from. Biological identity sits on the component in the design document. Custody and rights sit on the same population. The lot, the build conditions and the lineage sit in the results document.
This page covers the material chain. The provenance classes carried on each value, designed, simulated, measured, inferred and assumed, are read at as-built.
The biology block
What a living component declares about its population.
A component SHOULD declare biological identity when it contains living biological material.
A component of kind scaffold or device MUST NOT declare
biological identity. A biological identity assertion MUST distinguish taxonomic identity,
cell type, anatomical origin, line identity, genotype or construct, and phenotypic state,
and these dimensions MUST NOT be collapsed into one free-text label. Free text MAY
supplement but MUST NOT replace required identifiers.
| Key | Status | Contents |
|---|---|---|
| role | required | primary, support, structural, innervating, endothelial, immune, other. primary is the population that delivers the specified function. |
| species | required | An NCBITaxon CURIE. NCBITaxon:9606 in both as-built examples. |
| cell_type | required | A Cell Ontology CURIE, required when an applicable CL term exists. CL:0000515 skeletal muscle myoblast, CL:0000679 glutamatergic neuron, CL:0000127 astrocyte. |
| anatomical_origin | optional | An UBERON IRI for the anatomical origin of the tissue or cell source. |
| cell_line | optional | An object carrying accession, rrid and cellosaurus_release. The accession pattern is CVCL_ followed by four or more upper-case alphanumerics, and the RRID pattern is RRID: prefixed to the same. |
| derivation | optional | primary, ipsc_derived, esc_derived, immortalized_line, direct_reprogrammed, explant. |
| differentiation | optional | An object with method, driver_genes, protocol_ref and sbol_ref. Method is one of small_molecule, transcription_factor, growth_factor, co_culture, spontaneous, proprietary. |
| passage_number | optional | A quantity. Passage number and population doublings SHOULD be recorded when scientifically applicable. |
| fraction | optional | A number between zero and one, for the share of this population in a co-culture. |
| custody | required by section 13.1 | producer_supplied, customer_supplied, third_party_supplied. The schema default is producer_supplied. |
| custody_ref | required when custody is customer_supplied | The customer licence, MTA or consignment reference the producer relies on. |
| licensing | SHOULD, under producer_supplied custody | An object with commercial_derivative_rights, use_restriction and agreement_ref. |
| causal_role | required | The second axis every scientific assertion carries. Both example populations declare context. |
| provenance | required | designed, simulated, measured, inferred or assumed. Both example populations declare designed. |
{
"role": "primary",
"species": { "id": "NCBITaxon:9606", "label": "Homo sapiens" },
"cell_type": { "id": "CL:0000515", "label": "skeletal muscle myoblast" },
"derivation": "primary",
"causal_role": "context",
"provenance": "designed"
} One population on component/muscle-strip, kind contractile_tissue. Taxon, cell type, derivation, causal role and provenance. No licensing block, which is the DFM-012 trigger below.
{
"role": "support",
"species": { "id": "NCBITaxon:9606", "label": "Homo sapiens" },
"cell_type": { "id": "CL:0000127", "label": "astrocyte" },
"derivation": "ipsc_derived",
"causal_role": "context",
"provenance": "designed"
}
The second population on component/neuron-tile. Role support sustains the primary
population. Both populations carry causal role context and provenance designed.
{
"role": "primary",
"species": { "id": "NCBITaxon:9606", "label": "Homo sapiens" },
"cell_type": { "id": "CL:0000679", "label": "glutamatergic neuron" },
"derivation": "ipsc_derived",
"differentiation": {
"method": "transcription_factor",
"driver_genes": ["NEUROG2"]
},
"licensing": {
"commercial_derivative_rights": "unknown",
"use_restriction": "unspecified",
"agreement_ref": "GATING ITEM: see NEURONTILE-PRODUCT-SPEC.md 5 Q1"
},
"causal_role": "context",
"provenance": "designed"
} An iPSC-derived glutamatergic neuron population, differentiated by transcription factor with driver gene NEUROG2, carrying a licensing block whose commercial derivative rights are unknown and whose agreement reference names the open question rather than an executed agreement.
Delegated vocabularies
Reference, never restate.
| Vocabulary | Prefix | Covers | Rule | In the examples |
|---|---|---|---|---|
| NCBI Taxonomy | NCBITaxon | Source taxon | A living component MUST identify source taxon using an NCBITaxon IRI. | NCBITaxon:9606 |
| Cell Ontology | CL | Declared cell type | A living component MUST identify each declared cell type using a Cell Ontology IRI when an applicable CL term exists. | CL:0000679 |
| UBERON | UBERON | Anatomical origin | An anatomical origin SHOULD use an UBERON IRI. An anatomical interpretation, when needed, MUST be an explicit annotation using UBERON or a domain profile. | declared per package |
| Cellosaurus | CVCL | Named established cell line | A named established cell line MUST use a Cellosaurus accession, SHOULD also carry an RRID of the form RRID:CVCL_..., and a package MUST pin the Cellosaurus release used for resolution. | CVCL_1E52 |
| ChEBI | CHEBI | Small molecules, medium components, metabolites, drugs, cryoprotectants | A small molecule, medium component, metabolite, drug, cryoprotectant or biochemical SHOULD use a ChEBI IRI when applicable. | declared per package |
| SBOL 3 | SBOL | Genetic constructs | A genetic construct SHOULD be referenced through an SBOL 3 document or stable SBOL identity, and WWD MUST NOT duplicate SBOL sequence, feature, interaction or construct semantics. | sbol_ref on differentiation |
A package MUST declare each ontology source by name, authoritative URI, and version or release. A consumer MUST NOT silently substitute a different ontology release. A consumer lacking the pinned release MAY resolve the persistent IRI using another release only for display and MUST warn that validation used a different release. Ontology deprecation MUST NOT silently change a file recorded meaning.
Source material
Where the cells came from, and which slot carries it.
| Case | Slot | Rule | Constraint |
|---|---|---|---|
| A named established line | biology.cell_line | MUST use a Cellosaurus accession. SHOULD also carry an RRID of the form RRID:CVCL_... . The package MUST pin the Cellosaurus release used for resolution. | Identity in Cellosaurus does not imply commercial rights. |
| A primary, donor-derived or novel line absent from Cellosaurus | biology.cell_type, biology.species, lineage graph | MUST use CL plus NCBITaxon and MUST identify the derivation source and provenance. | Donor-sensitive identifiers MUST be represented by access-controlled or pseudonymous references consistent with applicable governance. |
| The line a lot was actually built from | results.context, wwd:source_line | Carried as a context observation on the results document. neurontile-asbuilt.wwd records CVCL_1E52, causal role context, provenance measured. | A context quantity is observed and not chosen by the producer. |
| The donor behind a primary population | results.context, wwd:donor_id | A pseudonymous donor identifier. muscle-strip-asbuilt.wwd records donor-7. | MUST NOT carry direct personal identifiers. WWD MUST NOT require direct personal identifiers. |
| Value | Meaning | Where it appears |
|---|---|---|
| primary | Isolated directly from a donor or animal. | muscle-strip-asbuilt.wwd, skeletal muscle myoblast |
| ipsc_derived | Differentiated from induced pluripotent stem cells. | neurontile-asbuilt.wwd, both populations |
| esc_derived | Differentiated from embryonic stem cells. | - |
| immortalized_line | An established proliferating line. | - |
| direct_reprogrammed | Converted between somatic fates without a pluripotent intermediate. | - |
| explant | Tissue maintained ex vivo. | - |
Derivation is normative rather than descriptive: it determines which licensing regime applies
and which senescence limits are meaningful. A named differentiation method of proprietary MUST NOT be used to avoid disclosing a method that the acceptance
criteria depend upon.
[
{
"property": "wwd:source_line",
"value": "CVCL_1E52",
"causal_role": "context",
"provenance": "measured"
},
{
"property": "wwd:days_in_vitro",
"value": "28 1",
"causal_role": "context",
"provenance": "measured"
}
] The line the lot was built from and the culture clock, both carried as context observations with provenance measured. A context quantity is observed and not chosen by the producer.
Passage
What the format allows to be stated about proliferation history.
Passage number and population doublings SHOULD be recorded when scientifically applicable.
Differentiation and maturation state SHOULD identify protocol, elapsed time, stimulation
regime, and objective markers. The population history sits in two places: as biology.passage_number on the design population, and as a registered context
property in the results document of a built lot. muscle-strip-asbuilt.wwd records wwd:passage_number with value 6 1 and wwd:donor_id with value donor-7.
| Term | Quantity kind | Unit | Causal class | Domain | Definition |
|---|---|---|---|---|---|
| wwd:passage_number | count | 1 | context | 0 to 200 | Number of passages a population has undergone on receipt. |
| wwd:population_doublings | count | 1 | context | 0 to 500 | Cumulative population doublings a population has undergone. A passage is an operation, a doubling is a quantity of proliferation, and the Hayflick limit is stated in doublings. |
| wwd:days_in_vitro | time | d | context | 0 and above | Days elapsed since plating or seeding, the conventional developmental clock for cultures. |
| wwd:donor_id | categorical | 1 | context | categorical | Pseudonymous donor identifier. MUST NOT carry direct personal identifiers. |
A domain states what is impossible, not what is unusual. The stated domain note for wwd:passage_number is that the value is non-negative and that 200 is far beyond
the Hayflick limit of any primary line. Whether a passage is workable for a given design is a
design rule, and DFM-008 answers it advisorily.
Custody and commercial rights
Identity does not imply permission.
A component may be perfectly identified, fully characterised, and still be unlawful to sell. WWD treats custody and rights as facts about a biological population carried in the file. Custody determines whose licence governs the work: where a producer never takes title to the input material, the transaction is a service performed on the customer material and the producer own resale rights are not engaged.
| Value | Posture | Obligation |
|---|---|---|
| producer_supplied | The producer supplies the material and their own resale rights are engaged. | SHOULD declare commercial_derivative_rights. |
| customer_supplied | The producer never takes title. The transaction is a service performed on the customer material. | MUST identify the agreement it is held under. A producer that names no such agreement is asserting a defence it cannot identify, and a conforming validator MUST reject the package. |
| third_party_supplied | The material comes from a third party. | Declared on the population like any other custody value. |
| Value | Meaning | Finding |
|---|---|---|
| permitted | Derivatives may be exploited commercially. | No DFM-012 finding. |
| prohibited | The component cannot be sold, only used internally. | DFM-012, ERROR. |
| service_only | Material that may be processed on a customer behalf but not resold. | DFM-012, WARNING. |
| requires_license | A commercial licence must be in place before shipping. | DFM-012, WARNING, remedy attach the executed agreement reference to licensing.agreement_ref. |
| unknown | A conforming value. It MUST NOT be treated as equivalent to permission. | DFM-012, WARNING. |
| no licensing block | Silence. A consumer MUST NOT infer any right from the absence of a licensing declaration. | DFM-012, WARNING, undeclared rights. |
The rule that fires on an absent block is DFM-012 at WARNING severity, reporting
that the population declares no licensing block and that commercial derivative rights are
undeclared. Its remedy is to add biology[].licensing with commercial_derivative_rights. use_restriction is a separate closed
vocabulary of research_use_only, commercial, clinical
and unspecified, and a population marked research_use_only MUST NOT
be presented as a commercially saleable component.
Lot and realization
What ties a physical unit to a design revision.
A realization identifies a physical specimen, unit, batch or lot. Every realization MUST have an identifier and MUST reference the exact component design revision realized, and it MUST declare which identifier scheme its identifier belongs to, because an opaque string is not resolvable and a lot number is only unique within the facility that issued it. A realization SHOULD identify lot, batch, specimen, serial or donation schemes as applicable.
{
"id": "lot/NT-2026-0007",
"scheme": "local",
"design_revision": "0.4.0",
"manufactured": "a date"
} Lot NT-2026-0007 under the local scheme, pinned to design revision 0.4.0. The design document carried in the same package is at that revision. The manufactured value is a date and is elided here.
The realization is the join between the design side and the measured side. Acceptance criteria belong to the design. Measured results belong to identified realizations. Every measured result MUST identify the realization or specimens observed and MUST reference exactly one acceptance criterion UUID that resolves within the package design context.
A component MUST NOT be both a design definition and a physical realization under one identifier. Where a lot record and a lineage graph disagree about order, the graph is checked against time: a realization MUST NOT be dated before the activities in its own lineage.
| Scheme | Definition | In the examples, or the code |
|---|---|---|
| local | Unique only within the issuing organisation. MUST NOT be presented as globally unique. | lot/WW-2026-0142, lot/NT-2026-0007 |
| vendor.lot | A supplier own lot or batch number, unique within that supplier. A package using it SHOULD identify the supplier as an agent in the provenance graph. | R05_VENDOR_LOT_NO_ISSUER when no organization agent is declared |
| gs1.gtin | A GS1 Global Trade Item Number identifying a product type, not an individual unit. A GTIN alone MUST NOT be used to identify a specific realization. | R05_GTIN_NOT_A_UNIT |
| gs1.lot | A GS1 batch or lot identifier, which combined with a GTIN identifies a production batch. | - |
| isbt128.din | An ISBT 128 Donation Identification Number, tying every component derived from a single donation back to that donation event and the collecting facility. | SHOULD be recorded where a component derives from a human donation and a DIN exists |
| isbt128.coi | An ISBT 128 Chain of Identity identifier, linking multiple donations that together deliver one therapy. | The scheme for a component built from more than one donation |
WWD does not define these schemes and MUST NOT redefine their syntax or semantics. A consumer MUST treat a scheme-qualified identifier as opaque unless it implements that scheme. WWD records the scheme name and identifier value only, and delegates all interpretation to an implementer holding the appropriate licence.
The chain a reader can reconstruct
From source material through build conditions to measured results.
WWD provenance MUST be representable as a directed graph of entities, activities and agents. An entity MAY represent a cell bank, vial, donor-derived source, reagent lot, scaffold, design, dataset, realization, shipment or result. An activity MAY represent derivation, expansion, differentiation, maturation, fabrication, seeding, stimulation, assay, analysis, simulation, packaging or shipping. An agent MAY be a person, organization, instrument controller or software agent. muscle-strip-asbuilt.wwd carries 8 nodes and 12 edges; neurontile-asbuilt.wwd carries 22 nodes and 41 edges.
| Link | Slot | In the as-built examples | Document |
|---|---|---|---|
| Source material | component.biology | Taxon, cell type, derivation, differentiation method and driver genes, custody and licensing. | design.json |
| Bank | provenance node, entity kind cell_bank | ent/mcb-2 myoblast master bank and ent/wcb-7 working bank in muscle-strip-asbuilt.wwd; ent/mcb and ent/wcb in neurontile-asbuilt.wwd. | results.json |
| Culture operations | provenance nodes, activity kinds | assay, expansion, fabrication in muscle-strip-asbuilt.wwd; differentiation, expansion, pooling, split in neurontile-asbuilt.wwd. | results.json |
| Split and pool | activity kinds split and pooling | neurontile-asbuilt.wwd splits a working bank into three flasks, pools two of them, differentiates the pool and plates eight tiles. A producer MUST NOT model biological genealogy as a single chain when pooling or splitting occurred. | results.json |
| Lot | realization and entity kind realization | lot/WW-2026-0142 at design revision 1.3.0; lot/NT-2026-0007 at design revision 0.4.0. | results.json |
| Build conditions | results.context and fields with causal role control | Context on the two as-built packages: wwd:donor_id, wwd:passage_number; wwd:source_line, wwd:days_in_vitro. | design.json and results.json |
| Assay | activity kind assay, observation_activity on each result | act/twitch-assay uses ent/lot-0142 and generates ent/twitch-data in muscle-strip-asbuilt.wwd. | results.json |
| Result | measured_results, entity kind dataset | 4 measured results on the muscle strip, 5 on the neuron tile, each referencing exactly one acceptance criterion. | results.json |
| Yield | results.yield | 12 of 12 against AC-001; 7 of 8 against NT-001. | results.json |
| Relation | PROV-O term | Endpoints |
|---|---|---|
| used | prov:used | activity to entity |
| generated_by | prov:wasGeneratedBy | entity to activity |
| derived_from | prov:wasDerivedFrom | entity to entity |
| attributed_to | prov:wasAttributedTo | entity to agent |
| associated_with | prov:wasAssociatedWith | activity to agent |
| acted_on_behalf_of | prov:actedOnBehalfOf | agent to agent |
| revision_of | prov:wasRevisionOf | SHOULD map |
| primary_source | prov:hadPrimarySource | SHOULD map |
Each fabrication or culture activity SHOULD identify inputs, outputs, responsible agents, start and end times, and protocol. Chain-of-custody transfers SHOULD identify sending and receiving agents, time, and shipment entity. An exporter MAY emit PROV-O or RO-Crate, and MUST preserve the one-to-one Core relation mapping.
What the validator reports
Code, trigger, and the change the writer makes.
| Code | Severity | Trigger | Change |
|---|---|---|---|
| E01_NONLIVING_HAS_BIOLOGY | ERROR | A component of kind scaffold or device declares biological identity. | Move the biology onto a living component. A part that has a cell type is not a scaffold. |
| E05_SHIPPING_STATE_MISMATCH | ERROR | A living shipping state sits on a non-living part, or a non-living state on a component carrying biological identity. | Declare the shipping state that matches the part. |
| K01_UNKNOWN_KEY | ERROR | A key outside the closed Core key set for a Core object. custody, custody_ref and licensing are safety-relevant keys, so a typo in one changes what the file means. | Use a Core key, or namespace the key as an extension. |
| L01_NODE_NO_ID | ERROR | A provenance node carries no identifier. | Give every node a stable identifier and type. |
| L01_DUPLICATE_NODE | ERROR | A node identifier is declared twice. | Make each node identifier unique within the graph. |
| L01_BAD_NODE_TYPE | ERROR | A node is not an entity, activity or agent. | Declare type as exactly one of the three PROV types. |
| L01_BAD_NODE_KIND | WARNING | A node kind sits outside the Core vocabulary for its type. | Use a Core kind so a consumer can reason about what the node is. |
| L02_UNKNOWN_RELATION | ERROR | An edge uses a relation outside the eight Core relations. | Use used, generated_by, derived_from, attributed_to, associated_with, acted_on_behalf_of, revision_of or primary_source. |
| L02_BAD_EDGE_TYPES | ERROR | A relation connects the wrong node types. | Correct the endpoints. A mistyped edge is not the claim its producer intends. |
| L02_DANGLING_EDGE | ERROR | An edge names a node the graph does not contain, so ancestry cannot be walked. | Carry the node, or remove the edge. |
| L03_DERIVATION_CYCLE | ERROR | Derivation is cyclic and something is its own ancestor. | Break the cycle. A recall query over a cyclic graph cannot be trusted to report everything affected. |
| L04_ACTIVITY_NO_TIMES | WARNING | An activity declares no start and end time. | Add start and end. A lineage that cannot be ordered is not a history. |
| L05_UNDECLARED_POOLING | WARNING | An activity consumes several entities without declaring itself a merge. | Declare the activity kind pooling. |
| L05_UNDECLARED_SPLIT | WARNING | An activity produces several entities without declaring itself a split. | Declare the activity kind split. |
| T03_BUILT_BEFORE_ITS_HISTORY | ERROR | A realization is dated before the activities in its own lineage. | Correct the ordering. A graph can satisfy edge acyclicity while describing a history that could not have happened. |
| R05_NO_REALIZATION | ERROR | An as-built package carries no realization identifier. | Add realization.id naming the specimen, unit, batch or lot observed. |
| R05_NO_ID_SCHEME | ERROR | The realization declares no scheme. | Declare scheme: local, vendor.lot, gs1.gtin, gs1.lot, isbt128.din or isbt128.coi. |
| R05_NO_DESIGN_REVISION | ERROR | The realization pins no design revision. | Set design_revision to the exact revision realized. |
| DFM-008 | ERROR or WARNING | A primary population is past its replicative limit, read from biology.passage_number against derivation primary. | Use an earlier passage, or switch to an immortalized or iPSC-derived source with a renewable bank. At the warning threshold, qualify the lot at this passage before committing a run. |
| DFM-012 | WARNING or ERROR | Commercial derivative rights are unknown, prohibited or undeclared. The rule fires when biology[].licensing is absent, and when commercial_derivative_rights is unknown, service_only, requires_license or prohibited. | Add biology[].licensing with commercial_derivative_rights. Where rights are prohibited, source an equivalent cell type under a licence permitting resale of derivatives, or restrict the design to internal research use. |
| DFM-013 | ERROR | A population marked use_restriction research_use_only is presented as a saleable component. | Source a commercial-grade equivalent, or sell this only as a research-use item with the restriction passed through to the customer. |
| DFM-014 | ERROR | Custody is customer_supplied and no custody_ref is named. | Add custody_ref naming the customer licence, MTA or consignment agreement. |
A design-rule finding is advisory with respect to conformance. A package MAY conform to WWD and still fail every DFM rule, and an implementation MUST NOT report a DFM code as a conformance error and MUST NOT suppress one because the package is otherwise valid.
What the format does not attempt to record
Non-goals that touch the material chain.
| Subject | Position |
|---|---|
| Clinical claims, regulatory approval, donor consent law, commercial licensing rights | WWD 0.1 does not standardize them. Custody and rights are recorded as declarations about a population, not as a legal instrument. |
| Direct personal identifiers | WWD MUST NOT require them. Donor-sensitive identifiers MUST be represented by access-controlled or pseudonymous references consistent with applicable governance. |
| Sequence, feature, interaction and construct semantics | Delegated to SBOL 3. WWD MUST NOT duplicate them, and references an SBOL identity instead. |
| The content of an external vocabulary | WWD references and never restates CL, Cellosaurus, ChEBI, NCBITaxon, UBERON and the ISBT 128 code tables. A consumer MUST treat a scheme-qualified identifier as opaque unless it implements that scheme. |
| A laboratory information system or electronic batch record | WWD 0.1 is none of these. The lineage graph is the chain a package carries, not the system of record it was copied from. |
| Fitness, sterility, safety, efficacy or biological function | A structurally conformant package guarantees none of them. |
| Whether a value is plausible for a given biology | That is a design-rule question and the answer is advisory. A DFM code MUST NOT be reported as a conformance error. |
Questions
Which vocabularies carry biological identity in WWD?
NCBI Taxonomy for source taxon, Cell Ontology for each declared cell type, UBERON for anatomical origin, Cellosaurus with RRID for a named established cell line, ChEBI for small molecules and medium components, and SBOL 3 for genetic constructs. A living component MUST identify source taxon using an NCBITaxon IRI and MUST identify each declared cell type using a CL IRI when an applicable CL term exists. A package MUST declare each ontology source by name, authoritative URI, and version or release, and a consumer MUST NOT silently substitute a different ontology release.
How is a cell line identified, and how is a primary source identified?
A named established cell line MUST use a Cellosaurus accession, SHOULD also be expressed as an RRID of the form RRID:CVCL_..., and the package MUST pin the Cellosaurus release used for resolution. The schema carries these as cell_line.accession, cell_line.rrid and cell_line.cellosaurus_release, with the accession matching CVCL_ followed by four or more upper-case alphanumerics. A primary, donor-derived or novel line absent from Cellosaurus MUST use CL plus NCBITaxon and MUST identify the derivation source and provenance. neurontile-asbuilt.wwd records the line the lot was built from as a context observation, wwd:source_line with value CVCL_1E52.
What can a package state about passage number?
Passage number and population doublings SHOULD be recorded when scientifically applicable. biology.passage_number is a quantity on the population. The Core registry carries wwd:passage_number as a count in unit 1 with causal class context, defined as the number of passages a population has undergone on receipt, with a domain of 0 to 200. wwd:population_doublings is a separate term: a passage is an operation, a doubling is a quantity of proliferation, and the Hayflick limit is stated in doublings. Passage is a context quantity, observed and not chosen by the producer.
What does the validator do with a late passage?
The design rule DFM-008 reads biology.passage_number together with derivation. A primary population at or past the failure threshold is reported as an ERROR stating that the cells are past the usual replicative limit, with the remedy to use an earlier passage or switch to an immortalized or iPSC-derived source with a renewable bank. At the warning threshold the finding is that primary cells at that passage may show reduced fusion and force, with the remedy to qualify the lot at this passage before committing a run. A DFM finding is advisory with respect to conformance and MUST NOT be reported as a conformance error.
What fires when the licensing block is absent?
DFM-012, at WARNING severity, reporting that the population declares no licensing block and that commercial derivative rights are undeclared. The remedy in the reference validator is to add biology[].licensing with commercial_derivative_rights, and the rule records that unknown is an honest answer while silence is not. Section 13.1 states the same rule as a normative reading obligation: silence is not permission, and a consumer MUST NOT infer any right from the absence of a licensing declaration. unknown is a conforming value and MUST NOT be treated as equivalent to permission.
How does custody change what the licence has to permit?
Every declared biological population MUST declare custody as one of producer_supplied, customer_supplied or third_party_supplied. A population declared customer_supplied MUST identify the agreement it is held under, and a producer that names no such agreement is asserting a defence it cannot identify, so a conforming validator MUST reject the package. The reference validator reports that as DFM-014 at ERROR severity. Where custody is customer_supplied and a custody_ref is named, DFM-012 does not run on that population and the validator emits an INFO finding that the work is a service on customer material.
What links a physical lot back to a design revision?
The realization. Every realization MUST have an identifier, MUST declare its identifier scheme and MUST reference the exact component design revision realized. The Core schemes are local, vendor.lot, gs1.gtin, gs1.lot, isbt128.din and isbt128.coi. A GTIN identifies a product type and MUST NOT alone identify a specific realization. WWD does not define these schemes and MUST NOT redefine their syntax or semantics, and a consumer MUST treat a scheme-qualified identifier as opaque unless it implements that scheme. A fuller reading of the provenance classes carried on values is at /standard/as-built.
What does the lineage graph have to support?
WWD provenance MUST be representable as a directed graph of entities, activities and agents, each node with a stable identifier and type, and each edge declaring relation, from and to. The eight Core relations map one to one onto PROV-O. Provenance derivation MUST be acyclic, and acyclicity applies to time as well as to edges: an activity MUST NOT end before it starts, an activity MUST NOT consume an entity before the activity that produced it has run, and a realization MUST NOT be dated before the activities in its own lineage. A graph MUST support splits and merges, and a producer MUST NOT model biological genealogy as a single chain when pooling or splitting occurred. Master Cell Bank to Working Cell Bank to production lot lineage SHOULD be represented with distinct entities and activities.
Continue
Related pages.
- As-built. The provenance classes on values, the realization, and what each column can be read for.
- Causal roles. control, response, context and derived, the axis every population and observation also carries.
- Design rules. DFM-008, DFM-012, DFM-013, DFM-014 and the rest, each with its threshold and remedy.
- The Core registries. Property terms, assay methods and the closed vocabularies quoted here.
- The WWD file format. Container, manifest, design and results documents.
- Seven example packages, each read field by field.
- The reference validator. Every diagnostic code and how to run it.
- The WWD 0.1 draft specification. All normative sections with anchors.