Editions, manifests, and provenance
DICOM is republished in named editions. A reproducible knowledge base must identify the exact edition that produced every fact.
current is an input, not a stored edition
Section titled “current is an input, not a stored edition”dicom-kb fetch --edition current reads official release metadata and requires
exactly one concrete label to be discoverable. The resolved label follows the
form:
20YYxFor example, a concrete label can look like 2025e.
The source manifest stores both:
edition: the concrete resolved edition;resolved_from: the user’s original input, such ascurrent.
Build and query commands use the concrete edition.
Historical editions are explicit
Section titled “Historical editions are explicit”A concrete edition request is checked against the official archive listing before acquisition. This avoids silently downloading content from the mutable current directory for a historical label.
One source manifest per acquisition
Section titled “One source manifest per acquisition”The manifest records:
- concrete edition;
- original resolution source;
- acquisition timestamp;
- parser version;
- legal notice;
- every artifact’s part and format;
- cache-relative path;
- official source URL when available;
- byte size;
- SHA-256 digest;
- a digest over the canonical manifest content.
The manifest is immutable unless the user explicitly supplies --force.
The database records its source
Section titled “The database records its source”A SQLite build stores metadata that includes:
- edition;
- source-manifest SHA-256;
- schema version;
- build metadata and metrics.
Query trace metadata can include the same source-manifest digest. This creates a chain:
query response -> local SQLite build metadata -> source manifest digest -> cached artifact digests -> official release URLs or registered local filesMultiple editions can coexist
Section titled “Multiple editions can coexist”The default cache separates source and database paths by edition:
~/.cache/dicom-standard-kb/ artifacts/ <edition>/ db/ <edition>.sqliteA client should treat edition as part of the query identity. Two equal-looking facts from different editions are not interchangeable without comparison.
Verification detects local drift
Section titled “Verification detects local drift”dicom-kb verify recomputes:
- the manifest digest;
- each artifact’s SHA-256;
- database metadata compatibility with the manifest.
It detects missing files, checksum changes, absent metadata, and edition or manifest mismatches. It does not re-fetch or repair content automatically.
Reproducible usage rule
Section titled “Reproducible usage rule”Record these together in an application or agent evaluation:
concrete editiondatabase pathsource-manifest SHA-256project/package versionquery inputquery response traceThis is more reliable than recording only a mutable current URL or a natural
language answer.