Skip to content

AgID/rndt-md-converter

Repository files navigation

RNDT metadata converter

License: EUPL 1.2

La soluzione consente di interrogare un servizio CSW (Catalogue Service for the Web basato sullo standard OGC) ed estrarre i metadati di dati e servizi territoriali trasformati da un profilo di metadati ad un altro, purchè basati entrambi sullo Standard ISO TS 19139.

In Italia, dal profilo definito con il Decreto 10/11/2011 (e relative guide operative, coerenti con le linee guida INSPIRE v. 1.3) al nuovo profilo RNDT 2.0 (v. la guida operativa, coerente con le linee guida INSPIRE v. 2.0.1).

Essa rappresenta uno strumento utile per supportare le amministrazioni pubbliche nell’adeguamento agli ultimi aggiornamenti dello standard relativo ai metadati per i dati territoriali e relativi servizi.

Essa può essere utilizzata anche per la trasformazione dei metadati dalle Linee Guida INSPIRE v. 1.3 alle Linee Guida INSPIRE v.2.0, utilizzando il relativo script XSLT.

Lo script XSLT, inoltre, può essere adattato ad altri profili di metadati, come quelli, per esempio, di altri Stati Membri della UE.

Per ulteriori informazioni sull'uso del converter, fare riferimento alla guida rapida per l'utente.

Una installazione della soluzione è disponibile sul portale RNDT.

Specifiche

Il RNDT metadata converter effettua richieste GetRecords (metodo GET) per interrogare il servizio CSW ed ottenere i record di metadati da trasformare attraverso lo script XSLT. I parametri utilizzati per le richieste sono i seguenti

Parametro Descrizione Note
organisationName Nome dell'organizzazione (pubblica amministrazione) titolare di dati e servizi di cui si vogliono estrarre i metadati Questo parametro può essere cambiato, modificando la richiesta CSW nella variabile $defaultGetRequest nel file function/config.properties. In caso di modifica, dovrà essere aggiornata anche l'etichetta visualizzata nel form, definita nel file index.php. Bisogna tenere presente che l'eventuale modifica del parametro impatta anche sul nome del file zip, output della trasformazione.
maxRecords Numero massimo di record che si vogliono trasformare Il valore massimo che è possibile impostare è 100. Questo valore può essere modificato aggiornando la variabile $MaxRecords nel file function/config.properties.
startPosition Il numero del record da cui partire per l'interrogazione Il valore deve essere un intero diverso da 0

L'output della trasformazione è una cartella compressa (zip) che contiene i seguenti files:

  • ReadMe.txt: un file di testo riassuntivo del contenuto dello zip;
  • CSWResponseOLD.xml: la risposta CSW basata sui parametri della richiesta (amministrazione responsabile, numero record iniziale e numero record totali) secondo il profilo RNDT di cui al Decreto 2011 / INSPIRE TG v.1.3;
  • CSWResponseNEW.xml: la risposta CSW basata sul nuovo profilo (ovvero la risposta CSW CSWResponseOLD.xml trasformata attraverso lo script XSLT);
  • MetadataRecords.zip: un file zip che contiene i singoli record trasformati e salvati separatamente. I record sono identificati con un numero progressivo.

Istruzioni per l'installazione

La soluzione è stata sviluppata in PHP 7.1 e gira su qualsiasi web server che ospita quella versione di PHP. Essa è stata testata su Linux, Windows and iOS.

Utilizza le librerie EasyRDF e ML/JSON-LD di PHP che sono già disponibili nel repository.

Il repository include tutto ciò che è necessario per l'installazione e l'avvio del converter. Prima dell'avvio è necessario modificare le seguenti impostazioni:

  • nel file function/config.properties:

    • inserire l'URL root del servizio CSW da interrogare nella variabile $defaultSiteCSW. Tale URL deve essere direttamente accessibile dal client che effettua la richiesta;
    • inserire l'URL root del server dove è ospitato il servizio CSW nella variabile $defaultSiteServerCSW. Tale URL deve essere accessibile dall'applicazione del web server (PHP); quindi, se pubblico, può coincidere con l'URL utilizzato per la variabile $defaultSiteCSW;
    • inserire il path dello script XSLT nella variabile $FileXSLT;
    • è possibile modificare la richiesta CSW attraverso la variabile $defaultGetRequest. Si può inserire una proprietà diversa (di default quella utilizzata è "apiso.OrganisationName") o un operatore diverso (di default quello utilizzato è "PropertyIsEqualTo"). In caso di modifica della proprietà, dovrà essere aggiornata anche l'etichetta visualizzata nel form, definita nel file index.php. Bisogna tenere presente, inoltre, che tale modifica impatta anche sul nome del file zip, output della trasformazione.
  • nel file function/function.php:

    • inserire l'URL del server dove è installato il converter attraverso la costante PATH_ROOT.

Da prestare particolare attenzione alla cartella file/, che deve essere inizialmente vuota. Per poterla aggiungere nel repository, è stato inserito in questa cartella il file vuoto .gitkeep che dopo l'installazione può essere cancellato. Tale cartella viene utilizzata per copiare le cartelle zip contenenti l'output della trasformazione. Per consentire ciò, è necessario che siano abilitati i permessi in scrittura su questa cartella per l'utente del web server.

NOTA 1 - Il file publiccode.yml è un file di metadati richiesto per il software della pubblica amministrazione italiana e non è funzionale all'uso del converter. Esso è stato inserito per consentire al crawler automatico di Developers Italia di raccogliere tutte le informazioni utili al popolamento del catalogo del software open source.

NOTA 2 - La cartella images/ contiene le immagini per il wiki e non è funzionale all'uso del converter.

NOTA 3 - Lo script XSLT di default presente nella cartella function/ si basa sul profilo italiano dei metadati (RNDT). Viene reso disponibile anche uno script XSLT per INSPIRE per la trasformazione dei metadati rispetto alle Linee Guida di INSPIRE (v. "Trasformazione rispetto ad INSPIRE e ad altri profili di metadati"). Si invitano coloro che riutilizzeranno la soluzione di testare tale script XSLT e fornire il proprio feedback attraverso lo issue tracker in modo da aggiornare e migliorare lo script.

Descrizione in inglese

La descrizione che appare nella prima sezione presente nella pagina iniziale è in italiano. Per passare alla versione in inglese, nel file function/config.properties commentare la descrizione in italiano e togliere i commenti dalla descrizione in inglese.

Trasformazione rispetto ad INSPIRE e ad altri profili di metadati

Se si vuole utilizzare il converter per la trasformazione dei metadati sulla base delle Linee Guida INSPIRE (dalla v. 1.3 alla v. 2.0), senza considerare, quindi, le estensioni introdotte nel profilo nazionale italiano, si deve considerare lo script XSLT per INSPIRE copiandolo e incollandolo nella cartella function/.

Da tenere presente:

  • la trasformazione si riferisce solo a metadati in inglese;
  • nel caso di servizi diversi dai servizi di rete (cioè con serviceType='other'), si assume che il servizio sia un servizio di dati territoriali invocabile. Nel caso in cui non sia così, bisogna intervenire dopo la trasformazione per aggiungere i metadati mancanti;

In alternativa, si possono utilizzare altri script XSLT disponibili per la trasformazione INSPIRE, come, per esempio, quello definito nell'ambito di GeoNetwork.

Allo stesso modo, si possono utilizzare script XSLT definiti per profili di metadati di specifiche comunità, come quelli nazionali degli Stati Membri dell'UE. Alcuni esempi di XSLT sono disponibili nella guida di GeoNetwork.

Infine, si possono anche adattare i file XSLT disponibili nel repository a specifici profili di metadati.

In tutti i casi, è necessario che il file XSLT che si decide di utilizzare sia rinominato in "__Transformation.xslt" e sia incollato nella cartella function/.

Licenza

La licenza applicata è European Union Public License v. 1.2.

Credits

La soluzione è stata sviluppata da ESRI Italia per AgID nell'ambito della gara per le Infrastrutture Nazionali Condivise SPC.