Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
4. ACCESSO AI DATI, OFFUSCAMENTO, BROKERING
Cominciamo riprendendo il percorso dei dati che abbiamo già visto nelle scorse lezioni. I 5
passaggi (vd. pag. 12) sono: acquisizione, manipolazione, osservazione/esplorazione,
modellizzazione, visualizzazione.
Type Date Hour (GMT+1) NO2 (mg/m3)
Urban 07.03.18 20:00 46.48
Urban 07.03.18 21:00 30.22
Urban 07.03.18 22:00 26.01
Urban 07.03.18 23:00 27.26
Urban 08.03.18 00:00 24.29
Urban 08.03.18 01:00
Urban 08.03.18 02:00 23.91
Urban 08.03.18 03:00 22.47
Urban 08.03.18 04:00 32.52
Urban 08.03.18 05:00 36.92
Urban 08.03.18 06:00 62.55
16
La forma base dei dati è costituita da una tabella. Nel caso che abbiamo qui, si tratta di una
tabella che contiene i dati di due giorni di monitoraggio dell’aria a Ginevra. Nella prima colonna ci
viene detto il tipo di dato, ovvero urbano. Nella seconda e terza sono riportate rispettivamente le
date e le ore. Nella quarta e ultima troviamo l’inquinante (il diossido di azoto) con l’unità di misura
forma pulita
e poi tutti i valori. Questa è una dei dati, in cui posso comparare questi dati con
quelli della città di Milano per esempio senza problemi. Purtroppo però questo non è il formato in
cui di solito troviamo i dati.
Questi sono gli stessi dati di prima nel formato in cui vengono effettivamente resi disponibili dalla
municipalità di Ginevra. Abbiamo le stesse informazioni di prima articolate in un modo molto
meno pulito che però è più facilmente leggibile da un essere umano. Questo è il grosso
paradosso del modo in cui si presentano i dati attualmente. La domanda è: voglio che i dati siano
facilmente leggibili da un essere umano con chiarezza o voglio che siano processati da un
macchina? Perché in questo modo di strutturare i dati una macchina non capisce per esempio
che le prime righe sono un’introduzione e quella subito sopra i dati è l’intestazione di colonna. In
non pulita.
ogni caso, questa strutturazione dei dati la consideriamo Ce lo dice una convenzione,
tidy data.
quella dei Questa convenzione circola già da molti decenni, ma è stata riordinata da
Wickahm paper
nel 2014 in un che è stato revisionato più volte. Per lui le regole sono semplici:
ogni riga contiene una e una sola osservazione;
• ogni colonna contiene una e una sola variabile;
• ogni tipologia di unità osservabile forma una tabella.
•
Ciò vuol dire che non ci devono essere più osservazioni sulla stessa riga e dunque bisogna
ripetere una stessa variabile molto spesso.
Ora abbiamo capito quando abbiamo in mano dei dati sporchi e quando abbiamo in mano dei
entrare in possesso
dati puliti. La domanda che ci facciamo adesso è come facciamo ad di
questi dati. Abbiamo sostanzialmente cinque modi per acquisirli, riconducibili a due famiglie
principali: offline,
i dati sono resi disponibili dai detentori dei dati per l’uso ovvero tutte quelle tecniche
• che hanno a che fare con quei casi in cui chi ha generato i dati rende disponibili dei modi per cui
altri soggetti possano utilizzare questi dati nelle loro elaborazioni. Creano in sostanza delle porte
open
di accesso ai propri dati. Il caso più esemplare in questo senso è quello delle pagine degli
data delle città italiane. Vediamo le tre tecniche che fanno parte di questa famiglia:
querying
1. > i dati sono richiesti direttamente da un database;
downloading
2. > i dati sono raccolti dall’utente come file discreti (quindi sono scaricati);
APIs
3. > i dati vengono messi a disposizione tramite delle chiamate che l’utente può fare ad
appositi software;
non disponibili
i detentori dei dati li rendono per un uso offline. Il caso tipico è quello dei social
• media: la principale ricchezza di Facebook risiede negli scambi comunicativi che servono per
alimentare i modelli di profilazione pubblicitaria. Se mettesse a disposizione di terzi dataset con i
suoi scambi comunicativi, quelle tecniche di profilazione le potrebbe fare chiunque e il social
17
perderebbe buona parte dei propri introiti pubblicitari. A questa famiglia appartengono due
tecniche principali:
scraping
4. > i dati non sono resi disponibili quindi tu costruisci dei software che vanno sulla
pagina in questione, raccolgono i dati, creano dei dataset e te li consegnano;
social engineering
5. > sono quelle tecniche che danno accesso ai dati non attraverso la
tecnologia ma attraverso qualcuno che ha le credenziali per accedere a queste
social engineering
informazioni. Il va dall’illecito (es. chiami qualcuno fingendo di avere le
credenziali per accedere a quei dati) al legale (es. un tesista che chiede di accedere a dei
dati). Questa parte non la vedremo nel dettaglio perché configura spesso un
comportamento eticamente discutibile.
Database Querying
Il è quella modalità di accesso ai dati nella quale l’utente chiama
direttamente il database, ovvero la struttura dove sono contenuti i dati. Il database può essere
interrogato utilizzando dei linguaggi specifici propri di ciascuna tipologia di database. Uno fra i più
diffusi è SQL. Per poter interrogare questo tipo di database si ha bisogno di conoscere due cose:
la struttura del database e il linguaggio specifico nel quale è scritto. Entrambi gli aspetti rendono
complicato per un singolo utente portare avanti l’interrogazione del database. Potenzialmente è
più complicato anche dal punto di vista di chi fornisce i dati. Aprire il database agli utenti esterni è
ciò che richiede meno lavoro. Però quando hai tanti utenti che accedono al database, che non è
stato scritto per aumentare la sua capacità a seconda del flusso di utilizzo, di fatto il database
rallenta non solo in lettura ma anche in scrittura e questo è un problema (per esempio per dei
sensori ambientali che trascrivono dati ogni minuto). Quindi se da un lato è la scelta che richiede
meno lavoro a livello di interfaccia, è anche la più complicata per l’utente e rischiosa per chi
fornisce i dati. Inoltre c’è una questione di sicurezza perché nelle aree in cui ti ho dato accesso tu
puoi vedere tutto. Vediamo un esempio di consultazione diretta di un database al seguente link:
https://www.w3schools.com/sql/trysql.asp?filename=trysql_op_in. Da questo esempio è evidente
che se non si conosce il linguaggio non si può interrogare il database. download:
La seconda modalità di accesso dei dati è anche quella più frequente, il chi produce i
file discreti. open
dati li mette a disposizione dell’utente in uno o più È questo il caso delle pagine
data di tutto il mondo. Anche qua ci sono vantaggi e svantaggi. Se la modalità di accesso diretto
al database non prevedeva nessun lavoro da parte del detentore, qui invece deve prendersi
statico.
l’impegno di generare questi file. Un’altra questione è che il file non è dinamico, ma Se la
situazione sta cambiando non si vede dal file excel, che fotografa una situazione. Quindi lo
scaricamento è utile per quei dati che sono serie storiche ferme a quando chi l’ha elaborato a
monte ha generato il file. Inoltre, dal lato utente, tu scarichi tutti i dati: non puoi decidere cosa
vuoi. Questo è un problema quando chi mette a disposizione i dati lo fa in file giganteschi (es.
ISTAT): Excel non riesce nemmeno a gestire dataset troppo grossi. Passiamo a un esempio
pratico: i dati ONU sulle migrazioni. Questo dataset ha una serie di problemi di mancanza di
ordine e ridondanza. Riporta sull’asse delle x tutti i paesi di destinazione del mondo e la stessa
cosa fa sull’asse delle y, incrociando le due cose. È un dataset perfettamente leggibile da un
essere umano e improcessabile da una macchina. Vediamo perché. Prima di tutto ci sono 10
tidy
righe iniziali di intestazione; inoltre, se nello standard in ogni colonna c’è una variabile e in
“Country of origin”
ogni riga un’osservazione, qui invece c’è la colonna che viene poi divisa per
tutti i paesi, ma un computer la conta come sesta colonna, senza vedere tutte quelle che stanno
sotto di lei. Se guardiamo l’asse delle y ci sono i paesi del mondo, la regione di appartenenza, il
continente di appartenenza tutti sulla stessa colonna: il sistema non capisce la differenza ma li
considera tutti allo stesso modo perché sono nella stessa colonna. Questi errori rendono
pressoché impossibili lavorare su questo dataset. Il problema di questo dataset è che è già
preimpostato, è stato deciso a monte dall’ONU che ha deciso che doveva essere leggibile per un
essere umano. APIs Programming Interfaces)
Terza modalità di accesso ai dati è costituita dalle (Application che
sono dei pezzi di software, delle interfacce che si situano fra il database e l’utente. Vanno
immaginati come dei centralinisti che chiedono al database i dati che servono per poi fornirli
all’utente. Questa modalità permette a chi gestisce i dati di gestirne i flussi: in che formato
restituire i dati all’utente, quante chiamate l’utente può fare, a che dati può avere accesso, il tutto
preservando la dinamicità dei dati. È utile quando i dati cambiano rapidamente, in tempo reale. Da
un lato permette di gestire l’accesso al database in maniera flessibile e accurata e semplifica il
lavoro dell’utente. Dall’altro permette al gestore dei dati di monetizzare i dati stessi. La ratio in
questo senso è che se io ti do accesso al file tu lo paghi una volta e potresti distribuirlo ad altri e
se io ti fornisco l’accesso al database ti faccio pagare un canone annuale e tu puoi fare quello che
18
vuoi. Le APIs invece ti permettono di gestire il numero delle chiamate: si può dire all’utente tu puoi
fare da 0 a 100 chiamate al giorno ma dopo queste paghi una certa cifra a chiamata. Questo crea
interessanti possibilità di monetizzazione perché tu che produci dati puoi continuare ad aggiornali
non vendendoli in un blocco solo. Questo tipo di soluzione ha la contropartita che qualcuno deve
sviluppare questa interfaccia attraverso cui le persone possono interagire con il tuo database, c’è
quindi un piccolo quantitativo di costo di servizio a monte. Un esempio è un link che fa vedere la
posizione della stazione spaziale internazionale in ogni momento (http://api.open-notify.org/iss-
now.json). Un secondo URL dice chi c’è in questo momento sulla stazione spaziale internazionale
(http://api.open-notify.org/astros.json). I dati restituiti sono puri. Le città non sono ancora avanti
dal punto di vista delle APIs, soprattutto quelle ital