Subchains
data_flow = [input_dataset, processing, output_dataset]). A subchain instance is a concrete realization of one of those subchains on a single datachain instance.Why
Modern AI systems are compositional. A smart intersection might compose a perceptive model (cameras → vehicle detection) with an analytical model (predict congestion) and an agentic actuator (re-time the signal). Each leg has its own input → processing → output flow. The flat elements list of a datachain cannot tell three flows apart.
Subchains let an author group categories into named flows on the datachain type, and then realize those flows multiple times on a single instance.
At the datachain-type level
DatachainType.subchains[] declares which subchains exist for this type:
subchains:
- id: data_flow
name:
- locale: en
value: Data Flow
categories:
- input_dataset
- processing
- output_dataset
Categories may belong to multiple subchains. The subchain is purely a grouping; required-ness, ordering, and shape continue to live on the categories themselves.
At the datachain-instance level
DatachainInstance.subchain_instances[] declares concrete realizations for this disclosure. Each subchain_instance references one of the subchains declared on the type, may name head_refs (typically functional-mode element ids that head the flow), and may carry an explicit order:
{
"subchain_instances": [
{ "id": "perceptive_flow", "subchain_id": "data_flow", "head_refs": ["perceptive_mode"], "order": 1 },
{ "id": "analytical_flow", "subchain_id": "data_flow", "head_refs": ["analytical_mode"], "order": 2 },
{ "id": "agentic_flow", "subchain_id": "data_flow", "head_refs": ["agentic_mode"], "order": 3 }
]
}
Each element in DatachainInstance.elements[] may carry a subchain_instance_id. Elements with one render inside their subchain instance; elements without one render at the datachain root (Accountable, Purpose, Rights, Risks).
Smart-intersection example
A single intersection deployment composes three modes — perceptive, analytical, agentic. Each mode heads one realization of data_flow:
- Perceptive flow: camera feed → vehicle detection model → bounding boxes.
- Analytical flow: vehicle counts → congestion forecaster → predicted queue length.
- Agentic flow: predicted queue length → signal re-timer → updated phase plan.
Authoring this as one datachain instance: three subchain_instances (each with subchain_id: data_flow), one functional-mode element per flow (heads it via head_refs), and the input / processing / output elements per flow each carry the matching subchain_instance_id.
See also
Shape contract
Advisory mapping from DTPR icon shape primitives to the kind of fact a category holds.
Claude plugin
Seven-skill authoring studio for describing AI systems as DTPR datachains, iterating on the DTPR schema, drafting element icons, translating locales, and grading content for public comprehension.