Skip to content

DCAT US 1.1 vs 3.0

James Brown edited this page Sep 1, 2026 · 4 revisions

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.

Overview

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)

Dataset fields

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").

Catalog fields

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)

New top-level classes in 3.0

  • DatasetSeries: a group of datasets published on a recurring basis (e.g. one Dataset per fiscal year). Has its own publisher, temporal/spatial coverage, and orders members via first/last/seriesMember[].
  • DataService: an API or query endpoint described as a resource in its own right. Can declare servesDataset. 1.1 has no service concept; an API there is only a dataset whose distribution happens to be an accessURL.
  • CatalogRecord: wraps a Dataset/DataService with catalog-specific bookkeeping, namely when this catalog registered or last touched the resource, distinct from the resource's own modified. Its @id has 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. A Concept is a label optionally scoped to a ConceptScheme. Used anywhere 1.1 just had a bare string: theme, category, subject, status.

Spatial handling

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.

Theme / category: string → Concept

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

Schema reference locally

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)

Clone this wiki locally