{
 "schemaVersion": "1.0.0",
 "constitutionVersion": "1.0.0",
 "createdAt": "2026-08-12T00:00:00Z",
 "description": "Append-only Evidence Passport records. Old revisions are immutable; corrections create a new revision and preserve the previous permalink.",
 "entity": {
  "type": "project",
  "id": "dortmund-open-data",
  "title": "Open Data Portal with Zero-Attribution Default",
  "canonicalUrl": "https://1001smartcities.org/projects/dortmund-open-data/"
 },
 "currentRevisionId": "2026-08-20-source-dates-b8",
 "revisions": [
  {
   "id": "2026-08-15-baseline",
   "createdAt": "2026-08-15T18:04:00Z",
   "effectiveAt": "2026-08-15",
   "changeType": "baseline",
   "summary": "Created the first structured Evidence Passport with 7 claims and 3 source dossiers.",
   "preparedBy": {
    "type": "automation",
    "label": "AI-assisted evidence preparation",
    "humanApproved": false
   },
   "review": {
    "status": "unreviewed",
    "by": null,
    "date": null,
    "note": "Awaiting operator and domain-expert review; publication of this revision implies neither."
   },
   "changes": [
    {
     "operation": "add",
     "path": "/evidencePassport",
     "summary": "Added claim-level evidence mapping and source dossiers."
    },
    {
     "operation": "add",
     "path": "/revisionHistory",
     "summary": "Established a permanent, hash-addressed baseline revision."
    }
   ],
   "snapshotHash": "sha256:dc0d4a04ad1906b172a5696379f02ba47e194da2e05aa00127a7bd17e8fae94a",
   "snapshot": {
    "asOf": "2026-08-15",
    "projectFingerprint": "sha256:fac17c8935c66205a0804814bbf8c100b97baab4340393a14c6c6ec68371647d",
    "assurance": {
     "status": "unreviewed",
     "scope": "evidence-passport-revision",
     "statement": "AI-assisted structural preparation. This revision has not been reviewed by a human or subject-matter expert.",
     "machineChecks": [
      "schema",
      "publication-diff-contract",
      "material-project-fingerprint",
      "claim-text-drift",
      "source-reference-resolution",
      "complete-source-dossier",
      "snapshot-hash"
     ]
    },
    "projectState": {
     "status": "live",
     "outcome": "ongoing",
     "evidenceGrade": "official",
     "timeline": {
      "started": 2018,
      "ended": null
     }
    },
    "governance": {
     "operator": "Stadt Dortmund",
     "actorTypes": [
      "city-government"
     ],
     "fundingModel": "grant",
     "fundingDescription": "Portal relaunch financed via the federal Modellprojekte Smart Cities programme",
     "cost": null,
     "ownership": null,
     "decisionRights": null,
     "exitConditions": null
    },
    "claims": [
     {
      "id": "clm-dcc2173f1bb39778",
      "field": "snippet",
      "text": "published open data since mid-2018",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-078e9268df7bf3e6"
      ],
      "supportNote": "The city's own open-data page states that Dortmund has provided open data for free use since mid-2018.",
      "caveat": "The city's page could not be read directly by our tools; the wording was confirmed via its search-indexed text.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-8aff4f57547d3da1",
      "field": "snippet",
      "text": "relaunched its portal on 6 February 2024 with nearly 490 datasets",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The federal programme's article dates the rebuilt portal to 6 February 2024 with almost 490 datasets.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-a0c048045ddc2e2d",
      "field": "snippet",
      "text": "built-in charts, combinable maps and a public API",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The article describes diagram views, maps combining several datasets, and an API for automated retrieval.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-02c9a68c6930fe22",
      "field": "snippet",
      "text": "financed through the federal Modellprojekte Smart Cities programme",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The article ties the portal rebuild to Dortmund's participation in the Modellprojekte Smart Cities programme.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-8cdebca538cb0947",
      "field": "snippet",
      "text": "823 datasets, and every one of them carries a licence: 539 under Datenlizenz Deutschland Zero, which waives attribution entirely, and 284 under the attribution variant",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-3724c986dc159701"
      ],
      "supportNote": "Counted from the portal's public catalogue API on 15 August 2026: 823 datasets total, 539 licensed Datenlizenz Deutschland Zero 2.0, 284 Datenlizenz Deutschland Namensnennung 2.0, none unlicensed.",
      "caveat": "A snapshot count; the catalogue changes as datasets are added.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-4bb66094b4a0ae68",
      "field": "snippet",
      "text": "real-time parking-garage occupancy and current roadworks are the most requested data",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The article names real-time parking-garage occupancy and current/planned roadworks as the most requested datasets.",
      "caveat": "The city's own popularity statement; no download statistics are published.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-6fe8e54cd5de4464",
      "field": "lesson",
      "text": "a third of the catalogue keeps the attribution requirement",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-3724c986dc159701"
      ],
      "supportNote": "284 of 823 datasets carry the attribution variant of the Datenlizenz Deutschland — about a third of the catalogue, per the API count of 15 August 2026.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     }
    ],
    "sources": [
     {
      "id": "src-c9510e10c8dd84a9",
      "title": "Smart City Dialog — Neues Open-Data-Portal Dortmund",
      "url": "https://www.smart-city-dialog.de/informieren/aktuelles/neues-open-data-portal-dortmund-mehr-datenerlebnisse-durch-visualisierung",
      "publisher": {
       "name": null,
       "domain": "smart-city-dialog.de",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-8aff4f57547d3da1",
       "clm-a0c048045ddc2e2d",
       "clm-02c9a68c6930fe22",
       "clm-4bb66094b4a0ae68"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Federal smart-city programme portal: relaunch 6 February 2024, nearly 490 datasets, charts/maps/API, Modellprojekte Smart Cities funding, parking and roadworks data most requested.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-3724c986dc159701",
      "title": "Open Data Portal Dortmund — catalogue API",
      "url": "https://open-data.dortmund.de/api/explore/v2.1/catalog/datasets",
      "publisher": {
       "name": null,
       "domain": "open-data.dortmund.de",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-8cdebca538cb0947",
       "clm-6fe8e54cd5de4464"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The portal's public catalogue API; the 823-dataset total and the licence split (539 Datenlizenz Deutschland Zero 2.0, 284 attribution variant) were counted from it on 15 August 2026 and are recomputable by anyone.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-078e9268df7bf3e6",
      "title": "Stadt Dortmund — Open Data",
      "url": "https://www.dortmund.de/themen/engagement-und-buerger-innenbeteiligung/open-data/",
      "publisher": {
       "name": null,
       "domain": "dortmund.de",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-dcc2173f1bb39778"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "City topic page (authority) stating open data has been published since mid-2018. The site blocks automated retrieval; the date was verified via the page's indexed wording.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     }
    ],
    "coverage": {
     "claimsTotal": 7,
     "claimsMapped": 7,
     "sourcesTotal": 3,
     "sourcesUsedByClaims": 3,
     "sourcesWithPublicationDate": 0,
     "sourcesWithArchive": 0,
     "sourcesWithExactLocator": 0,
     "sourcesWithContentHash": 0
    },
    "limits": [
     "Publisher names and source languages have not yet been classified; domains are recorded without guessing.",
     "Existing source notes are descriptive locators, not page- or paragraph-exact citations.",
     "A missing archive, publication date or content hash is shown as null rather than inferred.",
     "The project-level evidence grade ranks the strongest source in the entry; it is not a truth score for every claim."
    ]
   }
  },
  {
   "id": "2026-08-20-source-dates-b8",
   "createdAt": "2026-08-20T23:00:00Z",
   "effectiveAt": "2026-08-15",
   "changeType": "update",
   "summary": "Record the publication date of each source that states one; sources that publish no date are marked null.",
   "preparedBy": {
    "type": "automation",
    "label": "AI-assisted evidence preparation",
    "humanApproved": false
   },
   "review": {
    "status": "unreviewed",
    "by": null,
    "date": null,
    "note": "Awaiting operator and domain-expert review; publication of this revision implies neither."
   },
   "changes": [
    {
     "operation": "replace",
     "path": "/snapshot/projectFingerprint",
     "summary": "Updated projectFingerprint to the current sourced project record."
    }
   ],
   "snapshotHash": "sha256:d99978ee236e81ef6587534073eb7adaf5f7a70f02744f42c57f76f5d2eec2d2",
   "snapshot": {
    "asOf": "2026-08-15",
    "projectFingerprint": "sha256:be8ca7360ddb4d4bc86d2470d1b9abeef206a609756cf25dfa326a075609df35",
    "assurance": {
     "status": "unreviewed",
     "scope": "evidence-passport-revision",
     "statement": "AI-assisted structural preparation. This revision has not been reviewed by a human or subject-matter expert.",
     "machineChecks": [
      "schema",
      "publication-diff-contract",
      "material-project-fingerprint",
      "claim-text-drift",
      "source-reference-resolution",
      "complete-source-dossier",
      "snapshot-hash"
     ]
    },
    "projectState": {
     "status": "live",
     "outcome": "ongoing",
     "evidenceGrade": "official",
     "timeline": {
      "started": 2018,
      "ended": null
     }
    },
    "governance": {
     "operator": "Stadt Dortmund",
     "actorTypes": [
      "city-government"
     ],
     "fundingModel": "grant",
     "fundingDescription": "Portal relaunch financed via the federal Modellprojekte Smart Cities programme",
     "cost": null,
     "ownership": null,
     "decisionRights": null,
     "exitConditions": null
    },
    "claims": [
     {
      "id": "clm-dcc2173f1bb39778",
      "field": "snippet",
      "text": "published open data since mid-2018",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-078e9268df7bf3e6"
      ],
      "supportNote": "The city's own open-data page states that Dortmund has provided open data for free use since mid-2018.",
      "caveat": "The city's page could not be read directly by our tools; the wording was confirmed via its search-indexed text.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-8aff4f57547d3da1",
      "field": "snippet",
      "text": "relaunched its portal on 6 February 2024 with nearly 490 datasets",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The federal programme's article dates the rebuilt portal to 6 February 2024 with almost 490 datasets.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-a0c048045ddc2e2d",
      "field": "snippet",
      "text": "built-in charts, combinable maps and a public API",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The article describes diagram views, maps combining several datasets, and an API for automated retrieval.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-02c9a68c6930fe22",
      "field": "snippet",
      "text": "financed through the federal Modellprojekte Smart Cities programme",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The article ties the portal rebuild to Dortmund's participation in the Modellprojekte Smart Cities programme.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-8cdebca538cb0947",
      "field": "snippet",
      "text": "823 datasets, and every one of them carries a licence: 539 under Datenlizenz Deutschland Zero, which waives attribution entirely, and 284 under the attribution variant",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-3724c986dc159701"
      ],
      "supportNote": "Counted from the portal's public catalogue API on 15 August 2026: 823 datasets total, 539 licensed Datenlizenz Deutschland Zero 2.0, 284 Datenlizenz Deutschland Namensnennung 2.0, none unlicensed.",
      "caveat": "A snapshot count; the catalogue changes as datasets are added.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-4bb66094b4a0ae68",
      "field": "snippet",
      "text": "real-time parking-garage occupancy and current roadworks are the most requested data",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c9510e10c8dd84a9"
      ],
      "supportNote": "The article names real-time parking-garage occupancy and current/planned roadworks as the most requested datasets.",
      "caveat": "The city's own popularity statement; no download statistics are published.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-6fe8e54cd5de4464",
      "field": "lesson",
      "text": "a third of the catalogue keeps the attribution requirement",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-3724c986dc159701"
      ],
      "supportNote": "284 of 823 datasets carry the attribution variant of the Datenlizenz Deutschland — about a third of the catalogue, per the API count of 15 August 2026.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     }
    ],
    "sources": [
     {
      "id": "src-c9510e10c8dd84a9",
      "title": "Smart City Dialog — Neues Open-Data-Portal Dortmund",
      "url": "https://www.smart-city-dialog.de/informieren/aktuelles/neues-open-data-portal-dortmund-mehr-datenerlebnisse-durch-visualisierung",
      "publisher": {
       "name": null,
       "domain": "smart-city-dialog.de",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-8aff4f57547d3da1",
       "clm-a0c048045ddc2e2d",
       "clm-02c9a68c6930fe22",
       "clm-4bb66094b4a0ae68"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Federal smart-city programme portal: relaunch 6 February 2024, nearly 490 datasets, charts/maps/API, Modellprojekte Smart Cities funding, parking and roadworks data most requested.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-3724c986dc159701",
      "title": "Open Data Portal Dortmund — catalogue API",
      "url": "https://open-data.dortmund.de/api/explore/v2.1/catalog/datasets",
      "publisher": {
       "name": null,
       "domain": "open-data.dortmund.de",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-8cdebca538cb0947",
       "clm-6fe8e54cd5de4464"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The portal's public catalogue API; the 823-dataset total and the licence split (539 Datenlizenz Deutschland Zero 2.0, 284 attribution variant) were counted from it on 15 August 2026 and are recomputable by anyone.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-078e9268df7bf3e6",
      "title": "Stadt Dortmund — Open Data",
      "url": "https://www.dortmund.de/themen/engagement-und-buerger-innenbeteiligung/open-data/",
      "publisher": {
       "name": null,
       "domain": "dortmund.de",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-dcc2173f1bb39778"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "City topic page (authority) stating open data has been published since mid-2018. The site blocks automated retrieval; the date was verified via the page's indexed wording.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     }
    ],
    "coverage": {
     "claimsTotal": 7,
     "claimsMapped": 7,
     "sourcesTotal": 3,
     "sourcesUsedByClaims": 3,
     "sourcesWithPublicationDate": 0,
     "sourcesWithArchive": 0,
     "sourcesWithExactLocator": 0,
     "sourcesWithContentHash": 0
    },
    "limits": [
     "Publisher names and source languages have not yet been classified; domains are recorded without guessing.",
     "Existing source notes are descriptive locators, not page- or paragraph-exact citations.",
     "A missing archive, publication date or content hash is shown as null rather than inferred.",
     "The project-level evidence grade ranks the strongest source in the entry; it is not a truth score for every claim."
    ]
   }
  }
 ]
}
