Appearance
Chapter overview
NOTEBOOK 08

Standards & citation

You’re reading the fixed September 2026 · research guides edition.Current notebook ↗
FOUNDATIONS / NOTEBOOK 08

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.

ChangeConsequence for this website
Text, examples or resource descriptionsPublish a new content edition and preserve earlier snapshots.
Referenced diagram definitionsInclude the changed definitions in the new chapter fingerprint.
Colour, typography or navigation stylingThe presentation can change without changing the structured chapter identity.
An external resource changesThe notebook citation remains fixed; verify the external version separately.

Verify a downloaded citation record

Python standard library · save the downloaded metadata as citation.json
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.

Edition 2026-09-r4 · SHA-256 0a7f84004962Page metadata ↗