DCAT is an RDF vocabulary designed to facilitate interoperability between data catalogs published on the Web. This document defines the schema and provides examples for its use.
By using DCAT to describe datasets in data catalogs, publishers increase discoverability and enable applications easily to consume metadata from multiple catalogs. It further enables decentralized publishing of catalogs and facilitates federated dataset search across sites. Aggregated DCAT metadata can serve as a manifest file to facilitate digital preservation.
Status of This Document
This section describes the status of this document at the time of its publication.
Other documents may supersede this document. A list of current W3C publications and the
latest revision of this technical report can be found in the W3C technical reports index at
https://www.w3.org/TR/.
For purposes of the W3C Patent Policy, this Superseded Recommendation has the same status as an active Recommendation; it retains licensing commitments and remains available as a reference for old -- and possibly still deployed -- implementations, but is not recommended for future implementation. New implementations should follow the latest version of the Data Catalog Vocabulary (DCAT) specification.
DCAT incorporates terms from pre-existing vocabularies, where stable terms with appropriate meanings could be found, such as foaf:homepage and dct:title. Informal summary definitions of these terms are included here for convenience, while complete definitions are available in the provided authoritative references. Changes to definitions in those references, if any, will supersede the summaries given in this specification. Note that conformance to DCAT (Section 3) concerns usage of only the terms in the DCAT namespace itself, so possible changes to the external definitions will not affect conformance of DCAT implementations.
Data can come in many formats, ranging from spreadsheets over XML and RDF to various speciality formats. DCAT does not make any assumptions about the format of the datasets described in a catalog. Other, complementary vocabularies may be used together with DCAT to provide more detailed format-specific information. For example, properties from the VoID vocabulary [void] can be used to express various statistics about a DCAT-described dataset if that dataset is in RDF format.
This document does not prescribe any particular method of deploying data expressed in DCAT. DCAT is applicable in many contexts including RDF accessible via SPARQL endpoints, embedded in HTML pages as RDFa, or serialized as e.g. RDF/XML or Turtle. The examples in this document use Turtle simply because of Turtle's readability.
2. Namespaces
The namespace for DCAT is https://www.w3.org/ns/dcat#. However,
it should be noted that DCAT makes extensive use of terms from other vocabularies,
in particular Dublin Core. DCAT itself defines a minimal set of classes and
properties of its own. A full set of namespaces and prefixes used in this
document is shown in the table below.
Prefix
Namespace
dcat
https://www.w3.org/ns/dcat#
dct
https://purl.org/dc/terms/
dctype
https://purl.org/dc/dcmitype/
foaf
https://xmlns.com/foaf/0.1/
rdf
https://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs
https://www.w3.org/2000/01/rdf-schema#
skos
https://www.w3.org/2004/02/skos/core#
vcard
https://www.w3.org/2006/vcard/ns#
xsd
https://www.w3.org/2001/XMLSchema#
3. Conformance
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples,
and notes in this specification are non-normative. Everything else in this specification is
normative.
The key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, RECOMMENDED, MAY,
and OPTIONAL in this specification are to be interpreted as described in [RFC2119].
A data catalog conforms to DCAT if:
It is organized into datasets and distributions.
An RDF description of the catalog itself and its datasets and distributions is available (but the choice of
RDF syntaxes, access protocols, and access policies is not mandated by this specification).
The contents of all metadata fields that are held in the catalog, and that contain data about the catalog itself and its dataset and distributions, are included in this RDF description, expressed using the appropriate classes and properties from DCAT, except where no such class or property exists.
All classes and properties defined in DCAT are used in a way consistent with the semantics declared in this specification.
DCAT-compliant catalogs MAY include additional non-DCAT metadata fields and additional RDF data in the catalog's RDF description.
A DCAT profile is a specification for data catalogs that adds additional constraints to DCAT. A data catalog that conforms to the profile also conforms to DCAT. Additional constraints in a profile MAY include:
A minimum set of required metadata fields
Classes and properties for additional metadata fields not covered in DCAT
Controlled vocabularies or URI sets as acceptable values for properties
Requirements for specific access mechanisms (RDF syntaxes, protocols) to the catalog's RDF description
4. Vocabulary Overview
This section is non-normative.
DCAT is an RDF vocabulary well-suited to representing government data catalogs such as Data.gov and data.gov.uk. DCAT defines three main classes:
dcat:Distribution represents an accessible form of a dataset as for example a downloadable file, an RSS feed or a web service that provides the data.
Notice that a dataset in DCAT
is defined as a "collection of data, published or curated by a single agent, and available for access or
download in one or more formats". A dataset does not have to be available as a downloadable file.
For example, a dataset that is available via an API can be defined as an instance of dcat:Dataset and the
API can be defined as an instance of dcat:Distribution. DCAT itself does not define properties specific to APIs description.
These are considered out of the scope of this version of the vocabulary. Nevertheless, this can be defined as a profile of the DCAT vocabulary.
Another important class in DCAT is dcat:CatalogRecord which describes a dataset entry in the catalog. Notice that while dcat:Dataset represents the dataset itself, dcat:CatalogRecord represents the record that describes a dataset in the catalog. The use of the CatalogRecord is considered optional. It is used to capture provenance information about dataset entries in a catalog. If this distinction is not necessary then CatalogRecord can be safely ignored.
All RDF examples in this document are written in Turtle syntax [turtle].
4.1 Basic Example
This example provides a quick overview of how DCAT might be used to represent a government catalog and its datasets.
The publisher of the catalog has the relative URI :transparency-office. Further description of the publisher can be provided as in the following example:
:transparency-office
a foaf:Organization ;
rdfs:label "Transparency Office" ;
.
The catalog lists each of its datasets via dcat:dataset property. In the example above, an example dataset was mentioned with the relative URI :dataset-001. A possible description of it using DCAT is shown below:
In order to express frequency of update in the example above, we chose to use an instance from the Content-Oriented Guidelines developed as part
of the W3C Data Cube Vocabulary efforts. Additionally, we chose to describe the spatial and temporal coverage of the example dataset using URIs from Geonames and the Interval dataset from data.gov.uk, respectively. A contact point is also provided where comments and feedback about the dataset can be sent. Further details about the contact point, such as email address or telephone number, can be provided using VCard [vcard-rdf].
The dataset distribution :dataset-001-csv can be downloaded as a 5Kb CSV file. This information is
represented via an RDF resource of type dcat:Distribution.
:dataset-001-csv
a dcat:Distribution ;
dcat:downloadURL <https://www.example.org/files/001.csv> ;
dct:title "CSV distribution of imaginary dataset 001" ;
dcat:mediaType "text/csv" ;
dcat:byteSize "5120"^^xsd:decimal ;
.
4.2 Classifying datasets
The catalog classifies its datasets according to a set of domains represented by the relative URI :themes. SKOS can be used to describe the domains used:
:catalog dcat:themeTaxonomy :themes .
:themes
a skos:ConceptScheme ;
skos:prefLabel "A set of domains to classify documents" ;
.
:dataset-001 dcat:theme :accountability .
Notice that this dataset is classified under the domain represented by the relative URI :accountability.
It is recommended to define the concept as part of the concepts scheme identified by the URI :themes that was used to describe the catalog domains. An example SKOS description:
If the catalog publisher decides to keep metadata
describing its records (i.e. the records containing metadata
describing the datasets), dcat:CatalogRecord can be used. For example,
while :dataset-001 was issued on 2011-12-05, its description on Imaginary Catalog was added on 2011-12-11. This can be represented by DCAT as in the following:
:dataset-002 is available as a CSV file. However :dataset-002 can only be obtained through some Web page
where the user needs to click some links, provide some information and check some boxes
before accessing the data
Notice that we used dcat:downloadURL with the downloadable distribution and that the other distribution through the landing page
does not have to be defined as a separate dcat:Distribution instance.
5. Vocabulary specification
The definitions (including domain and range) of terms outside the dcat namespace are provided here only for convenience and must not be considered normative. The authoritative definitions of these terms are in the corresponding specifications: [DC11], [FOAF], [RDF-SCHEMA], [SKOS-REFERENCE], [xmlschema-2] and [vcard-rdf].
The language of the catalog. This refers to the language used in the textual metadata describing titles, descriptions, etc. of the datasets in the catalog.
Range:
dct:LinguisticSystem
Resources defined by the Library of Congress (1,
2) SHOULD be used.
If a ISO 639-1 (two-letter) code is defined for language, then its corresponding IRI SHOULD be used; if no ISO 639-1 code is defined, then IRI corresponding to the ISO 639-2 (three-letter) code SHOULD be used.
Usage note:
Multiple values can be used. The publisher might also choose to describe the language on the dataset level (see dataset language).
foaf:homepage is an inverse functional property (IFP) which means that it should be unique and precisely identify the catalog. This allows smushing various descriptions of the catalog when different URIs are used.
This links to the license document under which the catalog
is made available and not the datasets. Even if the license of the catalog applies to all of its
datasets and distributions, it should be replicated on each distribution.
This describes the rights under which the catalog
can be used/reused and not the datasets. Even if theses rights apply to all the catalog
datasets and distributions, it should be replicated on each distribution.
A record in a data catalog, describing a single dataset.
Usage note
This class is optional and not all catalogs will use it. It exists for catalogs where a distinction is made between metadata about
a dataset and metadata about the dataset's entry in the catalog. For example, the publication date property of the dataset reflects
the date when the information was originally made available by the publishing agency, while the publication date of the catalog record is the date when the dataset was added to the catalog.
In cases where both dates differ, or where only the latter is known, the publication date should only be specified for the catalog record.
Notice that the W3C PROV Ontology [prov-o] allows describing further provenance information such as the details of the process and the agent involved in a particular change to a dataset.
If a catalog is represented as an RDF Dataset with named graphs (as defined in [sparql11-query]),
then it is appropriate to place the description of each dataset
(consisting of all RDF triples that mention the dcat:Dataset, dcat:CatalogRecord, and any of its dcat:Distributions)
into a separate named graph. The name of that graph should be the IRI of the catalog record.
This indicates the date of last change of a catalog entry, i.e. the catalog metadata description of the dataset, and not the date of the dataset itself.
This class represents the actual dataset as published by the dataset publisher. In cases where a distinction between the actual dataset and its entry in the catalog is necessary (because metadata such as modification date and maintainer might differ), the catalog record class can be used for the latter.
The value of this property indicates a change to the actual dataset, not a change to the catalog record. An absent value may indicate that the dataset has never changed after its initial publication, or that the date of last modification is not known, or that the dataset is continuously updated.
dct:LinguisticSystem
Resources defined by the Library of Congress (1,
2) SHOULD be used.
If a ISO 639-1 (two-letter) code is defined for language, then its corresponding IRI SHOULD be used; if no ISO 639-1 code is defined, then IRI corresponding to the ISO 639-2 (three-letter) code SHOULD be used.
Usage note:
This overrides the value of the catalog language in case of conflict.
If the dataset is available in multiple languages, use multiple values for this property. If each language is available separately, define an instance of dcat:Distribution for each language and describe the specific language of each distribution using dct:language (i.e. the dataset will have multiple dct:language values and each distribution will have one of these languages as value of its dct:language property).
The set of skos:Concepts used to categorize the datasets are organized in a skos:ConceptScheme describing all the categories and their relations in the catalog.
If the distribution(s) are accessible only through a landing page
(i.e. direct download URLs are not known), then the landing page link SHOULD be duplicated as accessURL on a distribution. (see example 4.4)
Represents a specific available form of a dataset. Each dataset might be available in different forms,
these forms might represent different formats of the dataset or different endpoints.
Examples of distributions include a downloadable CSV file, an API or an RSS feed
Usage note:
This represents a general availability of a dataset it implies no information
about the actual access method of the data, i.e. whether it is a direct download, API, or some through Web page.
The use of dcat:downloadURL property indicates directly downloadable distributions.
dct:license, which is a sub-property of dct:rights, can be used to link
a distribution to a license document. However, dct:rights allows linking to a rights statement that
can include licensing information as well as other information that supplements the licence such as attribution.
Use accessURL, and not downloadURL, when it is definitely not a download or when you are not sure whether it is.
If the distribution(s) are accessible only through a landing page
(i.e. direct download URLs are not known), then the landing page link SHOULD be duplicated as accessURL on a distribution. (see example 4.4)
dcat:downloadURL is a specific form of dcat:accessURL. Nevertheless, DCAT does not define dcat:downloadURL as a subproperty of dcat:accessURL not to enforce this entailment as DCAT profiles may wish to impose a stronger separation where they only use accessURL for non-download locations.
A category or a theme used to describe datasets in the catalog.
Usage note:
It is recommended to use either skos:inScheme or skos:topConceptOf on every skos:Concept
used to classify datasets to link it to the concept scheme it belongs to. This concept scheme is typically associated with the catalog using dcat:themeTaxonomy
FOAF [FOAF] provides sufficient properties to describe these entities.
A. Acknowledgements
This document contains a significant contribution from Richard Cyganiak. Richard Cyganiak
is one of the initiators of the DCAT work and
significantly contributed to the work on this specification as it made its way through the W3C process.
The editors would like to thank Vassilios Peristeras for his comments and support for the original DCAT work. Vassilios Peristeras is also one of the initiators of the DCAT work. We would also like to thank Rufus Pollock for his significant input and comments.
This document has benefited from inputs from many members of the Government Linked Data Working Group.
Specific thanks are due to Ghislain Atemezing, Martin Alvarez and Makx Dekkers.
Section 5.4 Property: download URL; usage note saying "this value is a URL" is removed as it is confusing given that the range is rdfs:Resource
Section 5.3 Property: contact point; change range from vcard:VCard to vcard:Kind. These two classes are equivalent however vcard:VCard is deprecated.
Section 5.3 Property: language; usage note is expanded to describe the case of multiple language datasets.
Section 4. Clarification text regarding versioning is added:
"DCAT itself does not define properties specific to APIs description.
These are considered out of the scope of this version of the vocabulary. Nevertheless, this can be defined as a profile of the DCAT vocabulary."