DCAT-US Schema v3.0 Supporting classes
Overview
Reference for the DCAT-US v3.0 supporting classes. These classes are referenced from Dataset, Distribution, Catalog, DataService, and DatasetSeries.
Source
Category
Keywords
Details
See an error on this page or have other feedback? Email us at DataGovHelp@gsa.gov
Overview
Supporting classes are referenced from Dataset, Distribution, Catalog, DataService, and DatasetSeries. Most agencies will encounter them indirectly — through a field that points to one of these structures. The sections below cover the classes agencies are most likely to work with directly. The full class index at the bottom of this page lists all supporting classes with links to their source files.
Most supporting class objects also accept an optional @id field — a URI that uniquely identifies the specific instance of that object. This is useful for linked data implementations but is not required for standard federal data inventory use.
—
Agents and organizations
Three classes handle people and organizations in DCAT-US v3.0: Agent (an abstract entity — person, organization, or system), Organization (a named organizational entity with hierarchy support), and Kind (contact information modeled on vCard). A fourth class, Address, is used within Kind to express physical addresses.
As a general rule: use Organization for publisher on Dataset — it supports preferred labels, abbreviations, and parent hierarchy. Use Agent for publisher on Catalog and DataService, and for creator, contributor, and wasAttributedTo on Dataset and DataService — it is a simpler class intended for any type of entity. Use Kind for all contactPoint fields.
Agent
An entity responsible for a resource — a person, organization, software agent, or other entity. Referenced by creator, contributor, and wasAttributedTo on Dataset and DataService. Also used by publisher on Catalog and DataService.
| Field | Required | Type | Description |
|---|---|---|---|
name |
Mandatory | string | The name of the agent. Example: "National Climate Data Center" |
@type |
Optional | string | Defaults to Agent. |
category |
Optional | array of Concept objects | The type of agent — for example, a federal agency, contractor, or research institution. |
Source: Agent.json
Organization
A named organizational entity, typically used for publisher on Dataset. Extends Agent with support for preferred labels, alternative names, abbreviations, and hierarchical parent organizations.
| Field | Required | Type | Description |
|---|---|---|---|
name |
Mandatory | string | The full name of the organization. Example: "U.S. Census Bureau" |
@type |
Optional | string | Defaults to Organization. |
prefLabel |
Optional | string | The preferred or legal name of the organization. Example: "United States Census Bureau" |
altLabel |
Optional | string | An alternative name, trading name, or common abbreviation. Example: "Census Bureau" |
notation |
Optional | array of strings | Official abbreviations or codes for the organization. Example: ["USCB", "CB"] |
subOrganizationOf |
Optional | array of Organization objects | Parent organization(s). Can be nested to express full hierarchy — bureau within agency within U.S. Government. In v3.0 this is an array; in v1.1 it was a single object. |
Example:
{
"@type": "Organization",
"name": "U.S. Census Bureau",
"prefLabel": "United States Census Bureau",
"altLabel": "Census Bureau",
"notation": ["USCB"],
"subOrganizationOf": [
{
"@type": "Organization",
"name": "U.S. Department of Commerce"
}
]
}
Source: Organization.json
Kind
Contact information modeled on vCard. Referenced by contactPoint on Dataset, DataService, Catalog, and DatasetSeries. Can be a single object or an array of objects when multiple contacts are needed.
| Field | Required | Type | Description |
|---|---|---|---|
fn |
Mandatory | string | The full formatted name of the contact. Can be a person's name or a team name. Example: "Climate Data Support Team" |
hasEmail |
Mandatory | string | Email address formatted with the mailto: prefix. Example: "mailto:climate@agency.gov" |
@type |
Optional | string | Defaults to Kind. |
tel |
Optional | string | Telephone number. Example: "+1-202-555-0100" |
organization-name |
Optional | string | The name of the organization the contact belongs to. Example: "Office of Data Management" |
title |
Optional | string | The position or role of the contact. Example: "Data Steward" |
given-name |
Optional | string | The contact's given (first) name. |
family-name |
Optional | string | The contact's family (last) name. |
address |
Optional | array of Address objects | Physical or mailing address(es) for the contact. See Address below. |
Example:
{
"@type": "Kind",
"fn": "Climate Data Support Team",
"hasEmail": "mailto:climate@agency.gov",
"tel": "+1-202-555-0100",
"organization-name": "National Climate Data Center",
"title": "Data Steward"
}
Source: Kind.json
Address
A physical or mailing address. Referenced by address on Kind. No fields are required — include what is available.
| Field | Required | Type | Description |
|---|---|---|---|
street-address |
Optional | string | Street name and civic number. Example: "1401 Constitution Ave NW" |
locality |
Optional | string | City. Example: "Washington" |
region |
Optional | string | State or administrative area. Example: "DC" |
postal-code |
Optional | string | Postal or ZIP code. Example: "20230" |
country-name |
Optional | string | Country name. Example: "United States" |
Source: Address.json —
Location and time
Location
A named place or geographic area. Referenced by spatial on Dataset, DataService, and DatasetSeries. No fields are required — use what is available. At minimum provide a prefLabel. For geospatial precision add a bbox.
| Field | Required | Type | Description |
|---|---|---|---|
prefLabel |
Recommended | string | The preferred name of the location. Example: "United States", "Washington, D.C." |
bbox |
Recommended | string (WKT) or GeoJSON Polygon object | Bounding box for the location. Accepts either a WKT string or a GeoJSON Polygon object.
WKT example: "POLYGON((-125 24, -66 24, -66 50, -125 50, -125 24))"
GeoJSON example: {"type": "Polygon", "coordinates": [[[-125.0, 24.0], [-66.0, 24.0], [-66.0, 50.0], [-125.0, 50.0], [-125.0, 24.0]]]} |
centroid |
Optional | string (WKT) or GeoJSON Point object | The geographic center of the location. Example: {"type": "Point", "coordinates": [-77.0369, 38.9072]} |
geometry |
Optional | string or GeoJSON object | Full geometry of the location in WKT, GeoJSON, or GML format. |
altLabel |
Optional | string | An alternative name for the location. Example: "DC" for Washington D.C. |
identifier |
Optional | Identifier object | A unique geographic identifier, such as a GeoNames URI. |
inScheme |
Optional | ConceptScheme object | The gazetteer or geographic authority list this location belongs to. |
Example:
{
"@type": "Location",
"prefLabel": "Continental United States",
"bbox": "POLYGON((-125 24, -66 24, -66 50, -125 50, -125 24))"
}
Source: Location.json
PeriodOfTime
A temporal interval defined by a start date and/or end date. Referenced by temporal on Dataset, DataService, and DatasetSeries. At least one of startDate or endDate must be present. Open-ended periods are valid — you can omit either date.
| Field | Required | Type | Description |
|---|---|---|---|
startDate |
Recommended | string (ISO 8601) | The start date of the period. Accepts date, datetime, year (YYYY), or year-month (YYYY-MM). Example: "2020-01-01"
Upgrading from v1.1? The v1.1 plain interval string format (e.g., "2000-01-15T00:00:00Z/2010-01-15T00:00:00Z") is no longer valid. Convert to a PeriodOfTime object with explicit startDate and endDate fields. |
endDate |
Recommended | string (ISO 8601) | The end date of the period. Accepts date, datetime, year, or year-month. Example: "2024-12-31" |
@type |
Optional | string | Defaults to PeriodOfTime. |
Examples:
{
"@type": "PeriodOfTime",
"startDate": "2020-01-01",
"endDate": "2024-12-31"
}
{
"@type": "PeriodOfTime",
"startDate": "2020-01-01"
}
Note: In v1.1 temporal was a plain ISO 8601 interval string (e.g., "2000-01-15T00:00:00Z/2010-01-15T00:00:00Z"). That format is no longer valid in v3.0.
Source: PeriodOfTime.json
—
Controlled vocabularies
Concept
A controlled term or label, optionally drawn from a concept scheme (controlled vocabulary). Used throughout the schema in fields like theme, status, category, accrualPeriodicity, and accessRestriction.restrictionStatus.
Concept is flexible — it can be a plain string for simple cases, or a full object with vocabulary linkage for richer implementations.
| Form | When to use | Example |
|---|---|---|
| Plain string | When you have a label but no controlled vocabulary URI | "Climate Science" |
Object with prefLabel |
When you want a structured label without linking to a scheme | {"prefLabel": "Climate Science"} |
Object with prefLabel and inScheme |
When linking to a formal controlled vocabulary | {"prefLabel": "Climate Science", "inScheme": {"title": "Federal Data Categories"}} |
Full Concept object fields:
| Field | Required | Type | Description |
|---|---|---|---|
prefLabel |
Mandatory (if object) | string | The preferred label for this concept. |
altLabel |
Optional | string | An alternative label. |
definition |
Optional | string | A definition of the concept. |
notation |
Optional | array of strings | Abbreviations or codes from code lists. |
inScheme |
Optional | ConceptScheme object | The controlled vocabulary or taxonomy this concept belongs to. |
Examples showing all three forms:
"theme": ["Climate Science"]
"theme": [
{
"prefLabel": "Climate Science"
}
]
"theme": [
{
"prefLabel": "Climate Science",
"definition": "Data related to climate observations, modeling, and research.",
"inScheme": {
"@type": "ConceptScheme",
"title": "Federal Data Categories"
}
}
]
Source: Concept.json
ConceptScheme
A controlled vocabulary, taxonomy, or other list of approved terms. Referenced by themeTaxonomy on Catalog and by inScheme on Concept and Location.
| Field | Required | Type | Description |
|---|---|---|---|
title |
Mandatory | string | The title of the concept scheme. Example: "Federal Data Categories" |
description |
Recommended | string | A description of the vocabulary and what it covers. |
version |
Optional | string | Version number or designation. Example: "2.0.1" |
issued |
Optional | string (ISO 8601) | Date the vocabulary was formally published. |
modified |
Optional | string (ISO 8601) | Most recent date the vocabulary was updated. |
Source: ConceptScheme.json —
Identifiers and integrity
Identifier
A unique identifier and optionally its scheme and other relevant information. Referenced by identifier and otherIdentifier on Dataset, Distribution, DataService, and other classes.
Like Concept, Identifier is flexible — it can be a plain string or a full object.
| Field | Required | Type | Description |
|---|---|---|---|
notation |
Optional | string | The identifier value. Example: "10.7927/H45X26V8" |
schemaAgency |
Optional | string | The name of the agency that issued the identifier. Example: "DOI Foundation" |
creator |
Optional | Organization object | The organization that manages the identifier scheme. |
issued |
Optional | string (ISO 8601) | Date the identifier was issued. |
version |
Optional | string | Version of the identifier scheme. |
Identifier is flexible — it can be a plain string or a structured object:
"identifier": "https://doi.org/10.7927/H45X26V8"
"identifier": {
"@type": "Identifier",
"notation": "10.7927/H45X26V8",
"schemaAgency": "DOI Foundation",
"issued": "2018-03-01"
}
Source: Identifier.json
Checksum
A mechanism for verifying that the contents of a Distribution have not changed. Referenced by checksum on Distribution. New in v3.0.
| Field | Required | Type | Description |
|---|---|---|---|
algorithm |
Mandatory | string | The algorithm used to produce the checksum. Example: "SHA-256" |
checksumValue |
Mandatory | string | A lowercase hexadecimal encoded digest value. Example: "a1b2c3d4e5f6..." |
Example:
{
"@type": "Checksum",
"algorithm": "SHA-256",
"checksumValue": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456"
}
Source: Checksum.json
Standard
A standard or specification that another resource conforms to. Referenced by conformsTo on Dataset, Distribution, DataService, and Catalog. No fields are required — include what is available.
| Field | Required | Type | Description |
|---|---|---|---|
title |
Recommended | string | Human-readable title of the standard. Example: "DCAT-US 3.0" |
description |
Recommended | string | Plain-language summary of the standard. |
identifier |
Recommended | Identifier object or string | A persistent URI for the standard. Example: "https://resources.data.gov/dcat-us/3.0.0" |
issued |
Recommended | string (ISO 8601) | Date the standard was formally published. |
inScheme |
Recommended | ConceptScheme object | A standards registry this standard belongs to. |
created |
Optional | string (ISO 8601) | The date the standard was first created. |
modified |
Optional | string (ISO 8601) | The most recent date the standard was updated. |
Example:
{
"@type": "Standard",
"title": "DCAT-US 3.0",
"identifier": "https://resources.data.gov/dcat-us/3.0.0",
"issued": "2025-05-01"
}
Source: Standard.json
Document
A publication or other document related to a resource. Referenced by page on Dataset and Distribution, and by landingPage and homepage on Dataset and Catalog respectively.
| Field | Required | Type | Description |
|---|---|---|---|
title |
Mandatory | string | The title of the document. Example: "Climate Data User Guide" |
accessURL |
Optional | string (IRI) | A URL that gives access to the document — typically an HTML page. |
downloadURL |
Optional | string (IRI) | A direct download URL for the document file. |
mediaType |
Optional | string (IANA Media Type) | The file format of the document. Example: "application/pdf" |
description |
Recommended | string | Plain-language summary of the document. |
creator |
Optional | array of Kind objects | The individual person(s) responsible for creating the document. Uses Kind objects — the same class as contactPoint. Use this for named individuals. |
corporateCreator |
Optional | array of Organization objects | The corporate organization(s) responsible for creating the document. Uses Organization objects. Use this for institutional authorship. Example: [{"name": "National Climate Data Center"}] |
bibliographicCitation |
Recommended | string | A plain-text bibliographic citation for the document. |
issued |
Recommended | string (ISO 8601) | Publication date of the document. |
publisher |
Recommended | array of Organization objects | The organization(s) that published the document. |
identifier |
Recommended | Identifier object | A unique identifier for the document such as a DOI or ISBN. |
Source: Document.json —
Quality and provenance
QualityMeasurement
A measurement of a resource against a specific quality metric. Referenced by hasQualityMeasurement on Dataset, Distribution, and DataService. New in v3.0. Replaces the boolean dataQuality field from v1.1.
| Field | Required | Type | Description |
|---|---|---|---|
isMeasurementOf |
Mandatory | Metric object | The quality metric being measured. See Metric below. |
value |
Mandatory | string | The measured value, expressed as a string. Example: "98.5". The data type is declared in the Metric's expectedDataType field. |
unitMeasure |
Optional | string | Unit of measure for the value. Example: "percent" |
Metric
A standard used to measure one aspect of data quality. Used within QualityMeasurement as the isMeasurementOf field.
| Field | Required | Type | Description |
|---|---|---|---|
expectedDataType |
Mandatory | string | The expected data type of the measured value. Example: "xsd:decimal", "xsd:boolean" |
inDimension |
Mandatory | string (URI) | URI of the quality dimension being measured. Example: "https://agency.gov/quality/completeness" |
definition |
Recommended | string | A plain-language definition of the metric. Example: "Percentage of non-null values in required fields." |
Example of a complete quality measurement:
{
"@type": "QualityMeasurement",
"isMeasurementOf": {
"@type": "Metric",
"expectedDataType": "xsd:decimal",
"inDimension": "https://agency.gov/quality/completeness",
"definition": "Percentage of non-null values in required fields."
},
"value": "98.5",
"unitMeasure": "percent"
}
Source: QualityMeasurement.json · Metric.json
Activity
An activity related to creating, changing, or using a resource. Referenced by wasGeneratedBy and wasUsedBy on Dataset and DataService.
| Field | Required | Type | Description |
|---|---|---|---|
label |
Mandatory | string | A human-readable label for the activity. Example: "Data Collection", "Quality Control Review" |
category |
Optional | array of Concept objects | Categories for the activity type. |
Source: Activity.json —
Relationships
Attribution
A responsibility that an agent has for a resource. Referenced by qualifiedAttribution on Dataset, Catalog, and DataService. Useful when you need to distinguish specific roles — data collector, quality reviewer, data steward — beyond what creator or publisher can express.
| Field | Required | Type | Description |
|---|---|---|---|
hadRole |
Mandatory | string | The role the agent plays. Example: "Data Steward", "Quality Reviewer" |
agent |
Mandatory | Agent object | The agent that has this role. Requires name. |
Source: Attribution.json
Relationship
Additional information about how one resource is related to another, including the named role of that relationship. Referenced by qualifiedRelation on Dataset. Use this when isReferencedBy or relation are not specific enough about the nature of the relationship.
| Field | Required | Type | Description |
|---|---|---|---|
hadRole |
Mandatory | string | The nature of the relationship. Example: "isInputTo", "dataProvider" |
relation |
Mandatory | string (IRI) | The IRI of the related resource. Example: "https://agency.gov/models/climate-prediction" |
Source: Relationship.json
CatalogRecord
A record describing when and how a single resource was registered in a catalog. Referenced by record on Catalog. Useful for tracking catalog provenance — when a dataset was added, by whom, and under what schema.
| Field | Required | Type | Description |
|---|---|---|---|
modified |
Mandatory | string (ISO 8601) | The most recent date the catalog record was changed. |
primaryTopic |
Mandatory | string (IRI) | IRI linking to the Dataset, DataService, or Catalog described by this record. Example: "https://agency.gov/datasets/climate-2024" |
status |
Recommended | Concept object | Editorial status of the record. Example: {"prefLabel": "published"} |
conformsTo |
Recommended | Standard object | The application profile the catalog record's metadata conforms to. |
description |
Optional | array of strings | One or more plain-language descriptions of the catalog record. Note: unlike most other classes where description is a single string, CatalogRecord accepts an array of strings.
Example: ["This catalog record describes the registration of the Climate Data 2024 dataset.", "Added to catalog January 2025."] |
language |
Optional | string or array of strings | ISO 639-1 two-letter language code(s) for the catalog record metadata. Example: "en" or ["en", "es"] |
issued |
Optional | array of ISO 8601 date strings | Date(s) on which the record was included in the catalog. Note: this is an array, not a single date. |
title |
Optional | string | A name for the catalog record. |
source |
Optional | string | The original metadata this record was derived from — a URL or description of the source. |
Source: CatalogRecord.json —
Access and use restrictions
Three classes provide structured, machine-readable ways to express access and use restrictions on a Distribution. They are new in v3.0 and specific to the U.S. federal context. See the Distribution fields page for guidance on how to use them together.
AccessRestriction
Rules or indicators describing who can access a resource. Referenced by accessRestriction on Distribution. Uses NARA authority lists for controlled vocabulary values.
| Field | Required | Type | Description |
|---|---|---|---|
restrictionStatus |
Mandatory | Concept object | Whether or not there are access restrictions. Use the NARA Access Restriction Status list. Example: {"prefLabel": "Unrestricted"} or {"prefLabel": "Restricted - Fully"} |
specificRestriction |
Recommended | Concept object | The specific authority or policy defining the restriction. Use the NARA Specific Access Restriction list. Example: {"prefLabel": "FOIA Exemption 6"} |
restrictionNote |
Optional | string | A plain-language explanation of the restriction. |
Source: AccessRestriction.json
UseRestriction
Rules or legal limits on how a resource may be used after access is granted. Referenced by useRestriction on Distribution. Structurally identical to AccessRestriction but applies to use rather than access.
| Field | Required | Type | Description |
|---|---|---|---|
restrictionStatus |
Mandatory | Concept object | Whether or not there are use restrictions. Use the NARA Use Restriction Status list. Example: {"prefLabel": "Unrestricted"} |
specificRestriction |
Recommended | Concept object | The specific use restriction authority or policy. Example: {"prefLabel": "Copyright"} |
restrictionNote |
Optional | string | A plain-language explanation of the use restriction or terms of use. |
Source: UseRestriction.json
CUIRestriction
Controlled Unclassified Information (CUI) marking information for a distribution. Referenced by cuiRestriction on Distribution. Required for any distribution containing CUI per Executive Order 13556 and NARA guidelines. Distributions that do not contain CUI should set this field to null.
| Field | Required | Type | Description |
|---|---|---|---|
cuiBannerMarking |
Mandatory | string | The CUI banner marking string per the NARA CUI Registry. Example: "CUI//SP-PRVCY", "CUI//SP-CTI" |
designationIndicator |
Mandatory | string | Identifies the agency that designated the information as CUI. Must include "Controlled by:" followed by agency name and contact where possible. Example: "Controlled by: Example Federal Agency; POC: jane.smith@agency.gov" |
requiredIndicatorPerAuthority |
Optional | array of strings | Required indicators from the applicable authority. Example: ["Privacy Act of 1974", "Federal Records Act"] |
Source: CUIRestriction.json —
Full class index
| Class | Group | Referenced from | Source |
|---|---|---|---|
| Agent | Agents | creator, contributor, wasAttributedTo on Dataset; publisher on Catalog and DataService |
Agent.json |
| Organization | Agents | publisher on Dataset; subOrganizationOf on Organization |
Organization.json |
| Kind | Agents | contactPoint on Dataset, DataService, Catalog, DatasetSeries |
Kind.json |
| Address | Agents | address on Kind |
Address.json |
| Location | Location and time | spatial on Dataset, DataService, DatasetSeries, Catalog |
Location.json |
| PeriodOfTime | Location and time | temporal on Dataset, DataService, DatasetSeries, Catalog |
PeriodOfTime.json |
| Concept | Controlled vocabularies | theme, status, category, accrualPeriodicity, restriction fields and others |
Concept.json |
| ConceptScheme | Controlled vocabularies | themeTaxonomy on Catalog; inScheme on Concept and Location |
ConceptScheme.json |
| Document | Docs and standards | page on Dataset and Distribution; landingPage on Dataset; homepage on Catalog |
Document.json |
| Standard | Docs and standards | conformsTo on Dataset, Distribution, DataService, Catalog |
Standard.json |
| Identifier | Identifiers and integrity | identifier, otherIdentifier on Dataset, Distribution, DataService, Location |
Identifier.json |
| Checksum | Identifiers and integrity | checksum on Distribution |
Checksum.json |
| QualityMeasurement | Quality and provenance | hasQualityMeasurement on Dataset, Distribution, DataService |
QualityMeasurement.json |
| Metric | Quality and provenance | isMeasurementOf on QualityMeasurement |
Metric.json |
| Activity | Quality and provenance | wasGeneratedBy, wasUsedBy on Dataset and DataService |
Activity.json |
| Attribution | Relationships | qualifiedAttribution on Dataset, Catalog, DataService |
Attribution.json |
| Relationship | Relationships | qualifiedRelation on Dataset |
Relationship.json |
| CatalogRecord | Relationships | record on Catalog |
CatalogRecord.json |
| AccessRestriction | Restrictions | accessRestriction on Distribution |
AccessRestriction.json |
| UseRestriction | Restrictions | useRestriction on Distribution |
UseRestriction.json |
| CUIRestriction | Restrictions | cuiRestriction on Distribution |
CUIRestriction.json |
Source: jsonschema/definitions/