NdR: questa è la seconda parte del post pubblicato qui.

Impostazione lato server: ona.io

Giuseppe: Proponiamo di partire da qui, dal “lato server”, dal momento che è la prima cosa che si va a vedere perché bisogna registrarsi: https://ona.io/join

image02

Una volta registrati, si può impostare un nuovo progetto e scegliere il livello di ‘privacy’. La pagina iniziale è la seguente (con il nome che avete scelto al posto di triestegeo, ovviamente).

image05

Dal sito alla voce ‘add form’ è possibile caricare il questionario/form impostato come file XLS, che nelle righe sotto vi spieghiamo come preparare.

Le ‘form’ saranno i questionari e la scheda di acquisizione dati, che successivamente verrà visualizzata sul vostro smartphone o tablet.

image04

Sarà possibile preparare più progetti e specificare il livello di ‘privacy‘, ovvero se progetto ‘pubblico’ o ‘privato’. Ona.io consente diverse possibilità: nel caso di un profilo ‘pubblico’ non vi sono fee da pagare, mentre per alcuni profili privati o con più restrizioni all’utilizzo, è prevista una quota da versare.

Il ‘lato server’ sarà il ‘contenitore’ dei dati, il luogo dove questi saranno conservati una volta caricati, e dove sarà possibile effettuare delle operazioni, quali visualizzazione tabulare o sotto forma di mappa, dove sarà possibile caricare eventuali file multimediali (come ad esempio immagini o video registrati) nonché dei report sulle attività (es. delle statistiche sulle acquisizioni di dati, ecc.) e scaricare i dati in vari formati una volta raccolti.

image07

Dal ‘lato server’ è possibile anche accedere alla WebForm, ovvero dalla finestra (su pagina web) da cui caricare i dati (qualora non si disponga di un dispositivo mobile adatto).

Ovviamente il passaggio necessario, prima di tutto ciò, è l’impostazione del questionario o form, ovvero il ‘cuore’ di tutto il sistema di raccolta dati!

Impostazione del questionario/form con un file Excel

Viola: la form contenente il questionario da caricare sul server per cominciare la raccolta è un file Excel (quindi con estensione .xls) che deve essere formato obbligatoriamente da due fogli di lavoro, denominati ‘survey’ e ‘choices’, cui si può affiancare a discrezione dell’utente un ulteriore foglio di lavoro rinominato ‘settings’. Nel foglio ‘survey‘ c’è la griglia di domande e informazioni da raccogliere, impostate in ordine ben preciso. Sono presenti varie colonne, di cui le principali (ed obbligatorie) sono:

  • Type
  • Name
  • Label

In ‘type’ si individua il tipo di inserimento (output) richiesto all’utente che compila la form relativa ad ogni domanda: testo, orario, numeri interi, coordinate, selezionare una o più opzioni da una scelta di risposte, coordinate GPS, immagini, audio, video e così via.

Nel foglio di lavoro rinominato “survey”.Possibili tipologie di output richiesti all’utente da specificare nella colonna ‘type’
Text Testo
Integer Numeri interi
Decimal Numeri decimali
select_one [nome della lista di possibili risposte, che si esplicitano nel secondo foglio]es. select_one affluenza_evento Per le domande a risposta multipla, dove è possibile selezionare solo una riposta
select_multiple seguito dal nome della lista di possibili risposte che si esplicitano nel secondo foglio]es. select_multiple nome_wifi Per le domande a risposta multipla dove si consente di selezionare varie risposte
Note È un campo che non ha bisogno di input da parte dell’utente, è una schermata normalmente utilizzata all’inizio o alla fine della survey per presentare il questionario o per ringraziare l’utente per l’inserimento
Geopoint Rileva le coordinate GPS
Geotrace Rileva le coordinate di una polinea
Geoshape Rileva le coordinate di un poligono
Image Si chiede all’utente di caricare o scattare una foto
Barcode Permette di leggere un codice a barre qualora sia installata sul telefono una applicazione in grado di leggere il codice.
Date Rileva la data in automatico
Datetime Permette di rilevare data e ora della compilazione del questionario in automatico
Audio Si può registrare un audio
Video Si richiede di fare un video o caricarlo dalla galleria
Calculate Permette di fare un calcolo

Nella colonna ‘name‘ si inserisce un nome con cui poter identificare la singola domanda, specificata poi per esteso come si vuole venga visualizzata nella compilazione del questionario colonna ‘label’. I dati verranno visualizzati con questo nome identificativo quando li si andrà a sfogliare dal sito internet.

Qualora si vogliano porre domande con risposte già preimpostate, è necessario inserire “select_one” se l’utente ha la possibilità di selezionare solo una risposta, oppure “select_multiple” se può sceglierne più di una, seguito dal ‘nome’ che identifica il gruppo di domande. Nel nostro caso si era deciso di avere informazioni sull’affluenza all’evento o nel locale di riferimento, con possibilità di scegliere tra ottima, buona, discreta o scarsa, e per quanto riguarda la presenza di free wifi si poteva di selezionare tra le due reti pubbliche, Eduroam e TriesteFreeSpots, oppure la presenza di una rete aperta del locale in cui ci si trova.

Spesso le immagini valgono più di mille parole e quindi guardate un po’ come abbiamo impostato noi il primo foglio di lavoro.

image06

Il campo ‘type’ per inserire il ‘datetime’ o solo ‘time’ o ‘date’ per permettere di capire gli orari e le date in cui si compila il questionario è molto comodo perchè questa informazione viene rilevata in maniera automatica.

Nel momento in cui si inserisce ‘geopoint’ per rilevare la propria posizione GPS, l’operazione può richiedere anche un paio di minuti (all’inizio) per essere abbastanza accurata, è normale. Se avete fretta, potete attendere che il fumetto vi dia indicazioni sulla precisione della rilevazione, cliccare su Registra Localizzazione e continuare a compilare il modulo fino a salvarlo; poi l’applicazione permette di modificare in seguito la posizione semplicemente spostando un puntino sulla mappa andando su “Edit data”.

È possibile anche impostare delle domande concatenate con una delle domande precedenti, ma questa funzione è stata assimilata solo dopo. Esempio: nel nostro caso era possibile fare le domande in riga 9 e 10 di specificazione su nome e copertura wi-fi solo se prima l’utente aveva selezionato ‘si’ alla domanda in riga 8, che richiedeva di dire se c’era un free wi-fi nelle vicinanze. Bisognava allora inserire una colonna denominata ‘Relevant’ accanto a ‘Label’ in corrispondenza di tali righe con campo ${si_no} = ‘si’, dove $ sta per ‘selected’ seguito tra parentesi graffe il nome della lista di risposte relative alla domanda (nel nostro caso si_no) seguito da un simbolo di “uguale” (‘=’) e dalla risposta tra apici singoli (”).

Nel secondo foglio di lavoro vanno inserite le griglie di risposte possibili alle varie domande a risposta multipla: il link con il primo foglio è dato dal nome della lista delle risposte inserito nella colonna ‘type’ dopo la dicitura select_one (oppure multiple), che viene ripetuto nel secondo foglio in prima colonna, chiamata ‘list name’.

È utile anche perché è possibile così evitare di riscrivere opzioni di risposta inserite già in altre liste, potendo riferirsi alla stessa: il più semplice esempio è dato dalle risposte come “si” o “no”. Se la lista di risposte si chiama si_no, è possibile inserire due domande del tipo select_one [si_no], con nome ed etichetta diverse, scrivendole nel foglio choices una volta sola.

image09

A questo punto, se si vuole è possibile aggiungere un altro foglio denominato ‘settings‘, dove inserire due colonna, ‘form_title’ e ‘form ID’, tramite cui è possibile denominare il questionario: in assenza il questionario avrà lo stesso nome dato al file xls che verrà caricato sul sito.

image08

‘Lato applicazione mobile’: GeoODK Collect e WebForm

Giuseppe: Il terzo componente del sistema è quello ‘mobile‘, ovvero relativo alla raccolta vera e propria dei dati.

Una volta scaricata l’applicazione GeoODK Collect, ricordiamoci che è solo nel Play Store, la schermata iniziale è la seguente.

image11

Per partire con la raccolta bisogna modificare le impostazioni preimpostate e caricare la form che ormai abbiamo già messo sul server. E’ necessario innanzitutto premere l’icona delle impostazioni (Settings) e poi General Settings, selezionare ‘altro server’, modificando l’URL preesistente con il server utilizzato per caricare i dati sul web, https://ona.io/nome_progetto/.

Tornando nelle impostazioni precedenti è necessario poi cliccare su ‘form management’, dove compariranno tutte le form create dal proprio account nel server e selezionare quella che ci interessa. Dopo aver premuto “prendi selezionato” e aver dato l’invio cliccando su “ok”, si ha in memoria la form “vuota” e si possono raccogliere i dati andando sull’icona ‘collect data’ e selezionando la form appena scaricata.

La app dà la possibilità di fare una serie di operazioni: modificare i dati delle form già compilati e salvati (edit data), spostare la posizione dei rilevamenti qualora non fossero abbastanza accurati, eliminare form (delete data) e, infine, inviare i dati al server (send data). Quest’ultima operazione è quella che ‘vuota’ dei dati il nostro dispositivo mobile: ricordiamo, infatti, che l’iniziativa ODK nasce per scopi ‘sociali’ e umanitari, ed è pensata pertanto per raccogliere dati anche in assenza di una copertura di rete, con pertanto la possibilità di inviare i dati soltanto una volta in cui questa sia resa disponibile.

Viola: Gli stessi dati possono essere raccolti anche tramite una webform, ovvero una pagina web dove sono riportate i medesimi quesiti della form, solo organizati ovviamente con un layout diverso. Perché usare questo strumento anziché l’app? per 3 motivi:

  1. Per i pigri che non vogliono installare l’app ma operare da browser;
  2. Per i possessori di dispositivi non-Android (Windows Phone e iPhone)
  3. Più semplicemente per chi ha magari acquisito dei dati ‘su carta’ e vuole ‘buttarli dentro’ a una banca dati comodamente seduto alla scrivania.

Attenzione che però non tutti i browser funzionano bene! Se vi interessa acquisire immagini, video o audio ci sono alcune limitazioni: serve il browser Chrome, se poi avete un iOS potete averle solo tramite un browser che si chiama Puffin! Comunque la rilevazione di tutti gli altri campi sarà possibile ;)

image00

Giuseppe: Se siete curiosi di provare GeoODK e a inserire qualche dato, provate con il progetto ‘Trieste Free Wifi Movida’! Si è concentrato sulla città di Trieste e per ora è terminato (Viola ha finito la tesi di laurea magistrale, e quello era l’oggetto della ricerca!), però potete provare a inserire dei dati sul wifi e sull’affollamento dei locali nella vostra città (magari mandateci un’email così mostriamo qualche elaborazione!). Potete farlo tramite la webform su Enketo qui sotto:Anche in questo caso è possibile sia inviare i dati immediatamente (‘submit‘ a fine acquisizione) o rimandare in un secondo tempo (e selezionare ‘save as draft‘).

https://rmvfk.enketo.org/webform

 

Oppure, dopo essersi installati GeoODK, andare su “Settings”, sotto “General Settings” scegliere il server “Altro” e inserire https://ona.io/triestegeo.

Su “Form Management” (sempre sotto ‘settings’) selezionare la form “Trieste_FreeWiFi_Movida”

A questo punto è possibile raccogliere dati e inserirli nel database creato per questa form (ovviamente la procedura sarà la medesima quando avrete creato il vostro progetto in Ona e caricato una o più form)!

La nostra Viola ha preparato anche un video su Youtube con una panoramica su come impostare la form su GeoODK e iniziare ad acquisire i dati! https://www.youtube.com/watch?v=EP2PA5ysyEk

Altre applicazioni

Viola: Questa applicazione è stata utilizzata anche per raccogliere dati sull’affluenza a due eventi cittadini, TriesteNext (weekend dedito alla divulgazione scientifica e dimostrazioni nell’ambito accademico organizzati dall’Università di Trieste) e FuoriRegata (serie di eventi lato terra che si svolgono la settimana precedente alla Barcolana). Con uno stand di ‘geografi’ capeggiati dal qui presente Giuseppe, sempre a Trieste Next 2015, abbiamo poi presentato due attività permesse dalla customizzazione di questa applicazione: una per ‘mappare’ la provenienza dei visitatori a Trieste Next e un’altra per la mappatura delle zone problematiche legate all’accessibilità e alle barriere architettoniche della città di Trieste.

image12

Appena pronti vi segnaleremo i collegamenti ai lavori che sono stati realizzati su questi progetti!

Conclusioni – altri sviluppi

Per i nostri progetti di mobile data collection abbiamo scelto la base di Open Data Kit per strutturare il sistema di raccolta dati, accompagnato all’app per dispositivo mobile GeoODK. In realtà GeoODK non è l’unica app che lavora in questo sistema. ODK Collect e Kobo sono due app che si basano sulla medesima architettura per la raccolta dei dati, consentendo anche la gestione di dati geolocalizzati.

(https://play.google.com/store/apps/details?id=org.odk.collect.android&hl=it; https://play.google.com/store/apps/details?id=org.koboc.collect.android&hl=it)

L’unico problema in questi due esempi è dato dal fatto che solo dati puntuali possono essere acquisiti durante una ‘campagna’ e possono essere visualizzati e modificati solo dopo averli scaricati su server.

Nel caso di GeoODK invece funzioni di visualizzazione e di editing dei dati possono essere fatte già da dispositivo mobile prima di caricarli sul server.

Un altro elemento importante, che tuttavia stiamo appena testando, è dato dal fatto che GeoODK consente di acquisire dati anche sotto forma di polilinea o poligono, oltre che punti (v. sopra il riferimento alle funzioni Geopoint, Geotrace e Geoshape). In questo caso, tuttavia, al momento le soluzioni lato server come ona.io non supportano la gestione di tale dato, per cui si rende necessario installare localmente ODK Aggregate, ovvero il server di aggregazione dei dati da dispositivo mobile. Siamo in fase ‘work in progress’ anche noi, speriamo di riuscire a testare anche questa soluzione! ;)

Per qualsiasi approfondimento non esitate a contattarci! Saremo felici di rispondere e approfondire gli argomenti!


GiuseppeOggi parliamo tanto di “cittadini sensori“, di Citizen Science, di crowdsourcing e, in poche parole, del coinvolgimento attivo da parte dei cittadini in progetti di raccolta dati (georeferenziati) sul terreno, per progetti di ricerca o di pubblica utilità.

Sappiamo che tali iniziative sono possibili in misura sempre maggiore grazie a delle “rivoluzioni” che ci hanno coinvolto molto da vicino e relativamente molto recenti. L’aumento della velocità di trasmissione dati su Internet, l’abbassamento dei costi legati alle tecnologie ICT, la disponibilità di sistemi di localizzazione GNSS (GPS e altri) a basso costo e di buona precisione (almeno per applicazioni diverse da quelle geodetiche!) e lo sviluppo di smartphone e Social Network hanno senz’altro reso più facile e veloce l’interazione tra individui dotati di dispositivi “smart”, tra loro e con piattaforme di condivisione di dati e informazioni.

Questo è senz’altro vero, ma iniziare a raccogliere dati geolocalizzati in maniera ordinata e sistematica e c ondividerli alla fine del processo richiede nella maggior parte dei casi un po’ di doti di programmazione o quanto meno di familiarità avanzata con strumenti di tipo informatico.

Tale premessa è alla base di quanto abbiamo cercato di sviluppare, a partire dall’estate del 2015, con i ragazzi dell’insegnamento di Geografia delle Reti, nell’ambito dei Corsi di Laurea Magistrali in “Scienze Economiche” e “Scienze Aziendali ” dell’Università di Trieste.

L’idea di partenza era quella di sperimentare modalità di crowdsourcing nell’acquisizione di dati geografici relativi a fenomeni urbani su piattaforme una soluzione senza costi di licenza e con un limitato ricorso a doti di programmazione.

Viola: Oltre ad una soluzione a basso costo e di relativa semplicità nell’impostazione del questionario, volevamo uno strumento che, oltre
a poter registrare dati sotto forma di punti, polilinee o poligoni, avesse queste caratteristiche:

  • relativa applicazione scaricabile (gratuitamente) su smartphone;
  • permettesse la compilazione del questionario anche in caso di assenza di rete;
  • permettesse di caricare un numero molto elevato di risposte da vari dispositivi (o comunque un numero in linea con le nostre esigenze);
  • fosse compilabile via sito web (in caso di problemi di compatibilità con il sistema operativo del telefono o in presenza di qualche buon’anima ancora dotata di Nokia 3310 come arma di battaglia!)

Potrebbero sembrare delle premesse un po’ pretenziose ma dopo varie ricerche, qualche decina di download (wi-fi permettendo) a causa di una rete casalinga un po’ ballerina, qualcosa abbiamo trovato.

Ci siamo imbattuti nella “galassia” di Open Data Kit, un progetto “open” che consente l’impostazione di sistemi client-server di raccolta
e archiviazione di dati da parte di operatori sul campo tramite dispositivi mobili.

Dal sito (https://opendatakit.org/) si legge che ODK (dove ODK sta per Open Data Kit, nel caso ve lo stiate chiedendo) è un “free and open-source set of tools which helps organizations author, field, and manage mobile data collection solutions“, che consente di:

  • costruire una form (o “questionario”) di raccolta dati;
  • raccogliere dati su di un dispositivo mobile;
  • aggregare i dati raccolti su di un server ed estrarli in formati utilizzabili.

Giuseppe: Open Data Kit inizialmente si è sviluppato basando su Google la gestione del proprio “lato server”, dopodiché si è affrancato dal mondo ”commerciale” basandosi soprattutto su architetture open source.

Il sistema richiede diversi elementi, esemplificati nell’immagine qui sotto, da integrare.

Innanzitutto una form, ovvero il questionario da sviluppare.

Una ‘piattaforma’ per la raccolta dei dati: qui ci viene in aiuto enketo.org per la realizzazione di una webform compilabile da (virtualmente) qualsiasi dispositivo, oppure un’app da caricare su dispositivo mobile. Diverse app sono state sviluppate: ODK Collect e KoBo Collect, solo per citarne un paio, soprattutto nell’ambito di progetti a contenuto umanitario o sviluppati apposta per scopi educativi.

Un server, ovvero un sistema centralizzato in cui salvare i dati immessi. Senza ricorrere a un nostro server si può fare riferimento alle piattaforme ODK aggregate e Ona.io.

Viste le applicazioni alternative basate sulla stessa base ODK, abbiamo scelto GeoODK perché ci è sembrata la più semplice e completa, perché consente anche la modifica dei dati prima dell’upload su una base cartografica digitale e di caricare sul dispositivo dei layer geografici ad hoc (non necessariamente le basi di sfondo tipo OpenStreetMap) – funzionalità non implementata nell’esempio che abbiamo riportato in questo report.

image00

Il Sistema ODK (Open Data Kit) e le sue componenti

Inutile dire che, per i nostri scopi, l’attenzione era rivolta alla raccolta di dati georeferenziati, sfruttando il GPS interno per geolocalizzarsi. Il
sistema ‘ODK’ offre numerose app già pronte utili per la raccolta dei dati, come ODK Collect e KoBo collect. Queste tuttavia consentono soltanto di caricare dati geografici sotto forma di punti (coppie di coordinate) e hanno un’interfaccia molto semplice e tutto sommato limitata, senza grandi possibilità di editing e visualizzazione dei dati sul dispositivo mobile.

Viola: L’applicazione scelta è stata GeoODK, dove il “Geo” sta per Geographical (Open Data Kit), sviluppata sempre a partire dalla piattaforma ODK, ma con un’attenzione maggiore al lato geografico.

In particolare consente varie cose in più rispetto a ODK, ovvero:

  • è più semplice;
  • consente di visualizzare e modificare i dati prima dell’upload su una base digitale sullo smartphone o tablet;
  • consente di caricare localmente dei layer geografici ad hoc (non necessariamente le basi di sfondo tipo OpenStreetMap) – funzionalità non implementata nell’esempio riportato;
  • consente di registrare, anche tramite form, dati sotto forma di punti, polilinee o poligoni (funzioni “geopoint”, “geotrace” e ”geoshape”).

image02

GeoODK permette di strutturare un questionario tramite un semplice file Excel (se vedete la parola “form” più avanti non vi spaventate, ci riferiamo a questo) e qualche piccola accortezza, fornendo già sia la propria applicazione mobile sia una soluzione “lato server” per l’aggregazione dei dati, individuata inizialmente in Formhub, dopodiché (a causa della sua lentezza e dell’abbandono da parte degli sviluppatori) trovata nella piattaforma ona.io (anche questa in seguito non più disponibile completamente free). L’alternativa “locale” rimane sempre ODK Aggregate, da installare su di un proprio server.

Mentre la seconda soluzione è più laboriosa, richiedendo di caricare ODK Collect sul proprio server (per il momento ci stiamo pensando ma non abbiamo ancora messo in pratica di sfruttare il server dell’Università di Trieste e il nostro adorato informatico A.P.), Formhub era già bello e pronto e richiedeva solo l’iscrizione (ovviamente gratuita) dell’utente. Problema incontrato già al momento della scelta di utente e password: il server faceva venire i sudori freddi. Era in sovraccarico un buon 70-80% delle volte in cui ci si connetteva e si aveva bisogno di lui. Qualche settimana fa poi il server non è definitivamente più aggiornato dall’organizzazione che se ne occupava quindi ve lo sconsigliamo proprio.

Il sito web http://geoodk.com/tutorials.php contiene un buon videotutorial su come impostare i diversi elementi di un progetto di Mobile Data Collection, presentati al GIS Day 2014. Da quello siamo partiti per il nostro lavoro, e qui sotto cerchiamo di sintetizzarlo un po’ a un pubblico italiano.

Dopo un paio di mesi di stress ed incubi causati dai continui problemi di sovraccarico di Formhub, a settembre il magico prof (Giuseppe) ha trovato un nuovo server su cui caricare i dati. Stesso layout di Formhub, stesse funzioni… la copia conforme ma rapidissima: Ona.io.

Così, un’altra registrazione più in là siamo finiti su un altro server felici e contenti come pasque. Escludendo il fatto che il primo ottobre hanno rilasciato una nuova piattaforma dal diverso layout per cui abbiamo avuto entrambi un colpo al cuore…temevamo di aver perso tutto!

In realtà abbiamo scoperto che dal 21 ottobre cambiano i termini di utilizzo e, in verità, il sito è stato migliorato e con le attuali condizioni è possibile avere un account gratuito caricando fino a 15 questionari e ricevendo fino a 500 risposte al mese, che tutto sommato – poi dipende dall’uso che si vuole fare- sono un buon numero.

LA SETTIMANA PROSSIMA IL SEGUITO …


Solo per segnalare un elenco di riviste a tema GIS accessibili in open access, rese quindi accessibili senza restrizioni e barriere (fonte: Springer Open).

Buona lettura!

P.S. molto interessante questo recente articolo – Riviste open access in Italia: stato dell’arte - ovviamente in open access :)



 

City, Territory and Architecture

Editor-in-Chief: Giovanni Maciocco
Society affiliation: Università degli Studi Sassari, Italy

With its focus on the pluralism of positions and project perspectives regarding the city, territory and architecture, this journal aims to open up an interdisciplinary debate on the relational nature of projects for spaces where people settle and interrelate.

 

separating line


 

Future Cities and Environment

Editor-in-Chief: Saffa Riffat
Society affiliation: World Society of Sustainable Energy Technologies

Considering research in the areas of transport, urban planning, architecture and design, and energy and infrastructure, Future Cities and Environment publishes fundamental and applied research, critical reviews and case studies. This includes experimental development, demonstration and computer modelling.

 

separating line


 

International Journal of Disaster Risk Science
Indexed by Thomson Reuters

Editor-in-Chief: Yanhua Liu and Roger Kasperson

International Journal of Disaster Risk Science publishes high-quality research articles addressing theoretical and methodological issues in disaster science, emergency response technology, disaster risk management, and large-scale disaster risk governance.

 


NdR: questo è stato pubblicato originariamente sul sito della dataninjaschool.

Introduzione

Tra gli strumenti esposti da Google Drive c’è Sheet, un foglio elettronico online ricco di funzioni, molto usato per le professioni e gli utilizzi più svariati.

I fogli creati fungono spesso da “contenitori” di dati, che fanno da sorgente a grafici, mappe, infografiche e applicazioni di svariata natura

L’accesso a Sheet si può eseguire tramite le API ufficiali di interrogazione. Nella documentazione ufficiale è indicato come generare un output, come generarne uno filtrato, come impostare i formati di output, come usarlo come un database relazionale su cui fare delle query SQL con aggregazione, calcoli, ecc.. Sul web, oltre alla guida dedicata, numerosi tutorial ed esempi.

Si tratta di operazioni semplici, con possibilità di uso molto ricche, per uno strumento che è comunque “per tutti“. Nella mia esperienza da formatore ho riscontrato però che per alcuni, la costruzione di una query non è di immediato apprendimento.
Questo post nasce proprio allo scopo di presentare uno strumento che consente di superare questi ostacoli: il buon vecchio Guardian Datastore Explorer di Tony Hirst.

Lo strumento

Il Guardian Datastore Explorer è un vecchietto arzillo: fa la sua prima apparizione nel lontanissimo 2009, un’altra era (non c’era ad esempio Instagram).
Sono due le caratteristiche principali che lo rendono molto interessante:

  • consente facilmente di costruire in modo guidato un’interrogazione su uno Sheet di GDrive;
  • è molto didattico. Utilizzandolo si impara ad usare il linguaggio di query e dopo poco tempo si impareranno a scrivere stringhe di interrogazione in autonomia con un semplice editor di testo.

E’ uno strumento web ed il suo URL è http://ouseful.open.ac.uk/datastore/gspreadsheetdb4.php.

Come si usa

Predisposizione del foglio Google Drive Sheet

E’ propedeutico avere un account su Google Drive. E poi è necessario avere un foglio elettronico con cui testare il Guardian Datastore Explorer: per le spiegazioni successive verrà utilizzato questo, con i musei del territorio comunale fiorentino.

Si tratta di dati aperti presenti sul portate dati.gov.it. Lo sottolineo perché un’altra cosa abilitata dagli open data è la didattica.

La prima cosa da fare con il foglio elettronico, è crearne una copia:

Fatta la “vostra” copia, è necessario impostarne la condivisione (tasto “Condividi” o “Share” in alto a destra), e fare in modo che (1) chiunque abbia l’URL del foglio, (2) possa visualizzarlo.

Poi si dovrà pubblicare sul web:

In questo video la sequenza della procedura sopra descritta:

La condivisione e la pubblicazione sul web sono necessarie perché il Guardian Datastore Explorer è utilizzabile soltanto con fogli pubblicamente accessibili.

Costruzione della query sul del foglio elettronico

La prima cosa da fare è ricavare il codice identificativo del foglio. Si trova all’interno dell’URL dello sheet ed è facilmente indetificabile.
Ad esempio nell’URL sottostante l’ID del foglio è quello in grassetto:

http://docs.google.com/spreadsheets/d/1nS167pnytroD9SQWi0BUa_eFaeCwuWOk1_0GvsBFmsg/edit#gid=108845820

Quindi in questo caso è “1nS167pnytroD9SQWi0BUa_eFaeCwuWOk1_0GvsBFmsg“.

Poi c’è aprire la pagina web del Guardian Datastore Explorer e (1) inserire l’ID del foglio e (2) fare click su “Preview table headings”. In questo modo l’interrogazione è stata attivata e come risultato vengono visualizzate le (3) intestazione delle colonne del foglio.

Subito dopo si può andare a pescare dati (“Go Fish” scrive l’autore) e iniziare a imparare come usare questo linguaggio di interrogazione, tramite la tabella di esempi riportata sul sito. Leggendola si vede che a tutti gli effetti si tratta un classico SQL (Structured Query Language). Qualche esempio:

Obiettivo Comando
Selezionare tutti i record SELECT *
Selezionare le colonne A e B (ovvero la prima e la seconda) per tutti i record SELECT A,B
Selezionare tutti record per le colonne A e B, dove il valore della colonna I è uguale a “3467″ SELECT A,B WHERE I = 3467
Selezionare tutti record delle colonne C e D, in cui la colonna F non assume il valore di 42043 SELECT C,D WHERE F != 3467

Nella pagina trovate molti altri esempi.

Un’interrogazione che si potrebbe fare sul foglio dei musei di Firenze potrebbe essere quella per cui applichiamo questi filtri:

  • Soltanto le colonne A, B, E, F, G, H, I e K;
  • i soli musei a Est della “Cappella Brancacci”;
  • solo quelli Statali;
  • solo quelli che hanno un numero di telefono associato;
  • ordinati da Nord verso Sud.

Prima di costruirla, un breve video che illustra una prima query più semplice, in modo da prendere confidenza con lo strumento: le sole colonne “latitude” e “longitude”, dove la “latitude” è maggiore di 43.77 e tutto ordinato per longitudine crescente.

Fatta la query, poco sopra i risultati di output, tre righe di testo molto interessanti:

La prima è proprio la query che abbiamo costruito, secondo il linguaggio delle API di Google Drive:

select%20A%2CB where B%20%3E%2043.77 order by A asc 

Nella stringa ci sono dei caratteri che ne rendono poco “leggibili” alcune parti: select A,B where B > 43.77 order by A asc si comprende meglio. In realtà la prima è il risultato dell’encoding dei caratteri della seconda. Questa è una procedura necessaria perché l’interrogazione viene lanciata tramite un URL, e in questo alcuni caratteri non sono consentiti. Nel nostro caso lo spazio deve essere codificato in “%20″, la “,” in “%2C”, il “<” in “%3E”.

La seconda contiene due hyperlink, a due dei formati di output possibili di una query fatta su Google Drive Sheet: l’HTML e il CSV. Il secondo è forse il formato più comodo per chi dovrà utilizzare i risultati di un’interrogazione per creare grafici, mappe e infografiche.

Questo ad esempio l’hyperlink per l’output in CSV:

http://spreadsheets.google.com/tq?tqx=out:csv&tq=select%20A%2CB%20where%20B%20%3E%2043.77%20order%20by%20A%20asc&key=1nS167pnytroD9SQWi0BUa_eFaeCwuWOk1_0GvsBFmsg

Se lo separiamo in blocchi, si evidenziano elementi interessanti:

  • tqx=out:csvserve per impostare il formato di output;
  • tq=select%20A%2CB%20where%20B%20%3E%2043.77%20order%20by%20A%20asc per dichiarare la query;
  • key=1nS167pnytroD9SQWi0BUa_eFaeCwuWOk1_0GvsBFmsg per dichiarare l’ID del foglio.

La terza riga un segnalibro che consente di aprire il Guardian Data Explorer con e fargli lanciare la query appena eseguita. E’ un modo per salvare l’interrogazione costruita.

Adesso siamo in grado di costruire la query indicata a inizio paragrafo:

  • Soltanto le colonne A, B, E, F, G, H, I e K -> select A,B,E,F,G,H,I,K
  • i soli musei a Est della “Cappella Brancacci” -> where B > 11.2438292167895
  • solo quelli Statali -> AND I matches 'Statale'
  • solo quelli che hanno un numero di telefono associato -> AND H !=""
  • ordinati da Nord verso Sud -> order by A desc
select A,B,E,F,G,H,I,K where B > 11.2438292167895 AND I matches 'Statale' AND H !=\"\" order by B desc 

Per potere usare questa query è necessario eseguire la codifica dei caratteri in modo che possa essere inserita in un URL. Il risultato (mille strumenti online per farlo, uno è questo) dell’endoding è:

select%20A%2CB%2CE%2CF%2CG%2CH%2CI%2CK%20where%20B%20%3E%2011.2438292167895%20AND%20I%20matches%20%27Statale%27%20AND%20H%20!%3D%22%22%20order%20by%20B%20desc 

E’ possibile usare allora questa stringa per creare l’URL che esegue l’interrogazione di sopra e che produce come un risultato un file CSV:

http://spreadsheets.google.com/tq?tqx=out:csv&tq=select%20A%2CB%2CE%2CF%2CG%2CH%2CI%2CK%20where%20B%20%3E%2011.2438292167895%20AND%20I%20matches%20%27Statale%27%20AND%20H%20!%3D%22%22%20order%20by%20B%20desc&key=1nS167pnytroD9SQWi0BUa_eFaeCwuWOk1_0GvsBFmsg

Il file scaricato sarà apribile con qualsiasi editor di testo, e qualsiasi foglio elettronico.

Usare l’output di una query per costruire una mappa online

Come già scritto sopra, il risultato di una di queste query può essere usata per visualizzare i dati in differenti modi. Uno è una mappa online (deformazione professionale).

Il dataset di esempio si presta, perché contiene la latitudine e la longitudine di ogni museo. Uno strumento free e open-source molto comodo per generare mappe da output di questo tipo è uMap. Tra i formati di input supportati proprio il CSV; l’unico requisito è che nel file CSV siano presenti le colonne denominate “latitude” e “longitude“.

La cosa interessante è che la mappa online sarà live e ogni aggiornamento fatto nel foglio elettronico, produrrà un aggiornamento della mappa. Questo avviene perché tutte le volte che verrà visualizzata, verrà lanciata una nuova query.

Nel video sottostante è illustrato come creare una mappa online live a partire proprio dall’URL soprastante, che produce in output un CSV.

Considerazioni finali

Il Guardian Datastore Explorer non è un query builder particolarmente potente ed elegante, ma è sicuramente uno strumento che rende semplice l’avvicinamento al Query Language di Google Drive Sheet.

Sopratutto fa comprendere che si tratta di un linguaggio semplice, e dopo poco tempo anche i novizi scriveranno le query “a mano” senza più usarlo. Bastano concetti di base di SQL, sapere fare l’encoding dei caratteri e leggersi la documentazione :)


Questo articolo e’ stato pubblicato originariamente su www.big-gim.it.

Tappa del giro

Siamo agli sgoccioli (in molti sensi): le ferie agostane stanno arrivando e forse molti di voi leggeranno questo post al loro rientro.

Un gruppetto di sostenitori del GIM ha portato a termine la preparazione della versione finale della scheda UNINFO per questo nuovo profilo professionale e ha provveduto al suo invio attraverso il form proposto nell’ambito della consultazione pubblica sui “Profili professionali per l’ICT – Parte 3: Profili professionali relativi alle professionalità operanti nel Web” (Inserire il codice progetto E14D00033 all’URL http://bit.ly/1Mb6pT5).

Ringrazio quindi la redazione di TANTO, Lorenzo Perone ed Andrea Borruso in particolare, Monica Sebillo e tutti quelli che hanno lasciato messaggi sulla mailing list per il sostegno di questo lavoro di affinamento del profilo.

E’ possibile prendere visione del risultato qui. Per la pubblicazione sul web abbiamo utilizzato Crocodoc (ancora un grazie ad Andrea Borruso per la segnalazione). Per chi non conoscesse questa applicazione, tra le varie funzionalità, essa permette di lasciare commenti… Questo mi dà lo spunto per sollecitarne l’invio, anche considerando che potrebbero essere utili in una possibile fase di ulteriore affinamento del profilo.

Questa versione del profilo GIM si differenzia dalla precedente soprattutto perché fa riferimento non più specificatamente all’applicazione di questa figura nell’ambito delle comunità intelligenti, bensì ad una generica organizzazione. La modifica (chi segue questa iniziativa da più tempo ricorderà) è stata suggerita da Antonio Rotundo e discussa in occasione dell’incontro pubblico, svoltosi il 18 giugno scorso presso la Link Campus University di Roma, alla presenza dell’Agenzia per l’Italia Digitale. La scelta tiene conto di un possibile più ampio spettro di possibilità di impiego di tale skill e, inoltre, uniforma questa figura a quelle già predisposte dal gruppo di lavoro UNINFO.

Ciò non esclude, anzi è previsto, che una versione dedicata alle smart communities possa essere preparata: essa assumerebbe anche maggiore rilevanza se derivasse da una figura riconosciuta, come speriamo, da UNINFO.

Infatti, l’idea originale del GIM è maturata immaginando il contesto delle comunità intelligenti, soprattutto facendo riferimento a ciò che queste rappresenteranno nel prossimo futuro: spazi ibridi in cui non solo persone ma anche dispositivi e oggetti oscillano tra luoghi fisici e luoghi della Rete; in cui le dimensioni spaziali e temporali assumono nuovi valori, non più soltanto quello legato alla descrizione del territorio, delle sue caratteristiche naturali e delle attività antropiche.

In questo contesto complesso, dai molti e diversi stakeholder,  il GIM può trovare la sua collocazione più ambiziosa e proficua, per contribuire all’evoluzione del management dei dati geografici, sempre più basato su infrastrutture di dati interconnesse, secondo modelli distribuiti e smart, cioè efficienti per la produzione e per l’uso razionale dei dati geografici stessi.

Questa immagine un po’ visionaria può offrire forse spunti per raccogliere idee utili per promuovere il coinvolgimento del GIM all’interno dei processi delle smart communities. L’ozio agostano può stimolare la fantasia: ogni suggerimento sarà benvenuto!

Serene vacanze a tutti! 

Sergio Farruggia


TANTO non rappresenta una testata giornalistica ai sensi della legge n. 62 del 7.03.2001, in quanto non viene aggiornato con una precisa e determinata periodicita'. Pertanto, in alcun modo puo' considerarsi un prodotto editoriale.