Skip to content

DCAT US 3.0

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

DCAT-US 3.0 is Data.gov's incoming metadata standard, replacing DCAT-US 1.1 (the 2014 Project Open Data schema). It is a JSON Schema 2020-12 implementation of the W3C DCAT v3 vocabulary, maintained at GSA/dcat-us. The authoritative field-level documentation lives at resources.data.gov/resources/dcat-us3.

Why it exists

  • Overcomes v1.1's spatial/geospatial limits without needing a separate federal geospatial standard
  • Adds first-class support for data services (APIs) and dataset series (recurring publications)
  • Adds controlled-vocabulary support (Concept/ConceptScheme) instead of bare strings for theme/category
  • Closely related to v1.1: new elements added, no major rework of existing ones

Status

Key structural differences from 1.1

  • Root Catalog gets a service[] array (DataService) alongside dataset[], as well as a datasetSeries[] array (DatasetSeries), plus optional record[] (CatalogRecord) and nested catalog[]/hasPart[]
  • contactPoint goes from a single vCard to a Kind object or a list of them
  • theme/category go from bare strings to Concept objects, optionally scoped to a ConceptScheme
  • spatial goes from a free string to a Location object (geometry/bbox/centroid/prefLabel)
  • New top-level classes: DatasetSeries (recurring publications), DataService (APIs), CatalogRecord (catalog registration metadata), Concept/ConceptScheme (controlled vocabularies)

For the full field-by-field diff against 1.1, see DCAT-US 1.1 vs 3.0.

Notable spec design points

  • CatalogRecord's @id has no declared requirement level, so a spec-valid record can have no identifier of its own; it is primaryTopic and modified that carry the meaning.
  • spatial (Location) can represent geography four different ways: geometry, bbox, centroid, or prefLabel. A given record may populate any subset of them.
  • Series membership can be dual: a dataset may legitimately appear both as a top-level catalog.dataset entry and as a DatasetSeries.seriesMember. It is preferred to only list as a datasetSeries.seriesMember

Official documentation

Source & schema reference

Clone this wiki locally