2012 Progetto Turismo Pisa Deliverable D2.2 Realizzazione del prototipo per la navigazione dell infrastruttura di conoscenza Coordinamento: Fosca Fosca Giannotti Salvatore Rinzivillo KDD KDD Lab, Lab, ISTI-CNR Via Via Moruzzi Moruzzi 1, 1, 56124 56124 Pisa Pisa fosca.giannotti@isti.cnr.it salvatore.rinzivillo@isti.cnr.it 0
Autori: Barbara Furletti. Lorenzo Gabrielli (ISTI-CNR)
Sommario 1 Interfaccia di navigazione... 1 1.1 Interfaccia back-end... 2 1.2 Interfaccia front-end... 2 2 Servizio di visualizzazione per dati geo-referenziati... 4 3 Popolamento del Data Warehouse... 5 4 Riferimenti... 7
Questo documento descrive la realizzazione del prototipo di navigazione del sistema (descritto in (1)) che raccoglie e integra i dati dell osservatorio. Il prototipo di navigazione estende la base di conoscenza (DBMS Postgres e Data warehouse) con due interfacce di navigazione: l interfaccia di back-end, orientata ad un utente esperto, permette di navigare le gerarchie e visualizzare in modo elementare le i valori degli indicatori; l interfaccia di front-end, orientata ad un utente finale, consente di esplorare la base di conoscenza e di ottenere i risultati secondo un modello grafico più complesso. Data la disponibilità di dati geo-referenziati (nel caso specifico i dati di telefonia mobile), è stato realizzato un servizio aggiuntivo di visualizzazione dei dati sulla mappa geografica. Attraverso una alimentazione costante del sistema da parte dei fornitori dei dati, viene garantita la consistenza del sistema nel tempo. Figura 1 mostra lo schema ad alto livello delle componenti del sistema. Figura 1: Schema ad alto livello dell architettura del sistema. 1 Interfaccia di navigazione L interfaccia di back-end consente di accedere alle funzionalità del DWH esprimendo mediante il linguaggio MDX (MultiDimensional expressions) (2) i comandi/sintassi per la navigazione del cubo OLAP. L interfaccia di front-end è orientata invece all utente finale e fornisce una serie di strumenti per la navigazione e esplorazione dei dati contenuti nel DWH. 1
1.1 Interfaccia back-end L interfaccia di navigazione è realizzata attraverso il tool open source JPIVOT (3) che consente di visualizzare le misure in base alle dimensioni di analisi e alle rispettive gerarchie scelte. Figura 2 mostra un esempio dell aspetto dell interfaccia implementata con JPivot. In questo caso ma misura esplorata è Numero voucher ovvero i permessi per i bus turistici venduti nell anno 2009. L interfaccia permette di esplorare dinamicamente le dimensioni spaziali e temporali in maniera molto semplice ed intuitiva. Figura 2: Esempio di navigazione dei risultati implementato con JPivot. La statistica mostrata in Figura 2 è il risultato della seguente query MDX: select {[Measures].[Numero voucher]} ON COLUMNS, ({[Time.H1].[2009].Children} * {[Regions].[toscana].[pisa].[pisa]}) ON ROWS from [DWH_turismo] Questa interfaccia è accessibile all indirizzo: http://matlaspisa.isti.cnr.it:8080/mondrian/testpage.jsp?query=dwh_turismo 1.2 Interfaccia front-end L interfaccia front-end dell utente finale è accessibile all indirizzo: http://matlaspisa.isti.cnr.it/foundation/osserv.php Per ogni indicatore è possibile visualizzare l andamento temporale dei valori ed eventualmente focalizzare lo studio su un particolare periodo temporale utilizzando lo strumento fornito dall interfaccia. Le richieste degli utenti sono codificate in interrogazioni al DWH utilizzando uno script javascript. Una volta recuperate le informazioni dal DWH, queste sono visualizzate utilizzando la libreria javascript d3.js (4). Figura 3 mostra un esempio di visualizzazione front-end della serie temporale dei bus turistici arrivati a Pisa. Per ogni indicatore, viene evidenziato il fornitore del dato (nel caso in esempio, il Comune di Pisa), e una descrizione sintetica dell indicatore scelto. Nell area del grafico, l asse delle ascisse evidenzia la finestra temporale di rilevamento, mentre 2
l asse delle ordinate riporta i volumi di presenze di bus. Posizionando il mouse sul grafico in corrispondenza di ogni rilevamento, a margine destro dell area di visualizzazione viene evidenziato il dettaglio corrispondente (nel caso di esempio, il rilevamento corrisponde a 3692 bus turistici nel mese di Aprile 2010). Sulla destra sono riportati tutti gli indicatori dell OTD oggetto di questo studio. L interfaccia mette a disposizione un sistema di confronto tra indicatori che visualizza, sulla stessa area, il grafico corrispondente. In Figura 4 viene mostrato il confronto tra il numero di autobus turistici che hanno sostato previo acquisto di voucher e autobus turistici che hanno sostato senza voucher. Figura 3: Esempio di navigazione dei risultati nell interfaccia front-end. 3
Figura 4: Confronto tra indicatori. 2 Servizio di visualizzazione per dati geo-referenziati Il servizio di visualizzazione è orientato alla rappresentazione spaziale delle informazioni a cui è associato un attributo geografico. Il servizio integra il layer informativo prodotto dall analisi dei dati con quello geografico proprio di una mappa spaziale. La sovrapposizione di questi layer permette una migliore comprensione delle informazioni estratte dal DWH. L implementazione è realizzata mediante l uso delle librerie Javascript D3 (4) e Google Maps JavaScript API v3 (5). La libreria Google Maps fornisce il supporto per il disegno del layer geografico permettendo di aggiungere contenuti informativi di vario genere. Javascript D3 è utilizzato per il caricamento e la gestione dei dati. L attuale implementazione è focalizzata sulla rappresentazione di informazioni estratte dai dati GSM, che attualmente sono l unico dataset con associata una informazione spaziale. In particolare si rappresentano mappe di densità disegnando sulla mappa la griglia di copertura del segnale telefonico. Questo prototipo è estendibile per la rappresentazione di altre tipologie di dati geo-referenziati e delle statistiche associate. Un esempio di risultato consultabile attraverso il servizio di visualizzazione è mostrato in Figura 5. In questo caso, l informazione rappresentata è la mappa di densità prodotta considerando il numero di telefonate effettuate in un giorno feriale nella fascia oraria 5:00-8:00 da utenti del servizio di telefonia mobile nell area urbana di Pisa. Nel caso specifico dei dati di telefonia mobile, le aree spaziali (i poligoni) rappresentano la zona coperta da una particolare antenna. Il significato della gradazione dei colori è spiegato dalla legenda posta in basso a sinistra, mentre il menu in basso a destra consente di selezionare diversi tipi di informazioni da visualizzare. 4
Questo servizio è disponibile alla url: matlaspisa.isti.cnr.it/maps/index.php Figura 5: 2 Servizio di visualizzazione per dati geo-referenziati 3 Popolamento del Data Warehouse Lo scopo del DWH è quello di mantenere la consistenza di dati storici e permettere l aggiornamento dei dati nel tempo. Questo aggiornamento è possibile attraverso la definizione di procedure per l alimentazione automatica del sistema. Per garantire la consistenza del DWH è dunque necessaria la collaborazione dei fornitori dei dati nella fase di raccolta di nuovi dati e alimentazione periodica nel sistema. A tale scopo sono state implementate una serie di interfacce RESTFul (6) per poter gestire le procedure di comunicazione e aggiornamento dei dati mediante un servizio web. Le interfacce definiscono due tipo di metodi: uno per la selezione dei dati (get) e uno per l aggiornamento periodico (post). Un metodo get per la richiesta di un indicatore è il seguente: getmeasure(request) GET http://matlaspisa.isti.cnr.it:8080/turismo-rest/getmeasure Request format: @QueryParam("startime") long:inizio dell intervallo di osservazione(ms); @QueryParam("endtime") long:fine dell intervallo di osservazione(ms); 5
@QueryParam("comune") String: nome del Comune; @QueryParam("measure") String: nome della misura. Esempio: http://matlaspisa.isti.cnr.it:8080/turismorest/getmeasure?startime=1215372400000&endtime=1315823200000&comune=pisa&measure=k m+di+piste+ciclabili Response Format: List of ts, value Esempio: 2010-12,14.0 2011-01,0.0 Le interfacce di post sono state realizzate tendendo conto del fatto che alcuni dati di base possono essere inviati contemporaneamente, come per esempio le informazioni relative ai bus turistici. La chiamata setpullmanturistici(pullman) permette infatti di aggiornare insieme le variabili numerobus e numerovoucher per il periodo time e il comune comune. setpullmanturistici(pullman) POST http://matlaspisa.isti.cnr.it:8080/turismo-rest/setpullmanturistici Request format: @XmlRootElement(name = "pullmanturisticiparams") public class PullmanTuristiciParams { @XmlElement(name = "comune") public String comune; @XmlElement(name = "time") public long time; @XmlElement(name = "numerobus ) public int numerobus; @XmlElement(name = "numerovoucher ) public int numerovoucher; } Response Format: @XmlRootElement(name = "result") public class Result { @XmlElement(name = "message") public String message; } Tutti i metodi REST definiti per ogni fornitori sono descritti in dettaglio nell allegato tecnico (7). 6
4 Riferimenti 1. ISTI-CNR. D1.2 Design e realizzazione dell'infrastruttura di conoscenza. 2012. 2. Multidimensional Expressions. [Online] http://msdn.microsoft.com/en-us/library/ms145506.aspx. 3. JPivot. [Online] http://jpivot.sourceforge.net/. 4. Libreria javascript D3. [Online] https://github.com/mbostock/d3/wiki. 5. Google. Google Maps JavaScript API v3. [Online] https://developers.google.com/maps/documentation/javascript/. 6. Oracle. RESTful Web Services. [Online] http://www.oracle.com/technetwork/articles/javase/index-137171.html. 7. ISTI-CNR. D2.2 Allegato Tecnico. 2012. 8.. D1.1 - Descrizione dei dati e delle sorgenti disponibili. 2012. 9.. D2.2-Realizzazione del prototipo per la navigazione dell'infrastruttura di conoscenza. 2012. 10. Group, PostgreSQL Global Development. PostgreSQL. [Online] The PostgreSQL Global Development Group. http://www.postgresql.org/. 11. Mondrian Pentaho. [Online] Pentaho. http://mondrian.pentaho.com/. 7