Il feed RSS migliore di sempre

Quello per sapere quando un dataset ISTAT viene aggiornato

Originally published at .

L’Istituto nazionale di statistica è forse la fonte più seguita da chi usa i dati per comprendere, rappresentare, analizzare e monitorare il nostro paese. Tra questi, ricercatori, giornalisti, sviluppatori, aziende, decisori, liberi professionisti, cittadini, ecc..

Sarebbe di grande comodità e utilità avere un sistema “per tutti” per essere informati tutte le volte che c’è un aggiornamento sul catalogo dei dati dell’istituto, in particolare sul cosiddetto .

Visto che non c’è, abbiamo creato un feed RSSdisponibile per il riuso secondo licenza aperta — che consente di farlo:

Una premessa sui web service di ISTAT

L’ISTAT pubblica i propri dati (anche) tramite web service SDMX (Statistical Data and Metadata eXchange). È un servizio interrogabile che restituisce in output delle strutture XML, secondo il omonimo (è uno standard ISO).

È attivo da diversi anni e l’homepage è .
Sono disponibili una e una di . In quest’ultima un plug-in Excel (per selezionare i dataset di interesse, effettuare query e salvare il risultato) e alcuni esempi di codice sorgente di un client web per accedere al data warehouse e interrgarlo, sviluppati nei linguaggi VB .NET, C#, PHP e Java.

E sopratutto c’è la pagina che da conto degli avvenuti negli ultimi cinque giorni.

Ma questa non è pienamente utile ai tanti portatori di interesse, perché non offre un modo “per tutti” per ricevere un avviso automatico per ogni aggiornamento.

Analizzandola con gli strumenti di sviluppo presenti nei browser abbiamo riscontrato l’accesso a una risorsa con un nome interessante: rsssep.php (vedi sotto). L’abbiamo aperta () e ci sembrava proprio il feed RSS che cercavamo.

Ci sono due elementi però da sottolineare. Il primo è che questo feed RSS è “nascosto”.
Il secondo è che, se anche non fosse così e fosse ben visibile, contiene informazioni utilizzabili soltanto da “specialisti” e sopratutto manca il <link>.

Qui sotto un esempio, in cui si vede come ci sia il titolo (<title>, informazione preziosa) e la data di pubblicazione (<pubDate>), ma non c’è un link, un URL, che consenta un accesso diretto all’elemento (nel caso di sotto agli “Indici dei costi di costruzione – dati mensili”).

<item>
<title>Indici dei costi di costruzione - dati mensili</title>
<pubDate>2018-01-18T10:12:40 AM</pubDate>
<guid>145_361</guid>
<content:encoded>
<![CDATA[
<?xml version="1.0" encoding="iso-8859-1"?><QueryMessage
xmlns=""
xmlns:query=""
xmlns:xsi=""
xmlns:schemaLocation=" SDMXMessage.xsd"><Header><ID>145_361</ID><Test>false</Test><Name xml:lang="en">Indici dei costi di costruzione - dati mensili</Name><Prepared>2018-01-20</Prepared><Sender id="IT1" /><Receiver id="4D0" /></Header><Query><query:DataWhere><query:And><query:Time><query:StartTime>2017</query:StartTime><query:EndTime>2017</query:EndTime></query:Time><query:Dataflow>145_361</query:Dataflow></query:And></query:DataWhere></Query></QueryMessage>]]>
</content:encoded>
</item>

L’accesso tramite API

Ai dati del warehouse di ISTAT si può accedere anche tramite API. Ce l’ha ben descritto (che lavora a ISTAT) in (leggetelo è interessante e utile).
Averlo tra i soci di onData, ci ha consentito di fargli più agilmente qualche domanda su queste API (le ha fra l’altro sviluppate lui).

Gli abbiamo chiesto se ci fosse una qualche query diretta che esponesse come risultato proprio l’elenco dei dataset aggiornati. Non c’è, ma c’è un comodo endpoint (per chi sa “maneggiare” un file JSON) con l’elenco di tutte le risorse esposte, un vero e proprio catalogo di dati: .

In questo le informazioni su un dataset contengono elementi utili a una platea molto più larga. Sotto l’esempio sempre di Indici dei costi di costruzione - dati mensili in cui appare la proprietà landingPage, che è proprio il link, l’URL, per puntare direttamente alla pagina della risorsa nel data warehouse. Potete provare con:

{
"accesslevel": "public",
"landingPage": "",
"issued": "",
"": "dcat:Dataset",
"modified": "",
"keyword": [],
"contactPoint": {
"": "vcard:Contact",
"fn": "<Nobody>",
"hasEmail": ""
},
"publisher": {
"": "org:Organization",
"Name": "Istat"
},
"identifier": "",
"description": "",
"title": "Indici dei costi di costruzione - dati mensili ",
"distribution": [
{
"": "dcat:Distribution",
"downloadURL": "",
"mediaType": "text/html"
}
],
"licence": "CC-BY 4.0",
"theme": [
"Prezzi"
]
}

NOTA IMPORTANTE: questo elenco, questo catalogo, è in un formato che potrebbe essere usato per l’indicizzazione nel portale nazionale italiano sui dati aperti. Non sarebbe male che AgID lo indicizzasse, sottoponendolo ad harvesting.

Riepilogando:

  • il consente di avere l’elenco sugli ultimi aggiornamenti, ma non da la possibilità di risalire facilmente alla risorsa aggiornata;
  • il esposto via API contiene l’URL per risalire alla pagina della risorsa.

Abbiamo pensato allora di “mescolare” queste informazioni e produrre il feed RSS migliore di sempre 🤣.

È stato costruito con uno che:

  • scarica i dati contenuti nel feed RSS esposto via web service SDMX;
  • da questi estrae titoli e date degli elementi pubblicati;
  • scarica il catalogo dati esposto via API;
  • da questo estrae titoli e identificatore del dataset (nel caso di sopra è DCSC_FABBRESID_1)
  • fa il JOIN via “titolo” e crea un unica risorsa che contiene titolo, URL della pagina del dataset e data di pubblicazione;
  • sfrutta questa risorsa per creare il feed RSS.

Gli strumenti utilizzati sono (per l’accesso alle risorse web), (per elaborare i dati JSON), (per l’elaborazione di alcuni file creati nello script) e (per creare il feed RSS).

L’URL del feed è:

È pubblicato in con . Citateci 🖖

Cosa c’è nel feed

L’output di base è quello sottostante. Al titolo, al link, e alla data di pubblicazione sono stati aggiunti alcuni elementi aggiuntivi:

  • a livello di <channel>, in <docs>, l’URL del post di Vincenzo. Non è una vera e propria documentazione della struttura del feed, ma è la cosa che al momento gli si avvicina di più;
  • a livello di <item>
  • l’identifier di ogni dataset;
  • una <description> con l’endpoint che consente di identificare le “dimensioni” che compongono ciascun dataset.
<?xml version="1.0" encoding="utf-8"?>
<rss
xmlns:atom=""
xmlns:creativeCommons="" version="2.0">
<channel>
<language>it</language>
<title>ISTAT - Aggiornamento dataset del data warehouse I.Stat | Non ufficiale</title>
<description>Un RSS costruito a partire dai web service SDMX e dalle API di ISTAT</description>
<link></link>
<atom:link rel="self" href="" type="application/rss+xml"/>
<docs></docs>
<creativeCommons:license></creativeCommons:license>
<item>
<title>Indici dei costi di costruzione - dati mensili</title>
<link></link>
<pubDate>Thu, 18 Jan 2018 10:12:40 +0100</pubDate>
<description>DATA URI: </description>
<guid></guid>
<category domain="">DCSC_FABBRESID_1</category>
</item>
</channel>
</rss>

L’identifier è prezioso per interrogare le API (c’è da leggere il ). Nell’esempio di sopra è DCSC_FABBRESID_1.

Per avere le dimensioni di questo:

Qui le dimensioni sono “Territorio”, “Tipo di indicatore”, “Correzione”, “Gruppo e categoria di costo” e “Seleziona periodo” ( un esempio di output con estrazione delle dimesioni).

Come usare il feed RSS

I feed RSS sono basati su uno vecchio e buon standard, quindi esistono centinaia di modalità per leggerli, adatti a qualsiasi tipo di utente.
Vi potrete “iscrivere” con un lettore dedicato, attivare delle notifiche automatiche via email magari filtrate su una parola chiave (con strumenti come ), scrivere del codice per produrre nuovi output, ecc..

Nota finale “personale”

Lo stimolo che ci ha portato alla scoperta e all’approfondimento di queste risorse nasce da di Alice Corona e da di Andria Tzedda. Ringraziamo entrambi 🙏

#data #maps #GIS #baci #condivisione. Orgoglioso di essere presidente di @ondatait

#data #maps #GIS #baci #condivisione. Orgoglioso di essere presidente di @ondatait