ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 ht://Miner Un sistema open-source di data mining e data warehousing per lo studio dei comportamenti degli utenti su Internet Gabriele Bartolini Comune di Prato – Sistema Informativo Servizi di E-government e Open-Source [email protected] www.htminer.it PAAL: Pubblica Amministrazione Aperta e Libera Opportunità, Criticità ed Esperienze nell’Adozione di Standard Aperti e Software Libero nella Pubblica Amministrazione Sardegna Ricerche, Pula (Cagliari), 15 e 16 marzo 2007 1 - Sommario • • • • • • • • • • • • Prato e la sua rete civica: Po-Net Comune di Prato e software libero Web Usage Mining Strumenti di web log analysis tradizionale Obiettivi principali di ht://Miner Architettura di ht://Miner Pre-Processing Processing Data Warehouse Analisi Il futuro di ht://Miner Conclusioni 2 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Prato e la sua rete civica: Po-Net • • • • • • Popolazione residente nella provincia di Prato al 31/12/2005: 242.497 Progetto Po-Net nasce nel 1995 e vede coinvolti: – Comuni della Provincia – Provincia – Prefettura – Camera di Commercio – ASL – Aziende a partecipazione pubblica – Biblioteche – Musei – Istituzioni culturali – Scuole – Associazioni Fa parte di RTRT (Rete Telematica Regionale Toscana) E' composto da 140 gruppi di lavoro e redazioni Il coordinatore è l'ufficio Rete Civica del Comune di Prato Circa 37 milioni di richieste ai siti web di Po-Net nel corso 2006 3 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Comune di Prato e software libero (soggetto attivo) • • • Progetti: – ht://Dig Search Engine (1999 – 2003) – ht://Check Link Checker (dal 1999) – ht://Miner Web Usage Mining System (dal 2003) – OpenCabling (dal 2001) Vantaggi: – Crescita professionale del personale interno – Maggiore stabilità e robustezza del software (testing diffuso) – Suggerimenti e contribuzioni volontarie (utilizzo diffuso) Costi: – Metabolizzare il cambio di portata del progetto – Gestione di servizi rivolti alla comunità di utilizzatori (attività di supporto) – Adeguamento a standard per il processo collaborativo di sviluppo software, in un'ottica globale (e.g. Internazionalizzazione dei sorgenti, siti web, mailing list, ecc.) 4 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Web Usage Mining • • • • • E' parte integrante delle seguenti discipline di IT: – Knowledge Discovery from Data (KDD) – Data mining, in particolare Web mining (data mining applicato al web) Dall'inglese: – Web usage: utilizzo del web (riferito agli utenti navigatori di Internet) – Mining: attività di estrazione di conoscenza nascosta da dati Processo di scoperta e analisi di modelli (pattern) che concentra l'attenzione sui dati relativi agli accessi effettuati dagli utenti (Web usage data) Rientrano in questa categoria i processi di analisi degli accessi collezionati a livello di: – HTTP server (server web) – HTTP proxy server – ISP – HTTP client L'argomento di questa presentazione verterà su accessi a server HTTP 5 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Strumenti di web log analysis tradizionale open-source • • • Alcuni esempi: AWStats, Webalizer, Analog PRO: – Altamente configurabili – Produzione di report statistici descrittivi molto chiari – Supporto efficiente – Stabilità CONTRO: – Elaborazione di file di testo (log) – Staticità dei report prodotti (istantanea) – Ogni modifica al report richiede una rielaborazione totale – Mancanza di integrazione con fonti di dati ausiliarie – Assenza di un database relazionale pluriennale modellato sulle esigenze di business 6 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Obiettivi principali di ht://Miner • • • • • • • • • • Memorizzazione automatica delle informazioni in un RDBMS Creazione di un data warehouse per il supporto alle decisioni (DSS) Predisposizione al data mining: – Association rules (market basket analysis) – Path analysis – Clustering Individuazione automatica dei visitatori unici, delle sessioni, delle transazioni e del tempo speso Rilevazione supervisionata e automatica degli spider Supporto per la localizzazione degli indirizzi IP tramite GeoIP Classificazione delle URL in strutture gerarchiche organizzate a categorie Creazione di un framework di astrazione in PHP (libreria middleware) per l'interrogazione online Rispetto e garanzia della privacy ... 7 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Architettura di ht://Miner • Architettura a stack su 5 livelli: – Pre-processing – Processing – Data warehousing – Analisi: • Data mining • Report • Interrogazione via Web – Personalizzazione di massa 8 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Pre-Processing • • • Punto di partenza: Access Log (file di testo prodotti dal server) Obiettivi: preparare i dati per la scoperta di conoscenza Task: – Leggere file di access log (formati diversi) – Creare un archivio temporaneo (flat table) – Filtrare le richieste (esclusioni) – Importare le richieste nell'archivio temporaneo – Risolvere gli indirizzi IP in nomi di host 9 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Processing • • • Punto di partenza: archivio temporaneo Obiettivi: – scoprire conoscenza – organizzare i dati in un DB normalizzato Task: – Organizzare i dati provenienti dal DB temporaneo in: • Visitatori unici • Sessioni – Ordinare le richieste per tempo di richiesta – Trasformare i dati: • Identificando le transazioni • Rilevando gli spider • Classificando gli user agent • Localizzando le richieste sulla base dell'indirizzo IP – Memorizzare i dati nell'archivio delle transazioni (OLTP) 10 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Data Warehouse • • • Punto di partenza: database transazioni Obiettivi: creare il data warehouse Task: – Organizzare il data warehouse di primo livello: • Secondo lo schema a stella (star schema): – Fatti – Dimensioni • Recupera i dati dal DB delle transazioni • Memorizza i subject: – Richieste di pagine – Richieste di errori – Modellare il DB sulla base delle esigenze: • Data warehouse di secondo livello • Sistema per la classificazione delle URL • Richieste anonime (esclusi motori di ricerca) 11 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Analisi • • • Punto di partenza: database transazioni e data warehouse Obiettivi: scoprire informazioni e/o presentarle al personale di business come supporto alle decisioni Task: – Integrare ht://Miner con applicazioni esterne e/o librerie di data mining – Presentare informazioni tramite interfaccia web (tramite middleware PHP) – Produrre report riepilogativi statici (PDF, HTML, RTF, ...) opportunamente commentati (dossier di business) – Interfacciare ht://Miner con sistemi OLAP 12 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Il futuro di ht://Miner • • • • • • ht://Miner attualmente sfrutta una minima parte delle sue potenzialità I prossimi punti di intervento su ht://Miner riguardano: – Portabilità e stabilità (e.g.: utilizzo del framework C++ ACE) – Modulo di data mining – Ampliamento dei subject memorizzati nel data warehouse (visite, punti di ingresso, ecc.) – Analisi (creazione di report statici in modo supervisionato) Il Comune di Prato cerca partner (imprese, universita') per continuare lo sviluppo: – Open-source – Collaborativo (community) Il Comune di Prato offre la sua assistenza per il riuso del software da parte di altri enti pubblici all'interno delle reti civiche Il Comune di Prato propone la fornitura del servizio di analisi in ASP per gli enti pubblici che non sono in grado di gestirlo in proprio In senso lato, il Comune di Prato offre la sua esperienza pluriennale nello sviluppo cooperativo di software open-source sul territorio nazionale 13 ht://Miner - PAAL 2007, Pula (CA) - Gabriele Bartolini - 15/03/2007 Conclusioni Riferimenti Utili: • Sito principale di presentazione del progetto – http://www.htminer.it • Sito di sviluppo su Sourceforge.net – http://www.sourceforge.net/projects/htminer Prossime iniziative: • Prima edizione italiana del PostgreSQL Day (PGDay): – Monash University, Prato, 6-7 luglio 2007 – Interverranno i principali esponenti della comunità mondiale – Partecipazione gratuita – Patrocinio: Comune e Provincia di Prato, Regione Toscana – http://www.pgday.it Domande? GRAZIE 14