Skip to content
To be published
Technical, semantic, and organizational conventions for the application of DCAT-AP-ES
DCAT-AP-ES 1.0.0 - Conventions
  • State secretariat for Digitization and Artificial intelligence
  • datos.gob.es
  • Aporta Initiative
More details about this document
Reference date:
Latest Published Version:
https://datosgobes.github.io/DCAT-AP-ES
Latest Editor's Draft:
https://github.com/datosgobes/DCAT-AP-ES/releases/tag/1.0.0
History:
Change History
Editors:
Equipo gestor de la plataforma datos.gob.es (Iniciativa Aporta)
Author:
datos.gob.es platform Management Team (Aporta Initiative)
Feedback:
GitHub DCAT-AP-ES
Owners:
Spanish Government Open Data Initiative
Also available in:

datos.gob.es Conventions

Introduction#

In Spain, the exchange of open data between the Open Data Initiative of the Government of Spain (datos.gob.es) and various data providers, such as regional catalogs, Local Entities, and other organizations, is framed to ensure interoperability and homogeneity of metadata. To achieve this, the European application profile DCAT-AP 2.1.1 will be adapted together with the elements described in the extension DCAT-AP HVD 2.2.0 to incorporate the modeling of the High Value Datasets (High Value Datasets) to national needs, resulting in the standard DCAT-AP-ES, which will be established as a reference for the exchange of metadata on public information at national level.

Since the implementation of the standard, datos.gob.es accepts metadata in DCAT-AP-ES format, as well as the application profile referred to in the Technical Standard. For those providers who federate directly to the portal, a transitional period will be established following the publication of new versions, during which they can adjust their systems to the updated standard from the previous profile of the Technical Standard for Interoperability of Public Sector Information Resources (NTI-RISP).

The conventions guide not only details the specific modifications introduced in the Spanish standard compared to the European version but also defines additional rules to address practical needs. These may include particularities of the Spanish open data context, where implementation might align with distinct technical requirements. Moreover, some of these rules are expected to evolve faster than the main specification, providing greater flexibility and adaptability to technological changes.

This document has as its target audience the developers and maintainers of open data portals, as well as data providers who collaborate with the national catalog. Its purpose is to provide clear guidelines and practical tools for implementing the standard efficiently. However, for use in specific contexts, the possibility of establishing additional conventions that complement general regulations is left open.

To ensure consistent interpretation, normative terms such as MUST, SHOULD, and MAY are used, as defined in RFC2119, to differentiate mandatory guidelines from optional ones. Although the manual includes diagrams and illustrative examples, these are not normative unless explicitly stated.

This approach aims not only to standardize metadata exchange but also to foster greater harmonization and collaboration among different levels of government in Spain, ensuring robust and scalable interoperability.

Prefixes Used#

All namespace prefixes used throughout the document are referenced in Annex 4. Namespaces used in the document.

Types of Conventions#

Technical Conventions#

These conventions define technical aspects of implementation, including encoding, resource identification, and entity modeling. They are essential for ensuring technical interoperability and correct interpretation of metadata.

Organizational Conventions#

These conventions establish rules for the management and organization of catalogs, data federation, and the identification of organizations. They provide the necessary governance framework for effective metadata management.

Semantic Conventions#

These conventions ensure consistency in the description of resources, guaranteeing that metadata is semantically accurate and consistent.

List of Conventions#

  • Convention 01: The publisher's identifier MUST be registered and available in the taxonomy of datos.gob.es
  • Convention 02: The literals dct:title, dct:description, vcard:organization-name, vcard:fn, foaf:name, dcat:keyword and adms:versionNotes MUST be defined with language tags, at least in Spanish es, and cannot be empty literals.
  • Convention 03: Identifiers and URI references SHOULD use the http:// scheme instead of https:// as a general rule.
  • Convention 04: Organizations SHOULD implement automatic federation through RDF as the sole method of publishing metadata in DCAT-AP-ES format, avoiding the coexistence of manual and automatic federation for the same organization.
  • Convention 05: URIs MUST be correctly encoded at their source, especially when they contain: 1. Reserved characters (?, &, =, #, etc.) 2. Spaces 3. Non-ASCII characters (accents, ñ, etc.) 4. Special characters (<, >, ", {, }, |, \, ^, ~, [, ], `)
  • Convention 06: Resources MUST have a unique and persistent identifier that meets the following requirements: 1. Include the dct:identifier property with a unique value for each resource. 2. Maintain identifier consistency even if the resource is updated. 3. Use the same identifier when the resource is published in different catalogs. 4. Generate, maintain, and manage the identifier by the resource publisher, being external to datos.gob.es
  • Convention 07: References to legal documents MUST use ELI identifiers when available: 1. For European legislation: http://data.europa.eu/eli/... 2. For national legislation: https://www.boe.es/eli/... 3. For derived documents, use the ELI URI of the main document
  • Convention 08: Creation and modification dates of resources MUST meet the following requirements: 1. The modification date (dct:modified) MUST be later than the creation date (dct:created) 2. The modification date MUST reflect the last change in the data, not in the metadata
  • Convention 09: A single catalog per publishing organization MUST be used, avoiding the use of subcatalogs through dct:hasPart. Relationships between resources MUST be modeled using the following properties as appropriate.
  • Convention 10: The catalog MUST include at least the primary sector taxonomy in the dcat:themeTaxonomy property.
  • Convention 11: Additional taxonomies MAY be included to improve dataset classification: http://publications.europa.eu/resource/authority/data-theme or http://inspire.ec.europa.eu/theme
  • Convention 12: Datasets cataloged as HVD MUST include at least one data service (dcat:DataService) with the following mandatory properties: 1. Endpoint URL (dcat:endpointURL) 2. Endpoint Description (dcat:endpointDescription) 3. Contact Point (dcat:contactPoint) 4. Applicable Legislation (dcatap:applicableLegislation) 5. HVD Category (dcatap:hvdCategory) 6. Documentation (foaf:page) 7. Served Datasets (dcat:servesDataset)
  • Convention 13: OGC services SHOULD be modeled as dcat:DataService instead of dcat:Distribution.
  • Convention 14: Publisher information SHOULD contain a DIR3 identifier code in the identifier property (dct:identifier), for example: EA0000000
  • Convention 15: Creator information SHOULD contain a DIR3 identifier code in the identifier property (dct:identifier), for example: EA0000000
  • Convention 16: Geographic coverage MUST be declared using URIs from the Annex V of NTI-RISP for geographic resources of Spanish territory, following these rules: 1. Use the most specific territorial level that corresponds to the dataset's actual scope. 2. Avoid using Spain by default when the scope is narrower. 3. Do not declare an Autonomous Community and its provinces simultaneously. 4. For single-province Autonomous Communities, preferably use the reference to the Autonomous Community.
  • Convention 17: When specifying geometric coverage, WKT SHOULD be used (according to GeoSPARQL).
  • Convention 18: HVD data services MUST include at least one contact point (dcat:contactPoint) with one of the following properties: Email address (vcard:hasEmail) or Contact form URL (vcard:hasURL)
  • Convention 19: The contact point SHOULD include: 1. Name (vcard:organization-name) 2. Telephone number (vcard:hasTelephone) 3. Organization identifier (vcard:hasUid) 4. Email address (vcard:hasEmail) 5. Contact form URL (vcard:hasURL)
  • Convention 20: Contact points listed in the portal's taxonomy MUST be described as a vcard:Kind and not directly with the organization's URI.
  • Convention 21: In OGC service distributions, access URLs MUST be modeled as follows: In dcat:accessURL: Complete URL of the service capabilities request GetCapabilities (e.g.: http://example.org/wms?request=GetCapabilities&service=WMS) and in dct:conformsTo: URL of the corresponding OGC standard, e.g.: http://www.opengeospatial.org/standards/wms
  • Convention 22: Time periods MUST be described exclusively using the properties dcat:startDate and dcat:endDate within dct:temporal. The interval can also be open, that is, it can have only a start or only an end.
  • Convention 23: Datasets MUST include at least one distribution (dcat:Distribution).
  • Convention 24: When a DCAT-AP-ES resource derives from a source metadata of another standard (for example: INSPIRE/ISO19139, MARC21, DataCite, EML, Dublin Core, etc.), a relationship SHOULD be included using the adms:identifier property pointing to the persistent identifier of the source metadata, using a node of type adms:Identifier.
  • Convention 25: To describe a dataset accessible via NSIP/ERPD, each dcat:Dataset MUST include: 1. dct:title: name given to the dataset. 2. dct:description: summary of the content in free text. 3. dct:publisher: entity (organization) responsible for making the dataset available. 4. dct:accessRights: access restrictions with one of the two only possible values RESTRICTED or NON_PUBLIC 5. dcat:distribution: at least one distribution available to access the dataset.
  • Convention 26: To describe a distribution accessible via NSIP/ERPD, each dcat:Distribution MUST include: 1. dcat:accessURL: URL with information on how to request access. 2. dcat:byteSize: size in bytes (can be approximate). 3. dct:format: file type (vocabulary file-type) 4. dct:rights: reuse conditions applicable to this distribution.
  • Convention 27: A dataset accessible via NSIP/ERPD SHOULD be related through dcatap:applicableLegislation with specific legislation (at least the DGA Regulation: http://data.europa.eu/eli/reg/2022/868/oj) and, if it includes directly accessible endpoints or APIs, use the class dcat:DataService to describe the service in addition to dcat:Distribution.
  • Convention 28: For APIs with universal access APIKey (automatic registration without manual approval), a dcat:DataService SHOULD use dct:accessRights with value PUBLIC and include dcat:endpointDescription with OpenAPI document that specifies securitySchemes or document in foaf:page the documentation to obtain the key.
  • Convention 29: For APIs with restricted access APIKey (requires approval, contract or payment), a dcat:DataService SHOULD use dct:accessRights with value RESTRICTED and indicate in dct:rights the terms of use and dcat:endpointDescription with OpenAPI document.
  • Convention 30: The dcat:themeTaxonomy property in catalogs and the dcat:theme property in datasets and data services MUST support flexible cardinality 1..* to allow classification in as many thematic schemes or taxonomies as necessary, as long as at least one corresponds to the primary sector taxonomy.

General conventions#

Organization must have an identifier registered in datos.gob.es taxonomy.#

To ensure the traceability of publishing organizations, they must be registered and available in datos.gob.es taxonomy), either as a DIR3 for a public organization or a private organization whose identifier is the letter P followed by their NIF as a fictitious code (see Annex 3. Mapping of Organizational Identifiers).

Convention 01

The publisher's identifier MUST be registered and available in the taxonomy of datos.gob.es

Indicating Spanish language in declarations#

Literal fields with multilingual xml:lang tags must be at least in Spanish (es).

Convention 02

The literals dct:title, dct:description, vcard:organization-name, vcard:fn, foaf:name, dcat:keyword and adms:versionNotes MUST be defined with language tags, at least in the spanish language es, and cannot be empty literals.

Using HTTP URIs#

To maintain compatibility and avoid interoperability issues with systems that do not support TLS/SSL, it is recommended to use HTTP URIs instead of HTTPS in identifiers and references. HTTP URIs are equally dereferencable as HTTPS through redirection.

Convention 03

Identifiers and URI references SHOULD use the http:// scheme instead of https:// as a general rule. This applies to:

  1. Resource identifiers (dcat:Dataset, dcat:Distribution, etc.)
  2. References to controlled vocabularies
  3. URIs of taxonomies and concept schemes

Example of correct URI usage

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .

# ✅ Uso recomendado general con HTTP
<http://datos.gob.es/catalogo/dataset/001>
    a dcat:Dataset ;
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
    dcat:theme <http://publications.europa.eu/resource/authority/data-theme/TECH> .

# ✅ Excepción para ELIs del BOE
<http://datos.gob.es/catalogo/dataset/002>
    a dcat:Dataset ;
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
    dcatap:applicableLegislation <https://www.boe.es/eli/es/rdlg/2001/07/20/1> .

# ❌ Uso no recomendado con HTTPS
<https://datos.gob.es/catalogo/dataset/001>
    a dcat:Dataset ;
    dct:publisher <https://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
    dcat:theme <https://publications.europa.eu/resource/authority/data-theme/TECH> .

Note on exceptions

There are exceptions to this recommendation, where the use of https:// is justified:

  • BOE ELI URIs: The ELI identifiers of the Official State Gazette (BOE) use the https:// scheme (https://www.boe.es/eli/...). Due to the nature of these identifiers and their widespread adoption, it is allowed and recommended to maintain the https:// scheme for BOE ELI URIs.

Automatic Data Federation#

To ensure consistency and quality of metadata, as well as to simplify the federation process, the exclusive use of automatic federation through RDF (DCAT-AP-ES) is established as the sole method for data ingestion into the portal.

Convention 04

Organizations SHOULD implement automatic federation through RDF as the sole method of publishing metadata in DCAT-AP-ES format, avoiding the coexistence of manual and automatic federation for the same organization.

Important

The coexistence of manual and automatic federation for the same organization can cause:

  • Inconsistencies in metadata
  • Duplicate datasets
  • Synchronization issues
  • Validation difficulties

Note on Transition

Organizations currently using manual federation must plan the migration of their datasets to the new automatic federation system through RDF for DCAT-AP-ES.

URI Encoding#

To ensure RDF validity and avoid processing issues, all URIs must be correctly encoded according to RFC 3986.

Convention 05

URIs MUST be correctly encoded at their source, especially when they contain:

  1. Reserved characters (?, &, =, #, etc.)
  2. Spaces
  3. Non-ASCII characters (accents, ñ, etc.)
  4. Special characters (<, >, ", {, }, |, \, ^, ~, [, ], `)

Example of Correct URI Encoding

1
2
3
4
5
6
7
8
9
 @prefix dcat: <http://www.w3.org/ns/dcat#> .

# ✅ URI correctamente codificada
<https%3A%2F%2Fwww.ine.es%2Fdyngs%2FINEbase%2Foperacion.htm%3Fc%3DEstadistica_C%26menu%3Dresultados> 
    a dcat:Dataset .

# ❌ URI sin codificar (incorrecto)
<https://www.ine.es/dyngs/INEbase/operacion.htm?c=Estadistica_C&menu=resultados> 
    a dcat:Dataset .

Important

The responsibility for encoding lies with the origin that generates the URIs:

  1. URIs must be encoded before serializing RDF to prevent it from being invalid.
  2. Encoding should not be delegated to subsequent systems

Note on Implementation

To encode URIs, standard functions can be used:

  • JavaScript: encodeURIComponent()
  • Python: urllib.parse.quote()
  • Java: URLEncoder.encode()

Unique and Persistent Identifiers#

To ensure correct identification and traceability of resources over time, as well as to avoid duplicities during federation from multiple sources, it is necessary to establish a system of unique and persistent identifiers since the identifier (dct:identifier) is the property that allows unique and unambiguous identification of the dataset.

Convention 06

Resources MUST have a unique and persistent identifier that meets the following requirements:

  1. Include the dct:identifier property with a unique value for each resource.
  2. Maintain identifier consistency even if the resource is updated.
  3. Use the same identifier when the resource is published in different catalogs.
  4. Generate, maintain, and manage the identifier by the resource publisher, being external to datos.gob.es

Example of consistent identifiers

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .

# Dataset en el catálogo de datos abiertos 
<http://datos.comunidad.es/dataset/medioambiente/calidad-aire-2024>
    a dcat:Dataset ;
    dct:identifier "MA-AIRE-2024" ;
    dct:title "Calidad del aire 2024"@es .

# El mismo dataset en el catálogo CSW (conforme a GeoDCAT-AP)
<https://ide.comunidad.es/catalogo/dataset/calidad-aire-2024> 
    a dcat:Dataset ;
    dct:identifier "MA-AIRE-2024" ;
    dct:title "Calidad del aire 2024"@es .

Important

  • Identifiers must not change even if the resource's URI changes.
  • The same dataset published in different catalogs must maintain the same dct:identifier.
  • In case of conflict during federation, the last federated dataset will prevail according to the established order.
  • It is the sole responsibility of the publisher to maintain, persist, and ensure uniqueness of the identifier. Identifiers CANNOT be those assigned by datos.gob.es, as these are external and may change for internal reasons.

Recommended identifier schemes

The following identifier schemes are recommended:

Scheme Example Recommended use
UUID v4 550e8400-e29b-41d4-a716-446655440000 Recommended by default for new datasets without a previous identifier
URI + UUID http://{base}/catalogo/{UUID} Web-resolvable identifiers

Note on Implementation

To avoid duplicates during federation:

  1. Coordinate with other publishers the assignment of identifiers.
  2. Document the identifier scheme used.
  3. Maintain a record of equivalences between identifiers from different sources.
  4. Consult the established federation order in case of multiple publications.

ELI Identifiers for Legal Documents#

To ensure a unique and persistent reference to legal documents, the European Legislation Identifier (ELI) must be used as the standard URI.

Convention 07

References to legal documents MUST use ELI identifiers when available:

  1. For European legislation: http://data.europa.eu/eli/...
  2. For national legislation: https://www.boe.es/eli/...
  3. For derived documents, use the ELI URI of the main document

Example of Using ELI Identifiers

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix dcatap: <http://data.europa.eu/r5r/> .

# Referencia a legislación comunitaria (UE)
<http://example.org/dataset/1> a dcat:Dataset ;
    dcatap:applicableLegislation <http://data.europa.eu/eli/reg_impl/2023/138/oj> ;
    dct:conformsTo <http://data.europa.eu/eli/dir/2007/2/2021-06-27> .
    ...

# Referencia a legislación nacional (España)
<http://example.org/dataset/2> a dcat:Dataset ;
    dct:conformsTo <https://www.boe.es/eli/es/l/2007/12/16/37/con> .
    ...

Important

  • Always use the consolidated version when available
  • For documents without ELI, use an alternative persistent URI
  • Maintain a record of equivalences between different identifiers

Note on Implementation

  • Consult the ELI registry to obtain identifiers
  • Use ELI validation tools to verify the correctness of identifiers
  • Document the equivalences between different versions of legal documents

Managing Creation and Modification Dates#

To ensure the temporal traceability of resources and their correct tracking, it is important to properly manage creation and modification dates.

Convention 08

Creation and modification dates of resources MUST meet the following requirements:

  1. The modification date (dct:modified) MUST be later than the creation date (dct:created)
  2. The modification date MUST reflect the last change in the data, not in the metadata

Example of Proper Date Management

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# Ejemplo de gestión correcta de fechas
<http://example.org/dataset/1> a dcat:Dataset ;
    dct:title "Dataset ejemplo"@es ;
    dct:created "2025-01-01"^^xsd:date ;
    dct:modified "2025-01-30"^^xsd:date .

# Ejemplo con precisión horaria
<http://example.org/dataset/2> a dcat:Dataset ;
    dct:title "Dataset con hora"@es ;
    dct:created "2025-01-01T10:00:00Z"^^xsd:dateTime ;
    dct:modified "2025-01-30T15:30:00Z"^^xsd:dateTime .

Important

  • The modification date must reflect changes in the data, not in the metadata
  • Dates must be consistent across different catalogs
  • Do not use future dates

Important

  • Dates must be consistent across different catalogs
  • Do not use future dates

Note on Implementation

To validate dates:

  1. Verify that the modification date is later than the creation date
  2. Check that the dates are in the formats defined by the model. Dates can be recorded using the standard format: YYYY-MM-DD (xsd:date), or the ISO-8601 datetime YYYY-MM-DDThh:mm:ss (xsd:dateTime). To improve interoperability it is recommended to include a time zone (TZD), for example Z or +01:00 (the validator will emit a warning if missing). The year: YYYY (xsd:gYear) or the year and month: YYYY-MM (xsd:gYearMonth) are also allowed.

Specification of Temporal Periods#

The dct:temporal property in DCAT-AP-ES is used to describe the time period to which a dataset refers. Currently, there are multiple ways to describe this information, including the use of dcat:startDate, dcat:endDate, time:hasBeginning, time:hasEnd and schema:startDate, schema:endDate. However, this flexibility can generate inconsistencies in the representation of temporal periods.

Since both dcat:startDate and dcat:endDate can be recorded with sufficiently flexible ranges, this approach is adopted for organizational reasons.

Convention 22

Time periods MUST be described exclusively using the properties dcat:startDate and dcat:endDate within dct:temporal. The interval can also be open, that is, it can have only a start or only an end.

Example of correct use of a temporal period

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .

<http://datos.comunidad.es/dataset/medioambiente/calidad-aire-2024>
    a dcat:Dataset ;
    dct:title "Calidad del aire 2024"@es ;
    dct:temporal [
        a dct:PeriodOfTime ;
        dcat:startDate "2024-01-01T00:00:00Z"^^xsd:dateTime ;
        dcat:endDate "2024-12-31T23:59:59Z"^^xsd:dateTime
    ] .

Note on Implementation

It is recommended to review metadata, if inherited from the initial version of NTI-RISP, to update schema:startDate, schema:endDate (properties prior to DCAT 2) in new records according to the DCAT vocabulary.

Restricted data but accessible through NSIP/ERPD#

This convention defines how to represent datasets that are not open but are accessible under the implementation of the DGA (Data Governance Act) through NSIP/ERPD. For more information on publishing restricted data in the context of NSIP/ERPD, you can find it in the Guidelines for collecting data from the European Protected Data Registry (ERPD) in the possession of the public sector.

Convention 25

To describe a dataset accessible via NSIP/ERPD, each dcat:Dataset MUST include:

  1. dct:title: name given to the dataset.
  2. dct:description: summary of the content in free text.
  3. dct:publisher: entity (organization) responsible for making the dataset available.
  4. dct:accessRights: access restrictions with one of the two only possible values RESTRICTED or NON_PUBLIC
  5. dcat:distribution: at least one distribution available to access the dataset.

Convention 26

To describe a distribution accessible via NSIP/ERPD, each dcat:Distribution MUST include:

  1. dcat:accessURL: URL with information on how to request access.
  2. dcat:byteSize: size in bytes (can be approximate).
  3. dct:format: file type (vocabulary file-type)
  4. dct:rights: reuse conditions applicable to this distribution.

Convention 27

A dataset accessible via NSIP/ERPD SHOULD be related through dcatap:applicableLegislation with specific legislation (at least the DGA Regulation: http://data.europa.eu/eli/reg/2022/868/oj) and, if it includes directly accessible endpoints or APIs, use the dcat:DataService class to describe the service in addition to dcat:Distribution.

Example of correct usage

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> . 
@prefix dcatap: <http://data.europa.eu/r5r/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://dcat-ap-es.ejemplo.org/dataset/dataset-ejemplo-1>
    a dcat:Dataset ;
    dct:title "Dataset de ejemplo"@es, "Example Dataset"@en ;

    # Otros metadatos obligatorios DCAT-AP-ES
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/E0DAT0001> ;
    dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ;

    # Metadatos obligatorios NSIP/ERPD (Dataset)
    dct:accessRights <http://publications.europa.eu/resource/authority/access-right/RESTRICTED> ;
    dcat:distribution <http://dcat-ap-es.ejemplo.org/dataset/dataset-ejemplo-1/dist/1> ;

    # Metadatos recomendados NSIP/ERPD (Dataset)
    dcatap:applicableLegislation <http://data.europa.eu/eli/reg/2022/868/oj> .

<http://dcat-ap-es.ejemplo.org/dataset/dataset-ejemplo-1/dist/1>
    a dcat:Distribution ;
    dct:title "Distribución JSON"@es ;

    # Metadatos obligatorios NSIP/ERPD (Distribution)
    dcat:accessURL <https://example.com/nsip/request-access> ;
    dct:format <http://publications.europa.eu/resource/authority/file-type/JSON> ;
    dcat:byteSize "18006"^^xsd:decimal ;
    dct:rights <http://publications.europa.eu/resource/authority/licence/CC_BY_4_0> .

<http://dcat-ap-es.ejemplo.org/services/api/1>
    a dcat:DataService ;

    # Otros metadatos obligatorios DCAT-AP-ES
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/E0DAT0001> ;
    dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ;

    # Metadatos obligatorios NSIP/ERPD (DataService)
    dct:title "Servicio API REST de ejemplo"@es ;
    dcat:endpointURL <http://dcat-ap-es.ejemplo.org/services/api/1> ;
    dcat:servesDataset <http://dcat-ap-es.ejemplo.org/dataset/dataset-ejemplo-1> .

Important

  • The data.europa.eu harvester will automatically filter datasets with dct:accessRights containing: http://publications.europa.eu/resource/authority/access-right/RESTRICTED or http://publications.europa.eu/resource/authority/access-right/NON_PUBLIC for the ERPD catalog
  • The absence of dcat:byteSize or dct:format in the distribution may cause it to be rejected in the ingestion process.
  • If both dct:accessURL and dcat:downloadURL are provided, the harvester will prioritize accessURL for NSIP.

Expansion of Topic Taxonomies#

In the DCAT-AP-ES profile, the cardinality of the dcat:themeTaxonomy properties (in catalog) and dcat:theme (in datasets and services) is currently limited to a maximum of 3 values (1..3). However, there are scenarios where it is necessary to associate more than three thematic taxonomies or topics, especially for interoperability with sectoral profiles (INSPIRE, Eurovoc), integration with international catalogs, or for multithematic datasets.

Convention 30

The dcat:themeTaxonomy property in catalogs and the dcat:theme property in datasets and data services MUST support flexible cardinality 1..* to allow classification in as many thematic schemes or taxonomies as necessary, as long as at least one corresponds to the primary sector taxonomy.

Example of expanded topics serialization

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

<http://ejemplo.org/catalogo/1> a dcat:Catalog ;
    dcat:themeTaxonomy <http://datos.gob.es/kos/sector-publico/sector> ,
                    <http://publications.europa.eu/resource/authority/data-theme> ,
                    <http://inspire.ec.europa.eu/theme/> ,
                    <http://custom.org/vocab/taxonomy> .

...

<http://ejemplo.org/dataset/123> a dcat:Dataset ;
    dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ,
                <http://publications.europa.eu/resource/authority/data-theme/ENVI> ,
                <http://inspire.ec.europa.eu/theme/hy> ,
                <http://custom.org/vocab/theme/agua> .

Conventions for dcat:Catalog#

Subcatalogs and relationships between resources (dct:hasPart)#

To maintain simplicity and avoid ambiguity problems in catalog federation, it is recommended to use a single catalog per organization and express relationships between resources through the specific subproperties of dcterms:relation.

Convention 09

A single catalog per publishing organization MUST be used, avoiding the use of subcatalogs through dct:hasPart. Relationships between resources MUST be modeled using the following properties as appropriate:

  1. For dataset distributions: dcat:distribution
  2. For data services: dcat:service
  3. For versions: dct:hasVersion
  4. For related resources with known semantics: other subproperties of dct:relation
  5. For non-specific relationships: dct:relation

Example of modeling relationships without subcatalogs

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .

# Catálogo único por organismo
<http://datos.gob.es/catalogo/org/EA0000000>
    a dcat:Catalog ;
    dct:title "Catálogo de datos abiertos"@es ;
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
    dcat:dataset <http://datos.gob.es/catalogo/dataset/001> ;
    dcat:service <http://datos.gob.es/catalogo/dataset/001/service/1> .

# Dataset con múltiples relaciones
<http://datos.gob.es/catalogo/dataset/001>
    a dcat:Dataset ;
    dct:title "Dataset principal"@es ;
    # Distribución del dataset
    dcat:distribution <http://datos.gob.es/catalogo/dataset/001/distribution/1> ;
    # Nueva versión del dataset
    dct:hasVersion <http://datos.gob.es/catalogo/dataset/001/v2> ;
    # Dataset relacionado (semántica específica)
    dct:isPartOf <http://datos.gob.es/catalogo/dataset/000> ;
    # Recurso relacionado (semántica general)
    dct:relation <http://datos.gob.es/recurso/relacionado/xyz> .

Note on the use of relationships

  1. Always use the most specific property available to express the relationship
  2. dct:relation should be used only when the nature of the relationship is unknown
  3. Hierarchical relationships can be expressed through dct:isPartOf/dct:hasPart

Thematic taxonomies (dcat:themeTaxonomy)#

Catalogs must include at least the primary sector taxonomy to classify their datasets. One of the two additional taxonomies can be included to enrich the classification, information on mappings between NTI-RISP Sectors and DCAT-AP Themes (Annex 1), as well as between DCAT-AP Themes and INSPIRE Themes (Annex 2) is included.

Convention 10

The catalog MUST include at least the primary sector taxonomy in the dcat:themeTaxonomy property.

Convention 11

Additional taxonomies MAY be included to improve dataset classification: http://publications.europa.eu/resource/authority/data-theme or http://inspire.ec.europa.eu/theme

Example of taxonomy usage

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .

# Ejemplo de catálogo con múltiples taxonomías
<http://dcat-ap-es.ejemplo.org/catalogo>
    a dcat:Catalog ;
    dct:title "Catálogo de datos abiertos"@es ;
    dcat:themeTaxonomy <http://datos.gob.es/kos/sector-publico/sector>, # Taxonomía obligatoria
        <http://inspire.ec.europa.eu/theme>,                            # Taxonomía adicional: Temas INSPIRE
        <http://publications.europa.eu/resource/authority/data-theme> ; # Taxonomía adicional: Temáticas de datos (DCAT-AP)

Conventions for dcat:DataService#

HVD data services (dcat:DataService)#

High value datasets (HVD) must provide programmatic access to their data through APIs. The specification of data services is done through the dcat:DataService class associated with the dataset distributions through dcat:accessService.

Convention 12

Datasets cataloged as HVD MUST include at least one data service (dcat:DataService) with the following mandatory properties:

  1. Endpoint URL (dcat:endpointURL)
  2. Endpoint Description (dcat:endpointDescription)
  3. Contact Point (dcat:contactPoint)
  4. Applicable Legislation (dcatap:applicableLegislation)
  5. HVD Category (dcatap:hvdCategory)
  6. Documentation (foaf:page)
  7. Served Datasets (dcat:servesDataset)

Example of service access property in a distribution

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix dcatap: <http://data.europa.eu/r5r/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
@prefix cnt: <http://www.w3.org/2011/content#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://example.org/catalogo/dataset/43bc8990-f9f1-5527-8134-459b1a1cce92/resource/37cfdf38-91cd-4107-a63c-72c739dd41cd> a dcat:Distribution ;
    dcatap:applicableLegislation <http://data.europa.eu/eli/reg_impl/2023/138/oj> ;
    dct:accessRights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;
    dct:format <http://publications.europa.eu/resource/authority/file-type/CSV> ;
    dct:issued "2024-12-17T00:00:00"^^xsd:dateTime ;
    dct:license <https://publications.europa.eu/resource/authority/licence/CC_BY_4_0> ;
    dct:modified "2024-12-17"^^xsd:date ;
    dct:title "Sample CSV" ;
    cnt:characterEncoding "UTF-8" ;
    dcat:accessService [ a dcat:DataService ;
        dct:title "Example Server" ;
        dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ;
        dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
        dcat:endpointURL <https://example.org/endpoint> ;
        dcat:endpointDescription <https://example.org/endpoint/description> ;
        dcat:contactPoint [
            a vcard:Kind ;
            vcard:fn "Oficina de Datos Abiertos"@es ;
            vcard:hasUid "EA0000000" ;
            vcard:hasEmail <mailto:datos@example.org> ;
            vcard:hasTelephone <tel:+34-900999999> ;
            vcard:hasURL <https://example.org/contacto> 
        ] ;
        dcatap:applicableLegislation <http://data.europa.eu/eli/reg_impl/2023/138/oj> ;
        dcatap:hvdCategory <http://data.europa.eu/bna/c_dd313021> ;
        foaf:page <https://dcat-ap-es.ejemplo.org/api/sla.html> ;
        dct:accessRights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;
        dcat:servesDataset <https://example.org/catalogo/dataset/43bc8990-f9f1-5527-8134-459b1a1cce92>,
            <https://example.org/catalogo/dataset/43bc8990-g3jd-5527-8134-459b1a1jdk88>
    ];
    dcat:accessURL <https://example.org/catalogo/es/dataset/43bc8990-f9f1-5527-8134-459b1a1cce92/resource/37cfdf38-91cd-4107-a63c-72c739dd41cd> ;
    dcat:downloadURL <https://example.org/catalogo/es/dataset/43bc8990-f9f1-5527-8134-459b1a1cce92/resource/37cfdf38-91cd-4107-a63c-72c739dd41cd/download> ;
    dcat:mediaType <http://www.iana.org/assignments/media-types/text/csv> .

Note on Implementation

  • If the data service serves at least one HVD dataset, implementation requirements according to the HVD regulation apply.
  • The endpoint description should follow standard specifications such as OpenAPI.
  • Services must be documented at least in Spanish.
  • For non-HVD datasets, the inclusion of data services is optional but recommended.

Modeling of OGC Services#

To improve interoperability and description of OGC services (WMS, WFS, WMTS, CSW, etc.), these should be modeled using dcat:DataService instead of dcat:Distribution.

Convention 13

OGC services SHOULD be modeled as dcat:DataService instead of dcat:Distribution. This applies to:

  1. WMS (Web Map Service) services
  2. WFS (Web Feature Service) services
  3. CSW (Catalog Service for the Web) services
  4. Other standard OGC services

Example of cartographic service modeling

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix dcatap: <http://data.europa.eu/r5r/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://example.org/dataset/1> a dcat:Dataset ;
    dct:title "Dataset de ejemplo"@es ;

    ...

<http://example.org/services/wms/1> a dcat:DataService ;
    dct:title "Servicio WMS de ejemplo"@es ;
    dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> .
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
    dcat:endpointURL <http://example.org/geoserver/wms> ;
    dcat:endpointDescription <http://example.org/geoserver/wms?request=GetCapabilities> ;
    dcat:contactPoint [
        a vcard:Kind ;
        vcard:fn "Oficina de Datos Abiertos"@es ;
        vcard:hasUid "EA0000000" ;
        vcard:hasEmail <mailto:datos@example.org> ;
        vcard:hasTelephone <tel:+34-900999999> ;
        vcard:hasURL <https://example.org/contacto>
    ] ;
    dcatap:applicableLegislation <http://data.europa.eu/eli/reg_impl/2023/138/oj> ;
    dcatap:hvdCategory <http://data.europa.eu/bna/c_dd313021> ;
    foaf:page <http://example.org/services> ;
    dct:accessRights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;
    dcat:servesDataset <http://example.org/dataset/1> .

Important

The use of dcat:Distribution for OGC services:

  • Does not allow adequate description of service capabilities
  • Makes automatic federation and discovery difficult
  • Does not facilitate linking with other served datasets

Note on Implementation

When modeling OGC services as dcat:DataService:

  • Include the URL of GetCapabilities in dcat:endpointDescription
  • Link with served datasets using dcat:servesDataset
  • In dcat:endpointURL indicate the base URL of the service without parameters.

APIs with APIKey Authentication#

APIs that require API Key are classified according to the access-right vocabulary into two main categories:

Convention 28

For APIs with universal access APIKey (automatic registration without manual approval), a dcat:DataService SHOULD use dct:accessRights with value PUBLIC and include dcat:endpointDescription with OpenAPI document that specifies securitySchemes or document in foaf:page the documentation to obtain the key.

Convention 29

For APIs with restricted access APIKey (requires approval, contract or payment), a dcat:DataService SHOULD use dct:accessRights with value RESTRICTED and indicate in dct:rights the terms of use and dcat:endpointDescription with OpenAPI document.

Example of public description

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> . 
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<https://api.example.com/data>
    a dcat:DataService ;
    dcat:endpointURL <https://api.example.com/data> ;
    dct:title "API de datos abiertos de ejemplo"@es ;
    dct:description "API que requiere registro para obtener API key, pero abierta a todos"@es ;

    # Documento OpenAPI legible por máquina
    dcat:endpointDescription <https://example.org/endpoint/openapi.json> ;

    # Acceso público con API key universal
    dct:accessRights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;

    # Documentación sobre cómo obtener API key
    foaf:page <https://example.com/api-docs/getting-started> ;

    # Licencia de los datos
    dct:license <http://creativecommons.org/licenses/by/4.0/> ;

    # Dataset servido
    dcat:servesDataset <http://dcat-ap-es.ejemplo.org/dataset/dataset-ejemplo-1> . 

<http://dcat-ap-es.ejemplo.org/dataset/dataset-ejemplo-1>
    a dcat:Dataset ;
    dct:title "Dataset de ejemplo"@es ;
    dct:description "Datos accesibles mediante API"@es ;

    # Coherente con el servicio
    dct:accessRights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;
    dct:license <http://creativecommons.org/licenses/by/4.0/> ;

    # Distribución mediante servicio
    dcat:distribution <http://dcat-ap-es.ejemplo.org/distribucion/dataset-ejemplo-1-JSON> . 

<http://dcat-ap-es.ejemplo.org/distribucion/dataset-ejemplo-1-JSON>
    a dcat:Distribution ;
    dct:title "Distribución JSON vía API"@es ;
    dct:format <http://publications.europa.eu/resource/authority/file-type/JSON> ;

    # Referencia al servicio
    dcat:accessService <https://api.example.com/data> ;
    dct:license <http://creativecommons.org/licenses/by/4.0/> . 

Example of restricted description

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> . 

<https://api.example.com/premium-data>
    a dcat:DataService ;
    dcat:endpointURL <https://api.example.com/premium-data> ;
    dct:title "API de datos premium"@es ;
    dct:description "API que requiere contrato y aprobación para acceso"@es ;

    # Documento OpenAPI legible por máquina
    dcat:endpointDescription <https://example.org/endpoint/openapi.json> ;

    # Acceso restringido
    dct:accessRights <http://publications.europa.eu/resource/authority/access-right/RESTRICTED> ;

    # Términos de uso y proceso de solicitud
    dct:rights <https://example.com/api-premium-terms> ;
    foaf:page <https://example.com/api-docs/premium-access> ;

    # Licencia específica
    dct:license <https://example.com/api-premium-license> ;

    # Dataset servido
    dcat:servesDataset <http://dcat-ap-es.ejemplo.org/dataset/dataset-premium-1> .

<http://dcat-ap-es.ejemplo.org/dataset/dataset-premium-1>
    a dcat:Dataset ;
    dct:title "Dataset premium de ejemplo"@es ;
    dct:description "Datos de acceso restringido mediante API"@es ;

    # Coherente con el servicio
    dct:accessRights <http://publications.europa.eu/resource/authority/access-right/RESTRICTED> ;
    dct:rights <https://example.com/api-premium-terms> ;
    dct:license <https://example.com/api-premium-license> ;

    # Distribución mediante servicio
    dcat:distribution <http://dcat-ap-es.ejemplo.org/distribucion/dataset-premium-1-JSON> .

<http://dcat-ap-es.ejemplo.org/distribucion/dataset-premium-1-JSON>
    a dcat:Distribution ;
    dct:title "Distribución JSON vía API premium"@es ;
    dct:format <http://publications.europa.eu/resource/authority/file-type/JSON> ;

    # Referencia al servicio
    dcat:accessService <https://api.example.com/premium-data> ;
    dct:rights <https://example.com/api-premium-terms> ;
    dct:license <https://example.com/api-premium-license> .

Important

The dcat:Dataset and dcat:Distribution accessible via API Key should be consistent with the dct:accessRights of the dcat:DataService that serves them.

Note on Implementation

Universal access is considered when:

  • Registration is automatic and without manual approval
  • Does not require contracts, SLAs or special agreements
  • Can include technical limits (rate limiting, geofencing)

Restricted access is considered when:

  • Requires manual approval or review
  • Requires signing contracts, SLAs or confidentiality agreements
  • Has an economic cost
  • Is limited to specific types of users/organizations

Conventions for dcat:Dataset#

Publisher (dct:publisher)#

The traceability of the publisher should be determined by the public sector organization identifier available in the Common Directory of organizational units and offices (DIR3) whenever available.

Convention 14

Publisher information SHOULD contain a DIR3 identifier code in the identifier property (dct:identifier), for example: EA0000000

Creator (dct:creator)#

The traceability of the creator should be determined by the public sector organization identifier available in the Common Directory of organizational units and offices (DIR3) whenever available.

Convention 15

Creator information SHOULD contain a DIR3 identifier code in the identifier property (dct:identifier), for example: EA0000000

Geographic coverage (dct:spatial)#

The geographic coverage of a dataset must be described as precisely as possible using the identifiers corresponding to the geographic resources of Spanish territory described in Annex V of NTI-RISP.

Convention 16

Geographic coverage MUST be declared using URIs from the Annex V of NTI-RISP for geographic resources of Spanish territory, following these rules:

  1. Use the most specific territorial level that corresponds to the dataset's actual scope
  2. Avoid using Spain by default when the scope is narrower.
  3. Do not declare an Autonomous Community and its provinces simultaneously.
  4. For single-province Autonomous Communities, preferably use the reference to the Autonomous Community.

Examples of correct usage

@prefix dct: <http://purl.org/dc/terms/> .

# ✅ Dataset de ámbito nacional
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Pais/España> .

# ✅ Dataset de ámbito autonómico
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Autonomia/Andalucia> .

# ✅ Dataset de ámbito provincial
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Provincia/Valladolid> .

# ✅ Dataset con múltiples ámbitos no redundantes
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Autonomia/Aragon> ;
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Autonomia/Cataluna> .

Examples of incorrect usage

1
2
3
4
5
6
7
8
9
@prefix dct: <http://purl.org/dc/terms/> .

# ❌ Redundancia territorial
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Autonomia/Comunidad-Madrid> ;
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Provincia/Madrid> .

# ❌ Uso innecesario del ámbito nacional
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Pais/España> ;
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Autonomia/Andalucia> .

Geometric spatial references (dct:spatial with geometries)#

To describe the geometric coverage of datasets in an interoperable way, different properties and standard formats can be used, in particular it is recommended to use WKT (Well-Known Text) to describe the geometric coverage.

Convention 17

When specifying geometric coverage, WKT SHOULD be used (according to GeoSPARQL)

Example of geometry usage

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix locn: <http://www.w3.org/ns/locn#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .

<http://datos.example.org/dataset/123> dct:spatial [
    a dct:Location ;
    locn:geometry """POLYGON((2.937889 39.608571, 4.592285 39.608571, 
            4.592285 40.573115, 2.937889 40.573115, 2.937889 39.608571))"""^^geo:wktLiteral ;
    dcat:bbox """POLYGON((2.937889 39.608571, 4.592285 39.608571, 
            4.592285 40.573115, 2.937889 40.573115, 2.937889 39.608571))"""^^geo:wktLiteral ;
    dcat:centroid "POINT(3.765087 40.090843)"^^geo:wktLiteral
  ] .

Note on Implementation

  • dcat:bbox: Recommended to specify the bounding box (0..1).
  • dcat:centroid: Recommended to specify the geographic center of a spatial area or other characteristic point (0..1).
  • locn:geometry: For more complex, extensive or precise geometries, allows expressing a set of coordinates denoting the vertices of the geographic area.

Distribution (dcat:distribution)#

Temporary obligatoriness of distributions in datasets

Convention 23

Any resource of type dcat:Dataset MUST contain at least one instance of dcat:Distribution. This convention aims to ensure the persistence of the obligatoriness of the metadata model of NTI-RISP 2013 until its deprecation according to the new DCAT-AP-ES in the datos.gob.es federator

Minimum example of dataset with distribution

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .

<http://datos.gob.es/catalogo/dataset/001>
    a dcat:Dataset ;
    dct:title "Listado de establecimientos sanitarios"@es ;
    dcat:distribution <http://datos.gob.es/catalogo/distribution/001-csv> .

<http://datos.gob.es/catalogo/distribution/001-csv>
    a dcat:Distribution ;
    dct:format "text/csv" ;
    dcat:accessURL <https://datos.gob.es/ficheros/001.csv> .

Explicit relationship with source metadata through adms:identifier#

The federation and migration of metadata from different profiles and standards (INSPIRE/ISO19139, MARC21, DataCite, EML, Dublin Core, etc.) to DCAT-AP-ES generates the need to link the source metadata with the generated DCAT-AP-ES resources. Establishing a clear convention facilitates traceability, semantic interoperability and efficient version management in migration and federation processes between different metadata models.

Convention 24

When a DCAT-AP-ES resource derives from a source metadata of another standard (for example: INSPIRE/ISO19139, MARC21, DataCite, EML, Dublin Core, etc.), a relationship SHOULD be included using the adms:identifier property pointing to the persistent identifier of the source metadata, using a node of type adms:Identifier.

Example of a dataset related to a geographic service

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix adms: <http://www.w3.org/ns/adms#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# Dataset en DCAT-AP-ES
<http://datos.gob.es/recurso/dataset/123>
    a dcat:Dataset ;
    dct:title "Dataset geográfico de ejemplo"@es ;
    dct:identifier <http://datos.gob.es/recurso/dataset/123> ;

    # Identificador INSPIRE con contexto adicional
    adms:identifier <http://www.idee.es/csw-codsi-idee/ES-INSPIRE-456> .

# Descripción del identificador INSPIRE
<http://www.idee.es/csw-codsi-idee/ES-INSPIRE-456>
    a adms:Identifier ;
    skos:notation "ES-INSPIRE-456" ;
    dct:identifier <http://www.idee.es/csw-codsi-idee/ES-INSPIRE-456> ;
    rdfs:comment "Identificador INSPIRE del mismo dataset"@es ;

    # Propiedades contextuales adicionales
    dct:conformsTo <http://data.europa.eu/eli/reg/2008/1205> ;                      # Reglamento de Metadatos INSPIRE
    foaf:page <http://www.idee.es/csw-codsi-idee/ES-INSPIRE-456> ;                  # Página HTML de visualización del metadato INSPIRE
    foaf:homepage <http://www.idee.es/csw-codsi-idee/> ;                            # Página principal del catálogo/iniciativa de datos
    dct:format <http://publications.europa.eu/resource/authority/file-type/XML> ;
    dct:issued "2020-01-15"^^xsd:date .

Important

  • The URI referenced in the adms:identifier property must be persistent and resolvable, preferably the complete identifier of the source metadata.
  • The adms:Identifier class requires providing skos:notation, with a data type that specifies the identification scheme (including the version number if appropriate).
  • This convention does not prevent the use of other relationship properties (dct:relation, rdfs:seeAlso, dcat:qualifiedRelation) if greater granularity or complementarity is required.
  • The use of adms:Identifier as an informative node allows enriching the link to make it more usable in catalog metadata views or for external reusers.

Note on Implementation

Conventions for dcat:Distribution#

Modeling of access URLs in OGC services#

To ensure correct access to OGC services and comply with INSPIRE requirements, it is important to properly model the access URLs to services, both if they are modeled as dcat:Distribution (discouraged) or if they are modeled as dcat:DataService (recommended).

Convention 21

In OGC service distributions, access URLs MUST be modeled as follows: In dcat:accessURL: Complete URL of the service capabilities request GetCapabilities (e.g.: http://example.org/wms?request=GetCapabilities&service=WMS) and in dct:conformsTo: URL of the corresponding OGC standard, e.g.: http://www.opengeospatial.org/standards/wms

Example of description of access to cartographic services

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix dcatap: <http://data.europa.eu/r5r/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .

# ✅ Ejemplo para metadatos usando DataService (recomendado)
<http://example.org/dataset/1> a dcat:Dataset ;
    dct:title "Dataset de ejemplo"@es ;
    dct:description "Descripción del dataset de ejemplo"@es ;
    dct:identifier "dataset-1" ;
    dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ;
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
    dcat:accessService [ 
        a dcat:DataService ;
        dct:title "Servicio WMS de ejemplo"@es ;
        dct:description "Servicio WMS para acceder a los datos"@es ;
        dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ;
        dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
        dcat:endpointURL <http://example.org/geoserver/wms> ;
        dcat:endpointDescription <http://example.org/geoserver/wms?request=GetCapabilities> ;
        dct:conformsTo <http://www.opengis.net/def/serviceType/ogc/wms> ;
        dcat:contactPoint [
            a vcard:Kind ;
            vcard:fn "Centro de soporte de Organismo"@es ;
            vcard:hasEmail <mailto:info-contacto@dcat-ap-es.ejemplo.org> ;
            vcard:hasURL <https://dcat-ap-es.ejemplo.org/formulario-soporte>
        ] ;
        dcatap:applicableLegislation <http://data.europa.eu/eli/reg_impl/2023/138/oj> ;
        dcatap:hvdCategory <http://data.europa.eu/bna/c_dd313021> ;
        foaf:page <http://example.org/services> ;
        dct:accessRights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;
        dcat:servesDataset <http://example.org/dataset/1> 
    ] .

# ⚠️ Ejemplo para metadatos usando Distribution (no recomendado)
<http://example.org/dataset/2> a dcat:Dataset ;
    dct:title "Dataset de ejemplo 2"@es ;
    dct:description "Descripción del dataset de ejemplo 2"@es ;
    dct:identifier "dataset-2" ;
    dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ;
    dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> ;
    dcat:distribution [
        a dcat:Distribution ;
        dct:title "Distribución WMS de ejemplo"@es ;
        dct:description "Distribución WMS para acceder a los datos"@es ;
        dct:conformsTo <http://www.opengeospatial.org/standards/wms> ;
        dcat:accessURL <http://example.org/wms?request=GetCapabilities&service=WMS> ;
        dcatap:applicableLegislation <http://data.europa.eu/eli/reg_impl/2023/138/oj> ;
        dcat:spatialResolutionInMeters 5.0 ;
        dct:format <http://publications.europa.eu/resource/authority/file-type/WMS_SRVC> ;
        dct:license <http://publications.europa.eu/resource/authority/licence/CC_BY_4_0> ;
        dcatap:availability <http://publications.europa.eu/resource/authority/planned-availability/STABLE> 
    ] .

Important

  • It is recommended to model OGC services as DataService instead of Distribution (see Convention)
  • Do not use base URLs without GetCapabilities in the accessURL of distributions.

Conventions for dcat:contactPoint#

To facilitate communication with those responsible for datasets or data services, structured contact information must be provided using the vCard ontology for the description of people and organizations and not refer directly to IRIs of the taxonomy such as: (dcat:contactPoint <http://datos.gob.es/recurso/sector-publico/org/Organismo/A00000000>)

Convention 18

HVD data services MUST include at least one contact point (dcat:contactPoint) with one of the following properties:

  1. Email address (vcard:hasEmail) or Contact form URL (vcard:hasURL)

Convention 19

The contact point SHOULD include:

  1. Name (vcard:organization-name)
  2. Telephone number (vcard:hasTelephone)
  3. Organization identifier (vcard:hasUid)
  4. Email address (vcard:hasEmail)
  5. Contact form URL (vcard:hasURL)

Convention 20

Contact points listed in the portal's taxonomy MUST be described as a vcard:Kind and not directly with the organization's URI.

Example of correct usage

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .

<http://datos.example.org/dataset/123>
    dcat:contactPoint [
        a vcard:Kind ;
        vcard:organization-name "Organismo"@es ;
        vcard:fn "Oficina de Datos Abiertos"@es ;
        vcard:hasUid "EA0000000" ;
        vcard:hasEmail <mailto:datos@example.org> ;
        vcard:hasTelephone <tel:+34-900999999> ;
        vcard:hasURL <https://example.org/contacto> 
    ] .

Example of incorrect usage

1
2
3
4
5
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .

<http://datos.example.org/dataset/123>
    dcat:contactPoint <http://datos.gob.es/recurso/sector-publico/org/Organismo/EA0000000> .

Important

All values provided are recommended to be of a public and persistent nature, avoiding references to personal data or temporarily unstable, and preferably as close as possible to the origin of the datasets.

Annex 1. Mapping table of primary sectors to DCAT-AP Data Themes#

Primary sector (NTI) NTI URI DCAT-AP Theme DCAT-AP URI
Science and technology http://datos.gob.es/kos/sector-publico/sector/ciencia-tecnologia Science and Technology http://publications.europa.eu/resource/authority/data-theme/TECH
Commerce http://datos.gob.es/kos/sector-publico/sector/comercio Economy http://publications.europa.eu/resource/authority/data-theme/ECON
Culture and leisure http://datos.gob.es/kos/sector-publico/sector/cultura-ocio Education http://publications.europa.eu/resource/authority/data-theme/EDUC
Demography http://datos.gob.es/kos/sector-publico/sector/demografia Society http://publications.europa.eu/resource/authority/data-theme/SOCI
Sports http://datos.gob.es/kos/sector-publico/sector/deporte Education http://publications.europa.eu/resource/authority/data-theme/EDUC
Economy http://datos.gob.es/kos/sector-publico/sector/economia Economy http://publications.europa.eu/resource/authority/data-theme/ECON
Education http://datos.gob.es/kos/sector-publico/sector/educacion Education http://publications.europa.eu/resource/authority/data-theme/EDUC
Employment http://datos.gob.es/kos/sector-publico/sector/empleo Economy http://publications.europa.eu/resource/authority/data-theme/ECON
Energy http://datos.gob.es/kos/sector-publico/sector/energia Energy http://publications.europa.eu/resource/authority/data-theme/ENER
Finance http://datos.gob.es/kos/sector-publico/sector/hacienda Government http://publications.europa.eu/resource/authority/data-theme/GOVE
Industry http://datos.gob.es/kos/sector-publico/sector/industria Economy http://publications.europa.eu/resource/authority/data-theme/ECON
Legislation and justice http://datos.gob.es/kos/sector-publico/sector/legislacion-justicia Justice http://publications.europa.eu/resource/authority/data-theme/JUST
Environment http://datos.gob.es/kos/sector-publico/sector/medio-ambiente Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Rural environment http://datos.gob.es/kos/sector-publico/sector/medio-rural-pesca Agriculture http://publications.europa.eu/resource/authority/data-theme/AGRI
Health http://datos.gob.es/kos/sector-publico/sector/salud Health http://publications.europa.eu/resource/authority/data-theme/HEAL
Public sector http://datos.gob.es/kos/sector-publico/sector/sector-publico Government http://publications.europa.eu/resource/authority/data-theme/GOVE
Security http://datos.gob.es/kos/sector-publico/sector/seguridad Justice http://publications.europa.eu/resource/authority/data-theme/JUST
Society and welfare http://datos.gob.es/kos/sector-publico/sector/sociedad-bienestar Society http://publications.europa.eu/resource/authority/data-theme/SOCI
Transport http://datos.gob.es/kos/sector-publico/sector/transporte Transport http://publications.europa.eu/resource/authority/data-theme/TRAN
Tourism http://datos.gob.es/kos/sector-publico/sector/turismo Economy http://publications.europa.eu/resource/authority/data-theme/ECON
Urbanism and infrastructures http://datos.gob.es/kos/sector-publico/sector/urbanismo-infraestructuras Regions http://publications.europa.eu/resource/authority/data-theme/REGI
Housing http://datos.gob.es/kos/sector-publico/sector/vivienda Regions http://publications.europa.eu/resource/authority/data-theme/REGI

Annex 2. Mapping table between INSPIRE Themes and DCAT-AP Themes#

INSPIRE Theme INSPIRE URI DCAT-AP Theme DCAT-AP URI
Addresses (AD) http://inspire.ec.europa.eu/theme/ad Regions http://publications.europa.eu/resource/authority/data-theme/REGI
Administrative units (AU) http://inspire.ec.europa.eu/theme/au Government http://publications.europa.eu/resource/authority/data-theme/GOVE
Reference systems (RS) http://inspire.ec.europa.eu/theme/rs Regions http://publications.europa.eu/resource/authority/data-theme/REGI
Geographic grids (GG) http://inspire.ec.europa.eu/theme/gg Regions http://publications.europa.eu/resource/authority/data-theme/REGI
Cadastral parcels (CP) http://inspire.ec.europa.eu/theme/cp Regions, Economy http://publications.europa.eu/resource/authority/data-theme/REGI, http://publications.europa.eu/resource/authority/data-theme/ECON
Geographic names (GN) http://inspire.ec.europa.eu/theme/gn Regions http://publications.europa.eu/resource/authority/data-theme/REGI
Hydrography (HY) http://inspire.ec.europa.eu/theme/hy Environment, Science and Technology http://publications.europa.eu/resource/authority/data-theme/ENVI, http://publications.europa.eu/resource/authority/data-theme/TECH
Protected sites (PS) http://inspire.ec.europa.eu/theme/ps Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Transport networks (TN) http://inspire.ec.europa.eu/theme/tn Transport http://publications.europa.eu/resource/authority/data-theme/TRAN
Elevation (EL) http://inspire.ec.europa.eu/theme/el Regions http://publications.europa.eu/resource/authority/data-theme/REGI
Geology (GE) http://inspire.ec.europa.eu/theme/ge Regions, Science and Technology http://publications.europa.eu/resource/authority/data-theme/REGI, http://publications.europa.eu/resource/authority/data-theme/TECH
Land cover (LC) http://inspire.ec.europa.eu/theme/lc Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Orthoimagery (OI) http://inspire.ec.europa.eu/theme/oi Regions, Science and Technology http://publications.europa.eu/resource/authority/data-theme/REGI, http://publications.europa.eu/resource/authority/data-theme/TECH
Agricultural facilities (AF) http://inspire.ec.europa.eu/theme/af Agriculture http://publications.europa.eu/resource/authority/data-theme/AGRI
Environmental monitoring (AM) http://inspire.ec.europa.eu/theme/am Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Atmospheric conditions (AC) http://inspire.ec.europa.eu/theme/ac Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Biogeographical regions (BR) http://inspire.ec.europa.eu/theme/br Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Buildings (BU) http://inspire.ec.europa.eu/theme/bu Regions http://publications.europa.eu/resource/authority/data-theme/REGI
Energy resources (ER) http://inspire.ec.europa.eu/theme/er Energy http://publications.europa.eu/resource/authority/data-theme/ENER
Environmental monitoring facilities (EF) http://inspire.ec.europa.eu/theme/ef Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Habitats and biotopes (HB) http://inspire.ec.europa.eu/theme/hb Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Human health and safety (HH) http://inspire.ec.europa.eu/theme/hh Health http://publications.europa.eu/resource/authority/data-theme/HEAL
Land use (LU) http://inspire.ec.europa.eu/theme/lu Economy, Environment http://publications.europa.eu/resource/authority/data-theme/ECON, http://publications.europa.eu/resource/authority/data-theme/ENVI
Mineral resources (MR) http://inspire.ec.europa.eu/theme/mr Economy, Environment, Energy http://publications.europa.eu/resource/authority/data-theme/ECON, http://publications.europa.eu/resource/authority/data-theme/ENVI, http://publications.europa.eu/resource/authority/data-theme/ENER
Natural risk zones (NZ) http://inspire.ec.europa.eu/theme/nz Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Oceanographic (OF) http://inspire.ec.europa.eu/theme/of Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Population distribution (PD) http://inspire.ec.europa.eu/theme/pd Society http://publications.europa.eu/resource/authority/data-theme/SOCI
Production facilities (PF) http://inspire.ec.europa.eu/theme/pf Economy http://publications.europa.eu/resource/authority/data-theme/ECON
Species distribution (SR) http://inspire.ec.europa.eu/theme/sr Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Soil (SO) http://inspire.ec.europa.eu/theme/so Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Species distribution (SD) http://inspire.ec.europa.eu/theme/sd Environment http://publications.europa.eu/resource/authority/data-theme/ENVI
Utility and government services (SU) http://inspire.ec.europa.eu/theme/su Society http://publications.europa.eu/resource/authority/data-theme/SOCI
Government services (US) http://inspire.ec.europa.eu/theme/us Government http://publications.europa.eu/resource/authority/data-theme/GOVE
Meteorological facilities (MF) http://inspire.ec.europa.eu/theme/mf Environment, Science and Technology http://publications.europa.eu/resource/authority/data-theme/ENVI, http://publications.europa.eu/resource/authority/data-theme/TECH

Annex 3. Mapping of organizational identifiers#

This annex provides guidelines for mapping between different organization identification systems, see convention. In the Spanish open data ecosystem, different organization identification systems coexist:

  1. DIR3 codes (official)
  2. NIF (tax identification)
  3. Internal codes of ministries and organizations
  4. Inherited historical identifiers

This can generate inconsistencies when:

  • Relating datasets between different catalogs
  • Linking publishing and creating organizations
  • Maintaining historical traceability of data

Equivalence table

ID Type Format Example Use Notes
DIR3 EAXXXXXXX EA0000000 Active public organizations Recommended primary identifier
NIF PAXXXXXXX P28000000 Private organizations Use as prefix P + NIF
Internal code Variable INE-INT-001 Historical use Discouraged for new datasets

Annex 4. Namespaces used in the document#

This annex provides a complete reference of the namespaces (namespaces) used in the DCAT-AP-ES profile and in the examples of this document. Namespaces are fundamental for:

  1. Unambiguously identifying the elements and properties used
  2. Avoiding conflicts between different vocabularies
  3. Facilitating RDF validation and processing

Example of namespace declaration

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dcat="http://www.w3.org/ns/dcat#"
    xmlns:dcatap="http://data.europa.eu/r5r/"
    xmlns:dct="http://purl.org/dc/terms/"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    >
</rdf:RDF>
1
2
3
4
5
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcatap: <http://data.europa.eu/r5r/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

The listed prefixes are the most commonly used, although technically other prefixes could be used as long as they are correctly declared.

Prefix URI Name Description
adms http://www.w3.org/ns/adms# Asset Description Description of semantic assets
cnt http://www.w3.org/2011/content# Representing Content in RDF Representation of content in RDF
dcat http://www.w3.org/ns/dcat# Data Catalog Vocabulary Vocabulary for describing data catalogs
dcatap http://data.europa.eu/r5r/ DCAT-AP Specific extensions of the DCAT-AP profile
dct http://purl.org/dc/terms/ Dublin Core Terms Basic metadata for describing resources
eli http://data.europa.eu/eli/ontology# European Legislation Identifier Identification of European legislation
foaf http://xmlns.com/foaf/0.1/ Friend of a Friend Vocabulary for describing people and organizations
geo http://www.opengis.net/ont/geosparql# GeoSPARQL Ontology Geographic query language for RDF data
locn http://www.w3.org/ns/locn# Location Core Vocabulary for locations and addresses
odrl http://www.w3.org/ns/odrl/2/ Open Digital Rights Language Expression of digital rights
prov http://www.w3.org/ns/prov# Provenance Ontology Data traceability and provenance
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF Schema Basic vocabulary for defining RDF resources
rdfs http://www.w3.org/2000/01/rdf-schema# RDF Schema Extension of RDF for defining classes and properties
schema http://schema.org/ Schema.org Vocabulary for structuring data on the web
skos http://www.w3.org/2004/02/skos/core# SKOS Knowledge organization system
spdx http://spdx.org/rdf/terms# Software Package Data Exchange Licenses and software packages
time http://www.w3.org/2006/time# Time Ontology Temporal concepts and durations
vcard http://www.w3.org/2006/vcard/ns# vCard Ontology Ontology for contact information
xsd http://www.w3.org/2001/XMLSchema# XML Schema XML Schema data types