Skip to main content

Genera cataloghi RDF DCAT-AP IT da qualsiasi portale CKAN, senza plugin

Project description

PyPI version GitHub deepwiki License: MIT

DCAT-AP IT Generator

Idea originale di Daniele Crespi.

Genera file RDF Turtle conformi a DCAT-AP IT interrogando qualsiasi portale CKAN via API.

Il problema che risolve

L'approccio tradizionale per produrre metadati DCAT-AP IT da un portale CKAN richiede l'installazione e la manutenzione del plugin ckanext-dcatapit. Questo plugin:

  • non è aggiornato attivamente da anni
  • richiede accesso all'infrastruttura del portale
  • dipende da una versione specifica di CKAN

Questo tool funziona in modo completamente indipendente dal plugin e dall'infrastruttura del portale. Basta che il portale esponga le API CKAN standard (disponibili su qualsiasi installazione CKAN).

Come funziona

Lo script interroga le API pubbliche del portale CKAN, mappa i campi dei dataset verso le proprietà DCAT-AP IT e produce un file Turtle pronto per essere harvested.

flowchart LR
    A[Portale CKAN\nAPI pubbliche] -->|fetch + mapping| B[dcat-ap-it generate]
    B -->|RDF Turtle| C[catalog.ttl]
    C -->|harvesting| D[Catalogo\nnazionale / regionale]

Il file prodotto è pronto per essere harvested da qualsiasi catalogo che supporti DCAT-AP IT — che sia nazionale (es. dati.gov.it) o regionale.

Contiene:

  • dcatapit:Catalog con i metadati del catalogo
  • dcatapit:Dataset per ogni dataset pubblicato
  • dcatapit:Distribution per ogni risorsa

Installazione

# da PyPI
uv tool install dcat-ap-it-generator

# oppure con pip
pip install dcat-ap-it-generator

Il pacchetto include 122 regole SPARQL allineate all'OWL DCAT-AP IT, usate dal comando validate. Non è necessario scaricarle separatamente. Le regole combinano quelle originali di daf-semantic-validator con correzioni e integrazioni derivate dall'OWL ufficiale — vedi docs/rules.md per i dettagli.

Vuoi testarlo subito?

Nella cartella examples/ trovi una configurazione già pronta per il portale open data del Comune di Messina.

# 1. Installa il tool
uv tool install dcat-ap-it-generator

# 2. Clona il repository (per i file di esempio)
git clone https://github.com/ondata/dcat-ap-it-generator
cd dcat-ap-it-generator

# 3. Anteprima senza scrivere file
dcat-ap-it generate --config examples/config-messina.yml --dry-run

# 4. Genera il file Turtle
dcat-ap-it generate --config examples/config-messina.yml
# → output/messina.ttl

Uso

# Genera il file Turtle
dcat-ap-it generate --config config.yml

# Anteprima senza scrivere file
dcat-ap-it generate --config config.yml --dry-run

# Genera un file per organizzazione
dcat-ap-it generate --config config.yml --organizations org1,org2

# Wizard interattivo per creare una nuova configurazione
dcat-ap-it configure

# Valida un file TTL contro le 122 regole DCAT-AP IT
dcat-ap-it validate output/catalog.ttl

# Solo errori (esclude warning)
dcat-ap-it validate output/catalog.ttl --errors-only

Configurazione

Copia un file da examples/ e adattalo al tuo portale:

portal:
  url: "https://dati.comune.esempio.it"   # URL base portale CKAN
  api_key: ""                              # opzionale, per portali privati
  rows_per_page: 100                       # dataset per richiesta paginata (default: 100)
  max_datasets: 0                          # limite totale dataset; 0 = nessun limite (default: 0)
  chunk_size: 0                            # se > 0, genera N file TTL separati (es. 500 → catalog_001.ttl, _002.ttl…)
  query_template: ""                       # opzionale: filtro CKAN fq (es. "organization:nome-org")

catalog:
  uri: "https://dati.comune.esempio.it/catalog"
  title: "Catalogo Open Data"
  description: ""                          # opzionale
  issued: ""                               # opzionale, formato ISO 8601
  publisher_name: "Comune di Esempio"
  publisher_identifier: "c_xxxxx"         # codice IPA — cerca su https://indicepa.gov.it
  language: "ITA"                          # codice ISO 639-3
  homepage: ""                             # opzionale
  spatial: ""                              # opzionale, URI GeoNames (es. https://www.geonames.org/2524170)

output:
  path: "output/catalog.ttl"

Uso in cron

# Ogni domenica alle 3:00
0 3 * * 0 dcat-ap-it generate --config /path/to/config.yml

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dcat_ap_it_generator-0.1.5.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dcat_ap_it_generator-0.1.5-py3-none-any.whl (110.6 kB view details)

Uploaded Python 3

File details

Details for the file dcat_ap_it_generator-0.1.5.tar.gz.

File metadata

  • Download URL: dcat_ap_it_generator-0.1.5.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for dcat_ap_it_generator-0.1.5.tar.gz
Algorithm Hash digest
SHA256 22bac1b0aad6b4ebae8b2c256df86ca3378679c844b9ed6c339ef8f25e28bf31
MD5 04e50bd6274457a5e48ec7339c61fbdd
BLAKE2b-256 474f1951f5f46bca3cd96290550ad8e346755c3bbaebe2e2aed78829e0674092

See more details on using hashes here.

File details

Details for the file dcat_ap_it_generator-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for dcat_ap_it_generator-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 317f84a1df379b84c928c81005c7ab9ba8e03e7e3d3f72a1787a5cbf68697fa0
MD5 c806542f5794372479ee6b8fe2576343
BLAKE2b-256 5118427eb714591409948260dd84b2950f8c66371c3a087807aba71c26196457

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page