ckanext-dcat¶
Ckanext-dcat is a CKAN extension that helps data publishers expose and consume metadata as serialized RDF documents using DCAT, as well as others metadata formats like Croissant ML or Schema.org.
{
"id": "425e361b-bad9-4a8f-8cc4-2e147c4e8c18",
"name": "my-ckan-dataset",
"title": "An example CKAN dataset",
"description": "Some notes about the data",
"temporal_coverage": [
{
"start": "2024-01-01",
"end": "2024-12-31"
}
],
"resources": [
{
"id": "df0fc449-fddf-41af-910a-f972b458956c",
"name": "Some data in CSV format",
"url": "http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18/resource/df0fc449-fddf-41af-910a-f972b458956c/download/data.csv",
"format": "CSV"
}
]
}
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18> a dcat:Dataset ;
dct:identifier "425e361b-bad9-4a8f-8cc4-2e147c4e8c18" ;
dct:temporal [ a dct:PeriodOfTime ;
dcat:endDate "2024-12-31"^^xsd:date ;
dcat:startDate "2024-01-01"^^xsd:date ] ;
dct:title "An example CKAN dataset" ;
dcat:distribution <http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18/resource/df0fc449-fddf-41af-910a-f972b458956c> .
<http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18/resource/df0fc449-fddf-41af-910a-f972b458956c> a dcat:Distribution ;
dct:format "CSV" ;
dct:title "Some data in CSV format" ;
dcat:accessURL <http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18/resource/df0fc449-fddf-41af-910a-f972b458956c/download/data.csv> .
{
"@context": {
"dcat": "http://www.w3.org/ns/dcat#",
"dct": "http://purl.org/dc/terms/",
"xsd": "http://www.w3.org/2001/XMLSchema#"
},
"@graph": [
{
"@id": "http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18",
"@type": "dcat:Dataset",
"dcat:distribution": {
"@id": "http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18/resource/df0fc449-fddf-41af-910a-f972b458956c"
},
"dct:identifier": "425e361b-bad9-4a8f-8cc4-2e147c4e8c18",
"dct:temporal": {
"@id": "_:N1c32ba52ad1641d086101a4a4bcbe8a5"
},
"dct:title": "An example CKAN dataset"
},
{
"@id": "_:N1c32ba52ad1641d086101a4a4bcbe8a5",
"@type": "dct:PeriodOfTime",
"dcat:endDate": {
"@type": "xsd:date",
"@value": "2024-12-31"
},
"dcat:startDate": {
"@type": "xsd:date",
"@value": "2024-01-01"
}
},
{
"@id": "http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18/resource/df0fc449-fddf-41af-910a-f972b458956c",
"@type": "dcat:Distribution",
"dcat:accessURL": {
"@id": "http://my-ckan-site.org/dataset/425e361b-bad9-4a8f-8cc4-2e147c4e8c18/resource/df0fc449-fddf-41af-910a-f972b458956c/download/data.csv"
},
"dct:format": "CSV",
"dct:title": "Some data in CSV format"
}
]
}
In terms of CKAN features, this extension offers:
-
Pre-built CKAN schemas for common Application Profiles that can be adapted to each site requirements to provide out-of-the-box DCAT support in data portals, including tailored form fields, validation etc. (currently supporting DCAT-AP v1.1, v2.1 and v3 and DCAT-US v3).
-
DCAT Endpoints that expose the catalog datasets in different RDF serializations (
dcat
plugin). -
An RDF Harvester that allows importing RDF serializations from other catalogs to create CKAN datasets (
dcat_rdf_harvester
plugin). -
Other features like Command Line Interface, support for indexing in Google Dataset Search or endpoints for exposing dataets in the Croissant ML format.
These are implemented internally using:
-
A base mapping between DCAT and CKAN datasets and viceversa (compatible with DCAT-AP v1.1, v2.1 and v3 and DCAT-US v3).
-
An RDF Parser that allows to read RDF serializations in different formats and extract CKAN dataset dicts, using customizable profiles.
-
An RDF Serializer that allows to transform CKAN datasets metadata to different semantic formats, also allowing customizable profiles.