-
Notifications
You must be signed in to change notification settings - Fork 199
DCAT US 1.1 vs 3.0
Field-by-field comparison between DCAT-US 1.1 (the 2014 Project Open Data schema) and DCAT-US 3.0 (current target; see DCAT-US 3.0 for the overview). Sourced from the schemas and example fixtures in datagov-harvester. For the official step-by-step conversion, see the quick migration guide.
| DCAT-US 1.1 | DCAT-US 3.0 | |
|---|---|---|
| Published | 2014 (Project Open Data Metadata Schema) | 2024-25, actively evolving on GSA/dcat-us |
| Schema format | JSON Schema, hand-authored, one file per resource type | JSON Schema 2020-12, generated docs, per-class definitions |
| Root shape |
Catalog with a flat dataset[] array |
Catalog with dataset[] and service[], plus optional record[] and nested catalog[]/hasPart[]
|
| Contact point | Single vCard (fn + hasEmail) |
Single Kind object or a list of them
|
| Theme / category | Array of free strings | Array of Concept objects (label + optional controlled-vocabulary scheme) |
| Spatial coverage | Free string or a bare GeoJSON-ish object |
Location object: geometry, bbox, centroid (all of which are geoJSON or WKT), and/or prefLabel
|
| Federal-only fields |
bureauCode, programCode, accessLevel mandatory for federal datasets (separate schema files per federal/non-federal/ISO 19115, see Geospatial metadata) |
Single unified schema; agency identity via Organization/Agent objects instead of code fields |
| Series / collections | Ad hoc via isPartOf string pointing at a "collection id" |
First-class DatasetSeries class with first/last/seriesMember[]; datasets link back via inSeries
|
| Data services | Not modeled: an API is a dataset with an accessURL distribution |
First-class DataService class (servesDataset) |
| Versioning / provenance | None |
version, versionNotes, hasVersion, previousVersion/hasCurrentVersion, wasGeneratedBy/wasAttributedTo (PROV-O style) |
Full reference: DCAT-US 3.0 Dataset class.
Unchanged (same name, same shape): title, description, identifier, modified, keyword, distribution.
Reshaped (same concept, different structure):
| Field | 1.1 shape | 3.0 shape |
|---|---|---|
contactPoint |
single vCard {fn, hasEmail}, required |
Kind object or array, Mandatory |
publisher |
Organization {name, subOrganizationOf}, required |
Organization, Mandatory; same shape, shared Agent definition |
theme |
array of free strings | array of Concept objects (label + optional inScheme) |
spatial |
free string or ad hoc GeoJSON object |
Location object/array (geometry/bbox/centroid/prefLabel) |
temporal |
single ISO 8601 interval string | array of PeriodOfTime objects (startDate/endDate) |
accessLevel |
required enum: public/restricted public/non-public
|
replaced by accessRights, free text, Optional |
describedBy |
URI string to a data dictionary | full Distribution object (title + mediaType + URL) |
isPartOf |
string, ad hoc "collection id" | superseded by inSeries (real DatasetSeries link) and/or hasPart/source
|
accrualPeriodicity |
ISO 8601 repeat interval or "irregular"
|
anyOf ISO 19115 codes, ISO 8601 repeat intervals, or Dublin Core frequency terms |
New in 3.0 (no 1.1 equivalent): version/versionNotes, hasVersion/previousVersion/hasCurrentVersion/replaces, hasPart/source, qualifiedRelation, qualifiedAttribution/wasAttributedTo/wasGeneratedBy/wasUsedBy, hasQualityMeasurement, spatialResolutionInMeters/temporalResolution, otherIdentifier, sample, status, conformsTo (as Standard objects), rightsHolder, liabilityStatement, purpose, scopeNote, provenance, metadataDistribution.
1.1 only (dropped or superseded): bureauCode/programCode (no 1:1 replacement; agency identity now comes from the Organization/Agent graph), accessLevel enum (→ accessRights free text), primaryITInvestmentUII/systemOfRecords/dataQuality (no direct replacement), references (→ page, list of Document objects), @type: "dcat:Dataset" CURIE (→ plain "Dataset").
| Field | 1.1 | 3.0 |
|---|---|---|
dataset |
array of Dataset, required | array of Dataset, Mandatory; same |
@context/describedBy/conformsTo
|
separate string fields (JSON-LD context URL + schema URL) | collapsed into a single conformsTo pointing at a Standard object |
service |
n/a | array of DataService, Optional; catalog can now be non-empty via services alone |
record |
n/a |
CatalogRecord[]: per-resource registration metadata, distinct from the resource's own modified
|
catalog/hasPart
|
n/a | nested/related catalogs, for federated or hierarchical catalogs |
themeTaxonomy |
n/a | array of ConceptScheme: declares which controlled vocabularies theme/category draw from |
spatial |
n/a | catalog-level Location[] (1.1 catalog has no spatial field at all) |
-
DatasetSeries: a group of datasets published on a recurring basis (e.g. one Dataset per fiscal year). Has its ownpublisher,temporal/spatialcoverage, and orders members viafirst/last/seriesMember[]. -
DataService: an API or query endpoint described as a resource in its own right. Can declareservesDataset. 1.1 has no service concept; an API there is only a dataset whose distribution happens to be anaccessURL. -
CatalogRecord: wraps a Dataset/DataService with catalog-specific bookkeeping, namely when this catalog registered or last touched the resource, distinct from the resource's ownmodified. Its@idhas no declared requirement level in the spec, so a valid record can have no identifier of its own. -
Concept/ConceptScheme: backing model for controlled vocabularies. AConceptis a label optionally scoped to aConceptScheme. Used anywhere 1.1 just had a bare string:theme,category,subject,status.
1.1 spatial is just a string (a place name, or occasionally a raw GeoJSON-ish object). 3.0 spatial is a Location object (or array of them) that can represent geography four different ways: geometry, bbox, centroid, or prefLabel. A given record may populate any subset of those, with no guarantee more than one is present.
| Version | Shape |
|---|---|
| 1.1 |
"theme": ["Climate Science"], bare strings |
| 3.0 |
"theme": [{"@type": "Concept", "prefLabel": "Climate Science"}], objects optionally scoped to a ConceptScheme via inScheme
|
| Path | What it is |
|---|---|
datagov-harvester/_external/dcat-us/ |
Git submodule checkout of GSA/dcat-us: the 3.0 schema source of truth, plus generated docs under jsonschema/docs/
|
datagov-harvester/schemas/dcatus1.1/ |
The four 1.1 Project Open Data schema files: catalog.json, federal_dataset.json, non-federal_dataset.json, iso-non-federal_dataset.json
|
datagov-harvester/example_data/dcatus/ |
Fixture payloads for both versions: dcatus*.json (1.1) vs dcatus3_0*.json (3.0) |