{
  "title": "A page can change. Its edition should not. — Standards & citation",
  "text": "MODAVIS (2026). A page can change. Its edition should not. — Standards & citation. Research notebooks, September 2026 · research guides edition. https://modavis.org/editions/2026-09-r4/standards/versions/",
  "bibtex": "@misc{modavis_standards_versions_2026_09_r4,\n  author = {{MODAVIS}},\n  title = {A page can change. Its edition should not. — Standards & citation},\n  year = {2026},\n  month = {09},\n  version = {2026-09-r4},\n  url = {https://modavis.org/editions/2026-09-r4/standards/versions/},\n  note = {Content SHA-256: 0a7f840049622f1b87b44c7f3c7714ad7113806f5d0bfc22b11e945699981334}\n}",
  "url": "https://modavis.org/editions/2026-09-r4/standards/versions/",
  "sha256": "0a7f840049622f1b87b44c7f3c7714ad7113806f5d0bfc22b11e945699981334",
  "edition": "2026-09-r4",
  "date": "2026-09-26",
  "canonicalPayload": "{\"book\":{\"number\":\"08\",\"slug\":\"standards\",\"title\":\"Standards & citation\"},\"chapter\":{\"blocks\":[{\"text\":\"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.\",\"type\":\"p\"},{\"id\":\"preserved\",\"text\":\"What is preserved\",\"type\":\"heading\"},{\"items\":[\"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.\"],\"type\":\"list\"},{\"id\":\"checking\",\"text\":\"Checking a citation\",\"type\":\"heading\"},{\"text\":\"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.\",\"type\":\"p\"},{\"id\":\"successor\",\"text\":\"A correction creates a successor\",\"type\":\"heading\"},{\"text\":\"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.\",\"type\":\"p\"},{\"headers\":[\"Change\",\"Consequence for this website\"],\"rows\":[[\"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.\"]],\"type\":\"table\"},{\"id\":\"verify-record\",\"text\":\"Verify a downloaded citation record\",\"type\":\"heading\"},{\"label\":\"Python standard library · save the downloaded metadata as citation.json\",\"text\":\"import hashlib\\nimport json\\nfrom pathlib import Path\\n\\nrecord = json.loads(Path(\\\"citation.json\\\").read_text(encoding=\\\"utf-8\\\"))\\npayload = record[\\\"canonicalPayload\\\"].encode(\\\"utf-8\\\")\\nactual = hashlib.sha256(payload).hexdigest()\\nif actual != record[\\\"sha256\\\"]:\\n    raise SystemExit(\\\"Content fingerprint does not match\\\")\\nprint(\\\"Verified:\\\", record[\\\"edition\\\"], actual)\",\"type\":\"code\"},{\"text\":\"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.\",\"type\":\"p\"},{\"id\":\"preservation-beyond-site\",\"text\":\"Preservation extends beyond the website\",\"type\":\"heading\"},{\"text\":\"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.\",\"type\":\"p\"},{\"items\":[{\"href\":\"/editions/2026-09/\",\"label\":\"Browse the September 2026 edition\"},{\"href\":\"/notebooks/standards/citing/\",\"label\":\"How to cite a page\"}],\"type\":\"links\"}],\"intro\":\"The living notebook and its fixed editions serve different purposes.\",\"slug\":\"versions\",\"sources\":[],\"title\":\"A page can change. Its edition should not.\"},\"date\":\"2026-09-26\",\"edition\":\"2026-09-r4\",\"figures\":{}}",
  "payload": {
    "edition": "2026-09-r4",
    "date": "2026-09-26",
    "book": {
      "slug": "standards",
      "title": "Standards & citation",
      "number": "08"
    },
    "chapter": {
      "slug": "versions",
      "title": "A page can change. Its edition should not.",
      "intro": "The living notebook and its fixed editions serve different purposes.",
      "blocks": [
        {
          "type": "p",
          "text": "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."
        },
        {
          "type": "heading",
          "text": "What is preserved",
          "id": "preserved"
        },
        {
          "type": "list",
          "items": [
            "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."
          ]
        },
        {
          "type": "heading",
          "text": "Checking a citation",
          "id": "checking"
        },
        {
          "type": "p",
          "text": "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."
        },
        {
          "type": "heading",
          "text": "A correction creates a successor",
          "id": "successor"
        },
        {
          "type": "p",
          "text": "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."
        },
        {
          "type": "table",
          "headers": [
            "Change",
            "Consequence for this website"
          ],
          "rows": [
            [
              "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."
            ]
          ]
        },
        {
          "type": "heading",
          "text": "Verify a downloaded citation record",
          "id": "verify-record"
        },
        {
          "type": "code",
          "label": "Python standard library · save the downloaded metadata as citation.json",
          "text": "import hashlib\nimport json\nfrom pathlib import Path\n\nrecord = json.loads(Path(\"citation.json\").read_text(encoding=\"utf-8\"))\npayload = record[\"canonicalPayload\"].encode(\"utf-8\")\nactual = hashlib.sha256(payload).hexdigest()\nif actual != record[\"sha256\"]:\n    raise SystemExit(\"Content fingerprint does not match\")\nprint(\"Verified:\", record[\"edition\"], actual)"
        },
        {
          "type": "p",
          "text": "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."
        },
        {
          "type": "heading",
          "text": "Preservation extends beyond the website",
          "id": "preservation-beyond-site"
        },
        {
          "type": "p",
          "text": "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."
        },
        {
          "type": "links",
          "items": [
            {
              "label": "Browse the September 2026 edition",
              "href": "/editions/2026-09/"
            },
            {
              "label": "How to cite a page",
              "href": "/notebooks/standards/citing/"
            }
          ]
        }
      ],
      "sources": []
    },
    "figures": {}
  }
}