DCAT Metadata Structure
Since the Dataspace Protocol (DSP) uses DCAT 3 (Data Catalog Vocabulary) for describing catalog entries, we have setup a DCAT structure for the TSG. This document describes the DCAT structure used in the TNO Security Gateway for representing data catalogs, datasets, and their distributions.
Overview
The implementation of DCAT enables standardized discovery and exchange of dataset information between participants. The implementation extends DCAT with domain-specific vocabularies like HealthDCAT-AP for health data scenarios.
Core DCAT Structure
The TSG uses a hierarchical DCAT structure to organize data resources:
Catalog
├── DataService (DSP API endpoint)
└── Dataset
├── dct:conformsTo → Ontology, legislation, standards
│ └── (e.g., HealthDCAT-AP, CSVW, domain ontologies)
└── Distribution
├── dct:conformsTo → Distribution schema (JSON Schema, XSD, etc.)
├── dcat:mediaType → Media type of source data
└── DataService
├── endpointURL → DSP API endpoint
├── endpointDescription → dspace:connector
├── dspace:dataPlaneType → IRI indicating data plane type
Component Details
Catalog
The Catalog represents a collection of datasets and data services offered by a participant in the data space. It serves as the top-level container for all discoverable resources.
Key Properties:
dcat:dataset- References to datasets in the catalogdcat:service- References to data services (typically the DSP API)dspace:participantId- Identifier of the participant offering this catalogdct:publisher- Publisher of the catalog
DataService (Catalog Level)
The catalog-level DataService represents the DSP API endpoint that provides access to the catalog and facilitates data space protocol interactions.
Key Properties:
dcat:endpointURL- URL of the DSP APIdcat:endpointDescription- Description of the service (typically references dspace:connector). This reference is used to automatically link the DSP Data Service to new datasets.
Dataset
A Dataset represents a logical collection of data that can be accessed through one or more distributions. Datasets can conform to various standards, ontologies, or legislation.
HTTP dataset publication
Applications publish DCAT metadata and private backend configuration through the control plane's management API. The HTTP data plane receives the private configuration when a dataflow is prepared. Applications provide dataset authoring and editing.
A published HTTP dataset has:
- Dataset-level
conformsToreferences to the shared semantic model and its version. - A distribution with
format: "tsg:HTTP"and the response media type. - Distribution-level
conformsToreferences to schemas and OpenAPI documents. - Private
assetConfigcontaining the backend URL and authorization header.
The control plane attaches the DSP access service when presenting the catalog. See dataset publication and vocabulary hubs for complete SDK submissions, including Semantic Treehouse references.
Analytics dataset publication
Analytics-orchestration authors and publishes metadata for analytics datasets. The analytics data plane executes jobs and serves data; metadata analysis and publication belong to the application.
Automated Metadata Generation:
The analytics-orchestration metadata workflow supports:
-
Deterministic Analysis:
- Column data types detection (string, integer, float, date, boolean)
- Statistical profiling (min/max values, unique counts, null percentages)
- Pattern detection (email addresses, phone numbers, medical codes)
- Temporal coverage extraction from date columns
- Data quality metrics (completeness, consistency)
-
LLM-Enhanced Metadata (optional):
- Semantic title and description generation
- Keyword extraction for discovery
- Theme classification (using DCAT and HealthDCAT-AP themes)
- Column-level semantic annotations
-
DCAT Dataset Creation:
- Generates comprehensive dataset metadata including CSVW table schema
- Creates distribution with
dcat:formatset totsg:analytics - Includes HealthDCAT-AP extensions for health data (age ranges, coding systems)
- Embeds data quality measurements using DQV (Data Quality Vocabulary)
- References CSVW for column-level metadata (variable dictionary)
The resulting dataset includes rich semantic metadata aligned with DCAT 3, HealthDCAT-AP, and CSVW standards, enabling fine-grained discovery and understanding of the data without exposing the actual content.
Example Generated Properties:
healthdcatap:numberOfRecords- Row counthealthdcatap:hasCodingSystem- Detected medical coding systems (ICD-10, LOINC, etc.)dqv:hasQualityMeasurement- Completeness and validity metricscsvw:tableSchema- Full variable dictionary with semantic annotations
Domain Extensions
For health data, datasets may include HealthDCAT-AP properties:
healthdcatap:numberOfRecords- Number of records in the datasethealthdcatap:minTypicalAge- Minimum typical age of subjectshealthdcatap:maxTypicalAge- Maximum typical age of subjectshealthdcatap:hasCodingSystem- Medical coding systems used
Distribution
A Distribution represents a specific available format or access mechanism for a dataset. Each distribution can have its own schema, media type, and access service.
Key Properties:
dct:title- Title of this specific distributiondct:conformsTo- Schema or standard for this distribution- Examples: JSON Schema, XML Schema (XSD), Avro Schema
dcat:mediaType- IANA media type of the data- Examples:
text/csv,application/json,application/parquet
- Examples:
dcat:format- Format identifier (may be different from mediaType)dcat:byteSize- Size of the distribution in bytesdcat:accessService- Reference to the DataService providing access
DataService (Distribution Level)
The distribution-level DataService describes how to access a specific distribution, including the data plane endpoint and any technical descriptions.
Key Properties:
dcat:endpointURL- URL of the DSP API (for transfer negotiation)dcat:endpointDescription- Type of connector (typicallydspace:connector)
Dataset Versioning
DCAT provides multiple properties to manage dataset versions, allowing participants to track evolution of datasets over time and maintain relationships between different versions.
Version Properties
DCAT defines several properties for version management:
dcat:version- A version number or identifier (e.g., "1.0", "2.3.1", "2024-01-15")dcat:hasVersion- Links to other versions of this dataset (can be multiple)dcat:isVersionOf- Points to the parent/base dataset that this is a version ofdcat:hasCurrentVersion- Points to the current/latest versiondcat:previousVersion- Points to the immediately preceding version
Versioning in TSG
Publish the base dataset and its versions as separate metadata submissions. The
base has hasVersion and hasCurrentVersion links; each version has version,
isVersionOf, and optionally previousVersion. Only transferable versions need
private backend configuration. References and shared domain properties must be
supplied explicitly on each version.
See the version-specific model example for a base dataset and a version linked to a vocabulary hub.
Versioning Best Practices
- Semantic Versioning: Use semantic versioning (MAJOR.MINOR.PATCH) for APIs and data schemas
- Date-based Versioning: Use ISO 8601 dates (YYYY-MM-DD) for time-series data or periodic releases
- Breaking Changes: Increment major version when making breaking changes to schema or semantics
Schema Versioning
When versioning datasets, also version the conformance schemas:
{
"@type": "Dataset",
"@id": "https://example.org/datasets/research-data/v2.0.0",
"dcat:version": "2.0.0",
"distribution": [
{
"@type": "Distribution",
"conformsTo": "https://example.org/schemas/research-v2.schema.json",
"mediaType": "application/json"
}
]
}
This ensures consumers can validate data against the correct schema version and understand structural changes between versions.
Implementation Examples
HTTP Data Plane Dataset
{
"@type": "Dataset",
"@id": "https://example.org/datasets/patient-data",
"title": "Patient Demographics",
"description": "Anonymized patient demographic data",
"conformsTo": [
"https://healthdataeu.pages.code.europa.eu/healthdcat-ap/",
"https://example.org/ontology/demographics-v1"
],
"distribution": [
{
"@type": "Distribution",
"title": "JSON API Distribution",
"conformsTo": "https://example.org/schemas/patient-schema.json",
"mediaType": "application/json",
"accessService": {
"@type": "DataService",
"endpointURL": "https://connector.example.org/api/dsp",
"endpointDescription": "dspace:connector",
"dataPlaneType": "tsg:HTTP"
}
}
]
}
Analytics Data Plane Dataset
{
"@type": "Dataset",
"@id": "https://example.org/datasets/medical-records",
"title": "Medical Records for Analysis",
"description": "Encrypted medical records for federated analytics",
"conformsTo": [
"https://healthdataeu.pages.code.europa.eu/healthdcat-ap/"
],
"distribution": [
{
"@type": "Distribution",
"title": "CSV Distribution",
"conformsTo": "https://www.w3.org/TR/tabular-metadata/",
"mediaType": "text/csv",
"format": "tsg:analytics",
"accessService": {
"@type": "DataService",
"endpointURL": "https://connector.example.org/api/dsp",
"endpointDescription": "dspace:connector",
"dataPlaneType": "tsg:analytics"
}
}
]
}
Custom DCAT Properties (Application Profiles)
Applications include custom vocabulary properties directly in the public JSON-LD
dataset sent to the management API. When using the SDK's Dataset class, its extraProps
constructor option serializes to those same top-level properties.
Use the bundled contexts through defaultContext() for DSP, TSG and health
terms. Use full IRIs or an explicit JSON-LD context for other namespaces. Linking
a profile in conformsTo does not import its context or validate conformance.
The publication guide includes complete request examples for:
- GeoDCAT-AP: a location reference, spatial resolution and temporal resolution.
- HealthDCAT-AP: record count, typical age range, population coverage and a vocabulary-hub model reference.
- Shared properties: explicit merging for each version or collection item.
Conformance References
Dataset Level (dct:conformsTo)
At the dataset level, dct:conformsTo typically references:
- Application Profiles: HealthDCAT-AP, DCAT-AP
- Domain Ontologies: Medical terminologies, industry standards
- Legislation: GDPR, HIPAA, domain-specific regulations
- Metadata Standards: CSVW for tabular data
Distribution Level (dct:conformsTo)
At the distribution level, dct:conformsTo typically references:
- Data Schemas: JSON Schema, XML Schema (XSD), Avro Schema
- Table Schemas: CSVW Table Schema for CSV files
- API Specifications: OpenAPI specification
Best Practices
Choosing Conformance References
- Dataset conformsTo: Use for high-level semantic models, application profiles, and regulatory frameworks
- Distribution conformsTo: Use for technical schemas that validate the data format
Media Type Selection
- Use standard IANA media types whenever possible
- For file-based resources,
dcat:mediaTypeindicates the file format - For API-based resources, consider whether mediaType represents:
- The format of API responses
- The format of the underlying data source
- Both (if they align)
Multiple Distributions
Provide multiple distributions when:
- Data is available in multiple formats (CSV, JSON, Parquet)
- Different access patterns are supported (API vs. file download)
- Different data plane types can access the same dataset
- Different conformance levels or schemas apply to different views
Related Standards
- DCAT 3 - Data Catalog Vocabulary
- GeoDCAT-AP - Geospatial Data Application Profile
- HealthDCAT-AP - Health Data Application Profile
- CSVW - CSV on the Web
- Eclipse Dataspace Protocol - Data space interactions
- Dublin Core Terms - Metadata vocabulary
Next: Learn about Design Decisions or return to Standards and Protocols.