A page can change. Its edition should not.
The living notebook and its fixed editions serve different purposes.
The ordinary notebook address points to the current explanatory text. An edition address includes a named snapshot and continues to serve that snapshot’s content when the living notebook is revised.
What is preserved
- The notebook and chapter identity.
- The chapter introduction, text, figures and structured content.
- The reference list and its recorded resource links.
- The edition date and a SHA-256 content fingerprint.
Checking a citation
Download the page’s citation metadata to retrieve the canonical JSON payload and the expected SHA-256 value. Recomputing the digest of that payload checks content identity. It cannot establish the truth of the content or the continued availability of an external source.
A correction creates a successor
A living page can improve its explanation or correct a mistaken release description. The earlier edition should continue to identify what a reader could cite at that time. This makes it possible to distinguish an editorial correction from a changed research artifact, and to explain why two quotations or references differ.
| Change | Consequence for this website |
|---|---|
| Text, examples or resource descriptions | Publish a new content edition and preserve earlier snapshots. |
| Referenced diagram definitions | Include the changed definitions in the new chapter fingerprint. |
| Colour, typography or navigation styling | The presentation can change without changing the structured chapter identity. |
| An external resource changes | The notebook citation remains fixed; verify the external version separately. |
Verify a downloaded citation record
import hashlib
import json
from pathlib import Path
record = json.loads(Path("citation.json").read_text(encoding="utf-8"))
payload = record["canonicalPayload"].encode("utf-8")
actual = hashlib.sha256(payload).hexdigest()
if actual != record["sha256"]:
raise SystemExit("Content fingerprint does not match")
print("Verified:", record["edition"], actual)Hash the supplied canonicalPayload string exactly, without pretty-printing it or converting its line endings. The structured payload is also provided for inspection. The comparison verifies consistency with the expected digest in that record; independently retained metadata or an archived copy is needed if you want a reference beyond the current host.
Preservation extends beyond the website
Versioned local URLs and checksums make these notebooks citable and inspectable, but continued access still depends on hosting and retained editions. A separately archived release could provide an additional preservation location. No notebook DOI or independent repository deposit is implied until such a deposit has actually been made.
Page editions 2026-09-r4 ↓
Read a fixed snapshot of this chapter, or return to the current notebook.
0a7f84004962Page metadata ↗