31.05.2013 Views

Cruscotto per la navigazione degli indicatori di sostenibilità e - Cnr

Cruscotto per la navigazione degli indicatori di sostenibilità e - Cnr

Cruscotto per la navigazione degli indicatori di sostenibilità e - Cnr

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2012<br />

Progetto Turismo Pisa<br />

Deliverable D2.2 Realizzazione del prototipo<br />

<strong>per</strong> <strong>la</strong> <strong>navigazione</strong> dell’infrastruttura <strong>di</strong><br />

conoscenza<br />

Coor<strong>di</strong>namento:<br />

Fosca Fosca Giannotti<br />

Salvatore Rinzivillo<br />

KDD KDD Lab, Lab, ISTI-CNR<br />

Via Via Moruzzi Moruzzi 1, 1, 56124 56124 Pisa Pisa<br />

fosca.giannotti@isti.cnr.it<br />

salvatore.rinzivillo@isti.cnr.it<br />

0


Autori: Barbara Furletti. Lorenzo Gabrielli (ISTI-CNR)


Sommario<br />

1 Interfaccia <strong>di</strong> <strong>navigazione</strong> ............................................................................................................ 1<br />

1.1 Interfaccia back-end .............................................................................................................. 2<br />

1.2 Interfaccia front-end .............................................................................................................. 2<br />

2 Servizio <strong>di</strong> visualizzazione <strong>per</strong> dati geo-referenziati ................................................................... 4<br />

3 Popo<strong>la</strong>mento del Data Warehouse................................................................................................ 5<br />

4 Riferimenti ................................................................................................................................... 7


Questo documento descrive <strong>la</strong> realizzazione del prototipo <strong>di</strong> <strong>navigazione</strong> del sistema (descritto in<br />

(1)) che raccoglie e integra i dati dell’osservatorio.<br />

Il prototipo <strong>di</strong> <strong>navigazione</strong> estende <strong>la</strong> base <strong>di</strong> conoscenza (DBMS Postgres e Data warehouse) con<br />

due interfacce <strong>di</strong> <strong>navigazione</strong>: l’interfaccia <strong>di</strong> back-end, orientata ad un utente es<strong>per</strong>to, <strong>per</strong>mette <strong>di</strong><br />

navigare le gerarchie e visualizzare in modo elementare le i valori <strong>degli</strong> <strong>in<strong>di</strong>catori</strong>; l’interfaccia <strong>di</strong><br />

front-end, orientata ad un utente finale, consente <strong>di</strong> esplorare <strong>la</strong> base <strong>di</strong> conoscenza e <strong>di</strong> ottenere i<br />

risultati secondo un modello grafico più complesso.<br />

Data <strong>la</strong> <strong>di</strong>sponibilità <strong>di</strong> dati geo-referenziati (nel caso specifico i dati <strong>di</strong> telefonia mobile), è stato<br />

realizzato un servizio aggiuntivo <strong>di</strong> visualizzazione dei dati sul<strong>la</strong> mappa geografica.<br />

Attraverso una alimentazione costante del sistema da parte dei fornitori dei dati, viene garantita <strong>la</strong><br />

consistenza del sistema nel tempo.<br />

Figura 1 mostra lo schema ad alto livello delle componenti del sistema.<br />

Figura 1: Schema ad alto livello dell’architettura del sistema.<br />

1 Interfaccia <strong>di</strong> <strong>navigazione</strong><br />

L’interfaccia <strong>di</strong> back-end consente <strong>di</strong> accedere alle funzionalità del DWH esprimendo me<strong>di</strong>ante il<br />

linguaggio MDX (MultiDimensional eXpressions) (2) i coman<strong>di</strong>/sintassi <strong>per</strong> <strong>la</strong> <strong>navigazione</strong> del<br />

cubo OLAP.<br />

L’interfaccia <strong>di</strong> front-end è orientata invece all’utente finale e fornisce una serie <strong>di</strong> strumenti <strong>per</strong> <strong>la</strong><br />

<strong>navigazione</strong> e esplorazione dei dati contenuti nel DWH.<br />

1


1.1 Interfaccia back-end<br />

L’interfaccia <strong>di</strong> <strong>navigazione</strong> è realizzata attraverso il tool open source JPIVOT (3) che consente <strong>di</strong><br />

visualizzare le misure in base alle <strong>di</strong>mensioni <strong>di</strong> analisi e alle rispettive gerarchie scelte. Figura 2<br />

mostra un esempio dell’aspetto dell’interfaccia implementata con JPivot. In questo caso ma misura<br />

esplorata è Numero voucher ovvero i <strong>per</strong>messi <strong>per</strong> i bus turistici venduti nell’anno 2009.<br />

L’interfaccia <strong>per</strong>mette <strong>di</strong> esplorare <strong>di</strong>namicamente le <strong>di</strong>mensioni spaziali e temporali in maniera<br />

molto semplice ed intuitiva.<br />

Figura 2: Esempio <strong>di</strong> <strong>navigazione</strong> dei risultati implementato con JPivot.<br />

La statistica mostrata in Figura 2 è il risultato del<strong>la</strong> seguente query MDX:<br />

select {[Measures].[Numero voucher]} ON COLUMNS,<br />

({[Time.H1].[2009].Children} * {[Regions].[toscana].[pisa].[pisa]}) ON ROWS<br />

from [DWH_turismo]<br />

Questa interfaccia è accessibile all’in<strong>di</strong>rizzo:<br />

http://mat<strong>la</strong>spisa.isti.cnr.it:8080/mondrian/testpage.jsp?query=DWH_turismo<br />

1.2 Interfaccia front-end<br />

L’interfaccia front-end dell’utente finale è accessibile all’in<strong>di</strong>rizzo:<br />

http://mat<strong>la</strong>spisa.isti.cnr.it/foundation/osserv.php<br />

Per ogni in<strong>di</strong>catore è possibile visualizzare l’andamento temporale dei valori ed eventualmente<br />

focalizzare lo stu<strong>di</strong>o su un partico<strong>la</strong>re <strong>per</strong>iodo temporale utilizzando lo strumento fornito<br />

dall’interfaccia.<br />

Le richieste <strong>degli</strong> utenti sono co<strong>di</strong>ficate in interrogazioni al DWH utilizzando uno script javascript.<br />

Una volta recu<strong>per</strong>ate le informazioni dal DWH, queste sono visualizzate utilizzando <strong>la</strong> libreria<br />

javascript d3.js (4).<br />

Figura 3 mostra un esempio <strong>di</strong> visualizzazione front-end del<strong>la</strong> serie temporale dei bus turistici<br />

arrivati a Pisa.<br />

Per ogni in<strong>di</strong>catore, viene evidenziato il fornitore del dato (nel caso in esempio, il Comune <strong>di</strong> Pisa),<br />

e una descrizione sintetica dell’in<strong>di</strong>catore scelto.<br />

Nell’area del grafico, l’asse delle ascisse evidenzia <strong>la</strong> finestra temporale <strong>di</strong> rilevamento, mentre<br />

2


l’asse delle or<strong>di</strong>nate riporta i volumi <strong>di</strong> presenze <strong>di</strong> bus. Posizionando il mouse sul grafico in<br />

corrispondenza <strong>di</strong> ogni rilevamento, a margine destro dell’area <strong>di</strong> visualizzazione viene evidenziato<br />

il dettaglio corrispondente (nel caso <strong>di</strong> esempio, il rilevamento corrisponde a 3692 bus turistici nel<br />

mese <strong>di</strong> Aprile 2010).<br />

Sul<strong>la</strong> destra sono riportati tutti gli <strong>in<strong>di</strong>catori</strong> dell’OTD oggetto <strong>di</strong> questo stu<strong>di</strong>o.<br />

L’interfaccia mette a <strong>di</strong>sposizione un sistema <strong>di</strong> confronto tra <strong>in<strong>di</strong>catori</strong> che visualizza, sul<strong>la</strong> stessa<br />

area, il grafico corrispondente. In Figura 4 viene mostrato il confronto tra il numero <strong>di</strong> autobus<br />

turistici che hanno sostato previo acquisto <strong>di</strong> voucher e autobus turistici che hanno sostato senza<br />

voucher.<br />

Figura 3: Esempio <strong>di</strong> <strong>navigazione</strong> dei risultati nell’interfaccia front-end.<br />

3


Figura 4: Confronto tra <strong>in<strong>di</strong>catori</strong>.<br />

2 Servizio <strong>di</strong> visualizzazione <strong>per</strong> dati geo-referenziati<br />

Il servizio <strong>di</strong> visualizzazione è orientato al<strong>la</strong> rappresentazione spaziale delle informazioni a cui è<br />

associato un attributo geografico.<br />

Il servizio integra il <strong>la</strong>yer informativo prodotto dall’analisi dei dati con quello geografico proprio <strong>di</strong><br />

una mappa spaziale. La sovrapposizione <strong>di</strong> questi <strong>la</strong>yer <strong>per</strong>mette una migliore comprensione delle<br />

informazioni estratte dal DWH.<br />

L’implementazione è realizzata me<strong>di</strong>ante l’uso delle librerie Javascript D3 (4) e Google Maps<br />

JavaScript API v3 (5). La libreria Google Maps fornisce il supporto <strong>per</strong> il <strong>di</strong>segno del <strong>la</strong>yer<br />

geografico <strong>per</strong>mettendo <strong>di</strong> aggiungere contenuti informativi <strong>di</strong> vario genere. Javascript D3 è<br />

utilizzato <strong>per</strong> il caricamento e <strong>la</strong> gestione dei dati.<br />

L’attuale implementazione è focalizzata sul<strong>la</strong> rappresentazione <strong>di</strong> informazioni estratte dai dati<br />

GSM, che attualmente sono l’unico dataset con associata una informazione spaziale. In partico<strong>la</strong>re<br />

si rappresentano mappe <strong>di</strong> densità <strong>di</strong>segnando sul<strong>la</strong> mappa <strong>la</strong> griglia <strong>di</strong> co<strong>per</strong>tura del segnale<br />

telefonico.<br />

Questo prototipo è esten<strong>di</strong>bile <strong>per</strong> <strong>la</strong> rappresentazione <strong>di</strong> altre tipologie <strong>di</strong> dati geo-referenziati e<br />

delle statistiche associate.<br />

Un esempio <strong>di</strong> risultato consultabile attraverso il servizio <strong>di</strong> visualizzazione è mostrato in Figura 5.<br />

In questo caso, l’informazione rappresentata è <strong>la</strong> mappa <strong>di</strong> densità prodotta considerando il numero<br />

<strong>di</strong> telefonate effettuate in un giorno feriale nel<strong>la</strong> fascia oraria 5:00-8:00 da utenti del servizio <strong>di</strong><br />

telefonia mobile nell’area urbana <strong>di</strong> Pisa. Nel caso specifico dei dati <strong>di</strong> telefonia mobile, le aree<br />

spaziali (i poligoni) rappresentano <strong>la</strong> zona co<strong>per</strong>ta da una partico<strong>la</strong>re antenna.<br />

Il significato del<strong>la</strong> gradazione dei colori è spiegato dal<strong>la</strong> legenda posta in basso a sinistra, mentre il<br />

menu in basso a destra consente <strong>di</strong> selezionare <strong>di</strong>versi tipi <strong>di</strong> informazioni da visualizzare.<br />

4


Questo servizio è <strong>di</strong>sponibile al<strong>la</strong> url: mat<strong>la</strong>spisa.isti.cnr.it/maps/index.php<br />

Figura 5: 2 Servizio <strong>di</strong> visualizzazione <strong>per</strong> dati geo-referenziati<br />

3 Popo<strong>la</strong>mento del Data Warehouse<br />

Lo scopo del DWH è quello <strong>di</strong> mantenere <strong>la</strong> consistenza <strong>di</strong> dati storici e <strong>per</strong>mettere l’aggiornamento<br />

dei dati nel tempo. Questo aggiornamento è possibile attraverso <strong>la</strong> definizione <strong>di</strong> procedure <strong>per</strong><br />

l’alimentazione automatica del sistema.<br />

Per garantire <strong>la</strong> consistenza del DWH è dunque necessaria <strong>la</strong> col<strong>la</strong>borazione dei fornitori dei dati<br />

nel<strong>la</strong> fase <strong>di</strong> raccolta <strong>di</strong> nuovi dati e alimentazione <strong>per</strong>io<strong>di</strong>ca nel sistema.<br />

A tale scopo sono state implementate una serie <strong>di</strong> interfacce RESTFul (6) <strong>per</strong> poter gestire le<br />

procedure <strong>di</strong> comunicazione e aggiornamento dei dati me<strong>di</strong>ante un servizio web.<br />

Le interfacce definiscono due tipo <strong>di</strong> meto<strong>di</strong>: uno <strong>per</strong> <strong>la</strong> selezione dei dati (get) e uno <strong>per</strong><br />

l’aggiornamento <strong>per</strong>io<strong>di</strong>co (post).<br />

Un metodo get <strong>per</strong> <strong>la</strong> richiesta <strong>di</strong> un in<strong>di</strong>catore è il seguente:<br />

getMeasure(request)<br />

GET<br />

http://mat<strong>la</strong>spisa.isti.cnr.it:8080/turismo-rest/getMeasure<br />

Request format:<br />

@QueryParam("startime") long:inizio dell’intervallo <strong>di</strong> osservazione(ms);<br />

@QueryParam("endtime") long:fine dell’intervallo <strong>di</strong> osservazione(ms);<br />

5


@QueryParam("comune") String: nome del Comune;<br />

@QueryParam("measure") String: nome del<strong>la</strong> misura.<br />

Esempio:<br />

http://mat<strong>la</strong>spisa.isti.cnr.it:8080/turismorest/getMeasure?startime=1215372400000&endtime=1315823200000&comune=pisa&measure=K<br />

m+<strong>di</strong>+piste+cic<strong>la</strong>bili<br />

Response Format:<br />

List of “ts, value”<br />

Esempio:<br />

2010-12,14.0<br />

2011-01,0.0<br />

…<br />

Le interfacce <strong>di</strong> post sono state realizzate tendendo conto del fatto che alcuni dati <strong>di</strong> base possono<br />

essere inviati contemporaneamente, come <strong>per</strong> esempio le informazioni re<strong>la</strong>tive ai bus turistici. La<br />

chiamata setPullmanTuristici(pullman) <strong>per</strong>mette infatti <strong>di</strong> aggiornare insieme le variabili<br />

numeroBus e numeroVoucher <strong>per</strong> il <strong>per</strong>iodo “time” e il comune “comune”.<br />

setPullmanTuristici(pullman)<br />

POST<br />

http://mat<strong>la</strong>spisa.isti.cnr.it:8080/turismo-rest/setPullmanTuristici<br />

Request format:<br />

@XmlRootElement(name = "pullmanTuristiciParams")<br />

public c<strong>la</strong>ss PullmanTuristiciParams {<br />

@XmlElement(name = "comune")<br />

public String comune;<br />

@XmlElement(name = "time")<br />

public long time;<br />

@XmlElement(name = "numeroBus”)<br />

public int numeroBus;<br />

@XmlElement(name = "numeroVoucher”)<br />

public int numeroVoucher;<br />

}<br />

Response Format:<br />

@XmlRootElement(name = "result")<br />

public c<strong>la</strong>ss Result {<br />

@XmlElement(name = "message")<br />

public String message;<br />

}<br />

Tutti i meto<strong>di</strong> REST definiti <strong>per</strong> ogni fornitori sono descritti in dettaglio nell’allegato tecnico (7).<br />

6


4 Riferimenti<br />

1. ISTI-CNR. D1.2 Design e realizzazione dell'infrastruttura <strong>di</strong> conoscenza. 2012.<br />

2. Multi<strong>di</strong>mensional Expressions. [Online] http://msdn.microsoft.com/en-us/library/ms145506.aspx.<br />

3. JPivot. [Online] http://jpivot.sourceforge.net/.<br />

4. Libreria javascript D3. [Online] https://github.com/mbostock/d3/wiki.<br />

5. Google. Google Maps JavaScript API v3. [Online]<br />

https://develo<strong>per</strong>s.google.com/maps/documentation/javascript/.<br />

6. Oracle. RESTful Web Services. [Online]<br />

http://www.oracle.com/technetwork/articles/javase/index-137171.html.<br />

7. ISTI-CNR. D2.2 Allegato Tecnico. 2012.<br />

8. —. D1.1 - Descrizione dei dati e delle sorgenti <strong>di</strong>sponibili. 2012.<br />

9. —. D2.2-Realizzazione del prototipo <strong>per</strong> <strong>la</strong> <strong>navigazione</strong> dell'infrastruttura <strong>di</strong> conoscenza. 2012.<br />

10. Group, PostgreSQL Global Development. PostgreSQL. [Online] The PostgreSQL Global<br />

Development Group . http://www.postgresql.org/.<br />

11. Mondrian Pentaho. [Online] Pentaho. http://mondrian.pentaho.com/.<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!