Università degli Studi dell Insubria

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli Studi dell Insubria"

Transcript

1 Università degli Studi dell Insubria FACOLTA DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea specialistica in Informatica BlogAnalytics: un'applicazione web per il monitoraggio delle discussioni online Tesi di laurea di: Daniele MASCIADRI GALIMBERTI Relatore: Prof. VIERI DEL BIANCO Correlatore: Matricola: Prof. SANDRO MORASCA Dott. DAVIDE TAIBI Anno Accademico

2 - 1 -

3 Executive Summary L analisi delle opinioni dei clienti è uno strumento fondamentale per la verifica della qualità di un prodotto e dei servizi ad esso associati. Un indagine effettuata mediante un colloquio tradizionale è molto onerosa in termini pratici e temporali, ed inoltre non è né utilizzabile né misurabile in modo oggettivo. La stessa analisi delle opinioni può essere introdotta nel contesto di una discussione online. In particolare, possono essere facilmente recuperati dai social media strumenti mediante i quali poter ricercare le comunicazioni interpersonali, in un ambiente dinamico in cui le opinioni nascono e si diffondono velocemente, e dove i commenti degli utenti sono normalmente visibili e persistenti. L analisi dei social media permette di comprendere meglio come migliorare la qualità di un prodotto, e di capire appieno le esigenze dei clienti al fine di poter introdurre sul mercato con un prodotto che possa essere considerato accattivante. Questo procedimento di analisi dei social media e delle opinioni on-line in esso contenute, viene caratterizzato da tre fasi: 1) Individuazione delle discussioni riguardanti un argomento di interesse. 2) Manipolazione delle discussioni individuate. 3) Comprensione e analisi delle discussioni. Questo progetto di tesi comprende la realizzazione delle fasi di individuazione e manipolazione degli argomenti di interesse. L obiettivo consiste nella realizzazione di un applicazione che indicizza i commenti presenti nei vari strumenti di comunicazione, e - 2 -

4 recupera dati non immediatamente reperibili dall estrazione, ovvero tutte quelle informazioni che non sono immediatamente recuperabili da dall analisi dei risultati forniti dai motori di ricerca. L applicazione è stata progettata in modo tale da permettere una semplice integrazione della successiva fase di sentiment analysis. L applicazione in questione deve mantenere una certa flessibilità in modo da poter variare facilmente il flusso di esecuzione dell analisi o poterlo integrare con nuovi strumenti di estrazione dati, in una fase successiva. Questo può essere facilmente effettuato mediante la realizzazione di un applicazione modulare a plug-in dove ognuno di questi funziona in modo atomico ed indipendente, così da lasciare ad un gestore la loro esecuzione e comunicazione. In ultimo si vuole mettere a disposizione degli utenti, un interfaccia web per la configurazione di ogni componente. Quest applicazione web permette l interazione con il gestore, e con un intero processo di analisi, comprensivo dello stack dei plug-in. Quindi l interfaccia grafica combina i moduli per la configurazione di ogni parte ed il processo partecipante all analisi e all indicizzazione, con la possibilità di rendere disponibili agli utenti i contenuti da essi desiderati, così che possano essere ridotti al minimo gli sforzi di ricerca ed analisi delle opinioni degli utenti. Durante il periodo di tesi, nella realizzazione dell applicazione sono stati incontrati e risolti numerosi problemi. Le prime problematiche affrontate hanno riguardato le specifiche richieste. Si sono dovuti valutare i vantaggi e gli svantaggi nell utilizzo di motori di ricerca per l effettuazione dell indicizzazione

5 Durante la fase di progettazione dei plug-in, si sono dovute analizzare la modalità di gestione dei dati dei principali motori di ricerca, al fine di riuscire ad estrapolare un contenuto pertinente. Un ulteriore difficoltà è emersa in merito alla comunicazione tra plugin e all ideazione di un architettura che permettesse la scelta del plug-in da eseguire in fase di esecuzione. Tale problema e stato risolto attraverso l utilizzo di un file di configurazione e l ideazione di un gestore dei plug-in che ha permesso di effettuare questa interazione in modo abbastanza performante. La progettazione dell applicazione con un architettura a plug-in ha permesso alla stessa di poter in futuro assicurarsi continui miglioramenti per quanto riguarda l efficienza e l efficacia di ognuno. Questo ha inoltre concesso l introduzione di moduli che consentono l esternalizzazione di operazioni e la condivisione dei dati con banche dati esterne. I plug-in realizzati hanno proprio per loro natura una facilità di adattamento ai cambiamenti che rendono l applicazione estremamente flessibile e modificabile. La scelta di utilizzare come strumento di configurazione dei plug-in un interfaccia grafica web ha limitato l installazione dell applicazione unicamente su di un server, ma ha permesso la condivisione delle informazioni ottenute a più utenti nonché un continuo contributo per il perfezionamento dell applicazione. I plug-in realizzati hanno proprio per loro natura una facilità di adattamento ai cambiamenti che rendono l applicazione estremamente flessibile e modificabile

6 La possibilità di caricare, gestire e configurare i plug-in, seppur da utenti ed amministratori, introduce la opportunità, da parte di malintenzionati, di installare applicazioni malevoli all interno del server. Questo ha comportato infine la definizione di regole rigide nella gestione degli accessi e dei permessi

7 Indice 1 Introduzione Obiettivi della tesi Approccio al problema Struttura della tesi Documentazione Social media motivazioni e regole Ricerca dei contenuti generati dagli utenti Utilizzo di Web semantico nei Social Media Resource Description Framework Prospettive per il Futuro Considerazioni Architettura Definizione dei requisiti Requisiti di progettazione Estrazione del contenuto di ogni discussione Manipolazione delle discussioni individuate Visualizzazione Gestore dei Plug-in Gestione autorizzazioni Plug-in Interfaccia di gestione dei plug-in Gestore dei plug-in Framework alla base Micro Java Plug-in Framework Architettura del gestore Plug-in Struttura di un plug-in Protocollo di comunicazione e strumenti di configurazione Gli estrattori Gli attuatori L'interfaccia grafica web Sviluppo dell'applicazione Scelte implementative per la realizzazione dei Plug-in Scelte implementative nella realizzazione Interfaccia Grafica Web Conclusioni Sviluppi futuri Appendice A Bibliografia

8 - 7 -

9 Capitolo 1 Introduzione - 8 -

10 L analisi delle opinioni dei clienti è uno strumento fondamentale per la verifica della qualità di un prodotto e dei servizi ad esso associati. Un indagine effettuata mediante un colloquio tradizionale è molto onerosa in termini pratici e temporali, ed inoltre non è né utilizzabile né misurabile in modo oggettivo. La stessa analisi delle opinioni può essere introdotta nel contesto di una discussione online. In particolare, possono essere facilmente recuperati dai social media strumenti mediante i quali poter ricercare le comunicazioni interpersonali, in un ambiente dinamico in cui le opinioni nascono e si diffondono velocemente, e dove i commenti degli utenti sono normalmente visibili e persistenti. L analisi dei social media permette di comprendere meglio come migliorare la qualità di un prodotto, e di capire appieno le esigenze dei clienti al fine di poter introdurre sul mercato con un prodotto che possa essere considerato accattivante. Il procedimento di analisi delle opinioni on-line si compone di tre fasi: 4) Individuazione delle discussioni riguardanti un argomento di interesse. 5) Manipolazione delle discussioni individuate. 6) Comprensione e analisi delle discussioni. Questo progetto di tesi comprende la realizzazione delle fasi di individuazione e manipolazione degli argomenti di interesse. L obiettivo consiste nella realizzazione di un applicazione che indicizza i commenti presenti nei vari strumenti di comunicazione, e recupera dati non immediatamente reperibili dall estrazione

11 L applicazione è stata progettata in modo tale da permettere una semplice integrazione della successiva fase di sentiment analysis. L applicazione in questione deve mantenere una certa flessibilità in modo da poter variare facilmente il flusso di esecuzione dell analisi o poterlo integrare con nuovi strumenti di estrazione dati, in una fase successiva. Questo può essere facilmente effettuato mediante la realizzazione di un applicazione modulare a plug-in dove ognuno di questi funziona in modo atomico ed indipendente, così da lasciare ad un gestore la loro esecuzione e comunicazione. In ultimo si vuole integrare l applicazione di una comoda e accattivante interfaccia web. Quest applicazione permette l interazione con il gestore, e con un intero processo di analisi, comprensivo dello stack dei plug-in. Quindi l interfaccia grafica combina i moduli per la configurazione di ogni parte ed il processo partecipante all analisi e all indicizzazione, con la possibilità di rendere disponibili agli utenti i contenuti da essi desiderati, così che possano essere ridotti al minimo gli sforzi di ricerca ed analisi delle opinioni degli utenti. 1.1 Obiettivi della tesi Il lavoro di tesi si colloca nell ambito di un progetto più ampio, BlogAnalytics, nato presso il dipartimento di Scienze della Cultura, Politiche e dell Informazione. L obbiettivo di BlogAnalytics [1] (precedentemente chiamato BlogMeter) e la creazione di uno strumento per l analisi e il monitoraggio degli User Generated Contents (Contenuti generati dagli utenti) espressi online su blog, newsgroup e forum. L analisi

12 verrà effettuata mediante l utilizzo di tecniche di analisi del linguaggio naturale (Natural Language Processing) in grado di riconoscere gli interessi e le opinioni degli utenti, con una ragionevole accuratezza, aggregando opinioni positive e negative. A differenza l obiettivo del lavoro di tesi consiste nello studio e nella realizzazione di un applicazione per l estrazione e la manipolazione di discussioni presenti in rete riguardanti un certo argomento di interesse, tralasciando però l analisi delle opinioni, fase che verrà realizzata successivamente. Il lavoro consiste nella progettazione architetturale di BlogAnalytics e nell implementazione di alcune fasi: 1) Individuazione delle discussioni rilevanti 2) Estrazione del contenuto rilevante di ogni discussione 3) Creazione di un dataset delle discussioni per la successiva analisi delle opinioni 4) Analisi del volume delle discussioni Tutte le fasi dovranno essere progettate in modo modulare in modo da garantire la possibili estensioni future. 1.2 Approccio al problema L individuazione delle discussioni rilevanti e un compito molto oneroso sia in termini di tempo che di spazio di computazione. Fortunatamente esistono numerosi motori di ricerca che forniscono tali risultati gratuitamente e in modo molto efficiente. Attraverso l utilizzo di motori di ricerca sono stati ridotti tutti i costi legati al recupero delle informazioni. Tuttavia, al fine di avere una più

13 completa indicizzazione, è sembrato maggiormente opportuno confrontare le informazioni provenienti da molteplici motori di ricerca, di modo da poter completare ottenere il maggior numero di discussioni possibili. Per quanto riguarda la modularità dell applicazione si è pensato di basare l intera implementazione su un framework che permetta il caricamento e l esecuzione di parti terze. Per quanto riguarda la fase di estrazione del contenuto necessario all analisi, si è scelto di affidare l intera fase ad una libreria per la gestione di contenuti web dotata di moduli specifici ed adatti a questo scopo. 1.4 Struttura della tesi In questo capitolo viene spiegata la teoria sulla quale si basa il lavoro di tesi, indicati gli obiettivi principali da raggiungere, oltre che lo scenario e le tecnologie di riferimento per lo sviluppo del lavoro. Nel secondo capitolo vengono descritte le motivazioni alla base del progetto, identificando i vantaggi che comporterebbe l introduzione di uno strumento di analisi dei commenti on-line, senza però tralasciare le possibili difficoltà incontrabili. Nel terzo capitolo vengono descritte le specifiche dell applicazione e le scelte progettuali. Nel quarto capitolo viene illustrato dettagliatamente il processo di estrazione dei contenuti dalle pagine web. Il quinto capitolo contiene le conclusioni del lavoro svolto ed i possibili sviluppi futuri. Infine, in appendice A, viene allegato la definizione:

14 1. Universal Resource Name 2. Regole di gestione dei ruoli 3. Hashmap 4. Technorati

15 Capitolo 2 Social Media Analysis

16 Il primo importante obiettivo perseguibile consiste nell individuazione dei vantaggi dell analisi di conversazioni presenti all interno di social media, e nella definizione di quelle che sono le caratteristiche da analizzare. In seguito si sono anche definiti e discussi i problemi associati alla fase di indicizzazione, ed è stata identificata una soluzione per limitarne i costi di gestione e di implementazione relativi. Da ultimo si è valutato come ideare delle regole per adattarsi facilmente ai possibili cambiamenti futuri delle informazioni provenienti dal web. 2.1 Social media motivazioni e regole Con il termine Social media si vuole identificare un insieme di strumenti web con cui gli utenti possono condividere contenuti testuali, immagini, video e audio. La loro analisi può rilevarsi un ottimo strumento per la comprensione ed il miglioramento di un processo produttivo e pubblicitario aziendale. Questa analisi comporta una serie di vantaggi non trascurabili che potrebbero condurre ad una miglior cognizione delle caratteristiche di eccellenza di un prodotto o all isolamento di problemi. Il principale vantaggio riscontrabile è l analisi delle critiche da parte di clienti. La maggior parte delle imprese ritiene un giudizio sfavorevole riguardante un proprio prodotto, dato da un utente in un social media, un danno di immagine. L idea, da cui nasce questo lavoro, è invece quella di sfruttare costruttivamente questi commenti negativi, e considerarli come un momento di dialogo con il cliente, quindi un occasione per migliorare i propri servizi/prodotti, ampliando le capacità di problem-solving. Analogamente anche gli apprezzamenti

17 espressi in un social media possono fornire un importante strumento di comprensione ed analisi. I commenti trovati nel web possono essere un ottimo strumento per l attuazione di specifiche strategie di marketing, e per comprendere quali caratteristiche del servizio o del prodotto erogato devono perdurare nel tempo. Nel contesto di un mercato di larga scala, conoscere e capire le esigenze dei consumatori si rivela molto complesso. I social media tuttavia sono un ottima fonte da cui comprendere le necessità dei clienti. Da questi è possibile capire se si è in grado di rispondere a tali richieste, e quindi, se necessario, cambiare le proprie strategie di mercato per rispondere in modo efficiente alle richieste del pubblico. L analisi dei social media può essere anche utilizzata come strumento per la raccolta delle lamentele di clienti di aziende concorrenti; a partire dalla comprensione della loro insoddisfazione è possibile intraprendere campagne pubblicitarie atte a colpire la concorrenza, di modo da promuovere l avvicinamento di nuovi clienti. Viceversa l analisi dei punti di forza dei concorrenti può portare ad un miglioramento societario. Il tutto perseguibile, senza commettere illeciti. Un altro motivo importante per l introduzione dell analisi di social media è l individuazione di quegli utenti che vengono definiti influenzatori. Con il temine influenzatore viene definito quell utente che per l elevato numero di interazioni che effettua con i vari social media ha la possibilità di suggestionare un alto numero di utenti con lui interagenti. Tenere sotto controllo un influenzatore non significa attuare una pressione di coercizione nei suoi confronti, ma

18 comprendere perché in un determinato momento la reputazione della società è venuta meno a causa di avvenimento imprevisto. Se gli obiettivi proposti in questo lavoro vengono soddisfatti, l analisi dei social media potrebbe assumere un ruolo primaria importanza nel marketing. Per riuscire ottenere i vantaggi citati, è necessario identificare un insieme di parametri necessari alla catalogazione di un determinato commento. Il parametro fondamentale per una analisi efficace dei social media risulta essere l audience delle conversazioni, ovvero un parametro che definisce in che quantità gli utenti sono stati attratti dalla conversazione, quindi, la conseguente capacità di influenza. Con questo parametro si vuole dare maggiore importanza alla visibilità di un commento, a scapito della sua validità. La validità è il secondo parametro preso in considerazione, con questo si vuole identificare quanto i commenti espressi in una conversazione siano attendibili o quanto siano influenzati da ignoranza o pregiudizio dei colloquianti. Un altro parametro da non trascurare è il numero di persone che sono direttamente intervenute nella conversazione, ovvero quanti utenti hanno lasciato un proprio commento o contributo alla discussione. Congiuntamente a questo occorre considerare anche il loro giudizio, la quantità di tempo dedicata alla discussione in analisi, o alle discussioni in genere, in modo poter determinare se si tratta di influenzatori, ed inoltre anche valutare per quanto tempo la conversazione è stata attiva, nonché la sua velocità di diffusione. Quest ultimo parametro analizzato, deve tenere conto non solo della velocità con cui la discussione si è diffusa in rete, ovvero la velocità

19 con cui questa è stata citata in altri social media, ma anche di quello che viene definito ranking, ovvero il numero di associazioni che i motori di ricerca attribuiscono ad un social media. Legato direttamente al concetto di visibilità di un social media vi è quello di affidabilità della fonte, in cui si tiene conto dove l informazione è stata recuperata, e la facilità che lo strumento fornisce all interazione da parte dell utente del social media. Da ultimo l analisi delle discussioni potrebbe portare all identificazione di nuovi argomenti da analizzare. L insieme di queste regole e metriche identificano il punto di partenza dell analisi; sono i punti di riferimento da considerare durante la fase di sviluppo. 2.2 Ricerca dei contenuti generati dagli utenti Con il termine indicizzazione si intende l analisi e la memorizzazione di informazioni riguardanti uno specifico sito web, all interno di uno strumento di memorizzazione. Per quanto riguarda BlogAnalytics, il termine indicizzazione identifica unicamente il recupero delle informazioni necessarie per le fasi successive di modifica ed analisi. Questa operazione è molto dispendiosa e necessita di un architettura hardware performante e con ampi spazi di memorizzazione. La sua realizzazione deve tenere conto di svariate problematiche che devono essere affrontate per compiere correttamente questa fase. L operazione alla base è il parsing delle pagine, che inizia raggiunto un indirizzo web e consiste in un esplorazione per ricavarne informazioni rilevanti ed immagazzinarle. Data la sua dispendiosità, al fine di eliminare operazioni di indicizzazione ripetute è necessario

20 tener traccia di tutti gli url già visitati, in modo da non indicizzarli nuovamente. Questa operazione attiva la possibilità di ricontrollare successivamente il social media alla ricerca di eventuali modifiche. Le due strategie che ottimizzano questa regola sono il breadth-first search (BFS) [4] o ricerca in ampiezza e il depth-first search (DFS) [5] o ricerca in profondità. L analisi sul funzionamento di queste due tecniche di indicizzazione, risulta essere fondamentale per la realizzazione di un algoritmo efficace nella selezione e memorizzazione delle informazioni pertinenti alla nostra ricerca. Nella teoria dei grafi, il BFS è un algoritmo di visita per i grafi che si realizza partendo da un vertice (o nodo) detto sorgente ed esplorando tutti i nodi del grafo stesso raggiungibili o non raggiungibili (in tal caso si definisce BFS totale). BFS è un metodo di ricerca non informato, e si pone come obiettivo l espansione del raggio d'azione, al fine di esaminare tutti i nodi del grafo sistematicamente, fino alla soluzione; la ricerca avviene in maniera esaustiva fino a quando non si sono visitati tutti i nodi del grafo. Questo algoritmo non è di tipo euristico. Dal punto di vista dell'algoritmo, tutti i nodi adiacenti ad un nodo, sono aggiunti ad una coda di tipo FIFO. In una tipica implementazione, i nodi che ancora non sono stati esaminati, sono posti in un contenitore (una coda oppure una lista) ed etichettati come "non visitato", i quali una volta esaminati, sono poi collocati in un'altra struttura dati ed etichettati come "visitato". Il DFS è invece un algoritmo che opera una semplice visita in profondità dell'albero degli stati generati. Partendo dallo stato

21 iniziale vengono generati i figli. Terminata questa fase si passa ad analizzare il primo figlio riscontrato. Quest operazione è ripetuta sino al momento in cui si raggiungono le foglie dell albero. Raggiunta un estremità si risale l albero alla ricerca del primo fratello non ancora indicizzato. Questa tecnica termina nel momento in cui non esistono più nodi da indicizzare. Fondamentale è anche la realizzazione di algoritmi che non effettuano un sovraccarico del server in analisi, durante la fase di indicizzazione. Un eccessivo impegno di risorse, da parte del server ospitante i commenti in fase di studio, potrebbe comportare l inserimento di tecniche atte al riconoscimento dell indicizzatore e al relativo impedimento di effettuare l operazione. Durante la fase di esecuzione dell algoritmo di indicizzazione, è necessario considerare problemi quali: un time out del server o uno spider traps, ovvero, una condizione presente in siti Web dinamici dove l algoritmo di indicizzazione rimane intrappolato in un loop infinito, causato da collegamenti ciclici. L algoritmo di indicizzazione richiede la realizzazione di strumenti per l immagazzinamento dei risultati ottenuti, preceduti dalla gestione dei pool di connessione ai siti da analizzare, in modo da arginare il problema di latenza della rete, effettuando richieste contemporanee. Tuttavia tutte queste opzioni vengono già realizzate efficientemente dai vari motori di ricerca, quindi una tecnica abbastanza efficace potrebbe recuperare ed analizzare direttamente i risultati dell indicizzazione svolta dai diversi motori di ricerca; viene anche

22 fornito il permalink del sito indicizzato, ovvero il link assoluto, cosicché viene permesso di effettuare successivamente un analisi più approfondita e mirata. Dal lato dei motori di ricerca, l'indicizzazione dei siti web è la loro prima e fondamentale operazione. Dopo averli registrati, i motori di ricerca scansionano periodicamente i siti presenti nei propri archivi per verificare eventuali aggiornamenti, entrando in un sito ed incominciando a leggere il codice sorgente alla ricerca di nuove modifiche del contenuto o della struttura. Quando un analizzatore della rete trova un link ad un'altra pagina del sito o ad un altro sito, analizza anche quest'ultimo. Dopo aver scansionato la rete e quindi indicizzato una grandissima mole di pagine web, il motore di ricerca passa alla seconda fase: classificarle e posizionarle in base a delle parole chiavi che rispecchino il più possibile il sito. In questo modo i motori di ricerca, tramite particolari algoritmi, assicurano ai loro utenti contenuti validi e aggiornati. Questo sevizio viene effettuato mediante l utilizzo di particolari algoritmi, che attribuiscono ad una pagina un'importanza legata al numero di collegamenti che essa possiede in altri siti internet. 2.3 Utilizzo di Web semantico nei Social Media Strettamente legato al concetto di indicizzazione occorre considerare un aspetto che non è possibile tralasciare in una fase di analisi preliminare: il Web Semantico. Con il termine Web Semantico si vuole far riferimento ad un evoluzione del word wide web, dove però tutti i documenti

23 contenuti sono etichettati con metadati che specificano il significato dei concetti espressi in un formato adatto alla diffusione, all'interpretazione e all'elaborazione automatica. L utilizzo del web semantico, per quanto riguarda BlogAnalytics, porterebbe ad una più semplice interpretazione dei contenuti di documenti web. Con l'interpretazione del contenuto dei documenti che il Web Semantico fornisce, si ha una notevole evoluzione della normale ricerca web; questa si basa sulla presenza nel documento di parole chiave, o relazioni e connessioni tra documenti. Questo nuovo concetto di informazione si basa principalmente su XML, un linguaggio che consente di descrivere semanticamente gli elementi costitutivi di un documento che, così descritto, può essere elaborato per l estrazione di informazioni secondo specifici criteri, o per la riformulazione e l'adattamento ad altri formati oltre che per la visualizzazione in funzione delle capacità del terminale. Sebbene un documento sia un buon sistema per specificare informazioni, esso risulta essere poco adatto alla natura distribuita e decentralizzata del web, dove le informazioni riguardanti un particolare oggetto possono essere localizzate ovunque. Questa opzione non è agevolata neppure dal meccanismo dei collegamenti ipertestuali, strumento reso popolare dall'html, perché non prevede la possibilità di descrivere un legame definito. In altri termini, sebbene in un documento sia possibile discutere di un determinato oggetto, è tuttavia complicato capire se due documenti

24 si riferiscono entrambi ad uno stesso oggetto, con una conseguente scarsa qualità dei risultati restituiti dai motore di ricerca. Ipoteticamente lo si potrebbe dedurre se i documenti fossero integrati di dati semanticamente definiti e sufficientemente precisi da permetterne una discriminazione, questo grazie ad un documento standardizzato che definisce l insieme di appartenenza del oggetto descritto. Il linguaggio utilizzato, alla base del Web Semantico, è discusso nei paragrafi successivi Resource Description Framework Il Resource Description Framework (RDF) [6] è un framework per la descrizione della conoscenza nel web, specificatamente creato, secondo una raccomandazione del W3C, per la descrizione dei metadati relativi alle risorse. La comprensione di questo framework, potrebbe indirizzarci ad una applicazione che inglobi le sue raccomandazioni, o sia pronta all inserimento in futuro. L RDF si basa su tre principi chiave: 1) Tutto può essere identificato da un Universal Resource Identifier (URI) 2) Il minimo potere: utilizzare il linguaggio meno espressivo per definire un oggetto 3) Qualunque cosa può dire qualunque cosa su qualunque cosa L RDF è sostanzialmente un modello formale di dati dotato di sintassi di interscambio, un sistema di schemi di tipo, ed un linguaggio d interrogazione dove qualunque cosa descritta dall RDF è detta risorsa. Principalmente una risorsa è reperibile sul web, tuttavia

25 l RDF può descrivere anche risorse che non si trovano direttamente sul web. Ogni risorsa è identificata da un URI, un identificatore univoco di risorse, che può essere un Universal Resource Locator (URL) o un Universal Resource Name (URN) [appendice A]. Il modello di dati RDF è formato da risorse, proprietà e valori dove le proprietà sono delle relazioni e legano tra loro risorse e valori, e sono anch'esse identificate da URI. I valori, sono invece, o risorse o tipi di dati primitivi. L'Unità di base per rappresentare un'informazione in RDF è lo stato. Uno stato è una tripla del tipo: Soggetto Predicato Oggetto dove il soggetto è una risorsa, il predicato è una proprietà e l oggetto è un valore. Il data model RDF permette di definire un modello semplice per descrivere le relazioni tra le risorse in termini di proprietà identificate da un nome ed i relativi valori. Tuttavia, l RDF non fornisce nessun meccanismo per dichiarare queste proprietà, né per definire le relazioni tra queste proprietà ed altre risorse. Per potere dichiarare un vocabolario è necessario definire classifica e proprietà in un RDF- Schema Prospettive per il Futuro Dato che nel mondo web vengono sempre maggiormente richiesti strumenti di lavoro più avanzati, per facilitare e velocizzare la navigazione attraverso gli innumerevoli documenti multimediali pubblicati, il web semantico si propone di dare un senso alle pagine web ed ai collegamenti ipertestuali, dando la possibilità di cercare solo ciò che è realmente richiesto. Con il Web Semantico è possibile

26 assegnare ai documenti un senso compiuto, un significato molto più significativo di vocaboli, una serie di strumenti che possono aiutare un motore di ricerca ad individuare argomenti di interesse, effettuando un eliminazione di altri non strettamente legati al concetto desiderato. Questo non in virtù di sistemi di intelligenza artificiale, ma semplicemente di una marcatura dei documenti, di un linguaggio gestibile da tutte le applicazioni, e dell'introduzione di vocabolari specifici, ossia insiemi di frasi alle quali possono associarsi relazioni stabilite fra elementi marcati. Il Web Semantico per funzionare deve poter disporre di informazioni strutturate e di regole di deduzione per gestirle, in modo da identificare quelle necessarie a soddisfare una specifica richiesta. Questo per rendere possibile l'affiancarsi di più referenze e quindi non perdere, almeno in linea programmatica, la possibilità di più definizioni, di più comprensioni di uno stesso oggetto concreto. 2.4 Considerazioni L analisi di tutti i problemi relativi all indicizzazione, ai costi implementativi ed architetturali ad essa associati ha portato alla scelta dell analisi dei risultati provenienti da motori di ricerca, a scapito di un implementazione autonoma. Questo consente di memorizzare solo i dati di interesse, escludendo tutti quelli non necessari all analisi. La ricerca è stata estesa estraendo informazioni da più fonti, così da rendere possibile una confronto dei dati ottenuti e l integrazione di parti mancanti all indicizzazione di altri. In questo modo è permesso anche uno studio comparativo sull efficienza di catalogazione dei singoli motori di ricerca. Dall analisi della

27 documentazione relativa al Web Semantico, si è potuta considerare l introduzione di uno strumento che permette la futura compatibilità dell applicazione agli standard richiesti

28 Capitolo 3 Architettura dell applicazione

29 Terminata la fase di documentazione dove sono state definite le caratteristiche che dovranno necessariamente essere considerate durante la fase di progettazione e sviluppo, si delineano in questo capitolo quelle che sono le specifiche ed i requisiti necessari alla fase di progettazione, andandone a definire gli attributi che ogni singolo componente deve possedere. Successivamente vengono esplicitate le caratteristiche progettuali di ogni singolo elemento appartenente all applicazione. Da ultimo viene descritto ed esplicitato come l applicazione interagisce con gli utenti e come questi la possono utilizzare e configurare. 3.1 Definizione dei requisiti Lo scopo del progetto è quello di realizzare un applicazione che permetta l analisi statistica di informazioni provenienti da blog, forum, newsgroup. Si intendono analizzare tutte le discussioni riguardanti un argomento specifico, identificando l andamento temporale ed altri dati statistici. L applicazione si deve comporre principalmente di quattro fasi: 1. Individuazione delle discussioni rilevanti: estrazione degli User Generated Content da blog, newsgroup e forum 2. Estrazione del contenuto rilevante di ogni discussione : estrazione del testo delle discussioni dalle pagine web attraverso l identificazione delle sezioni rilevanti. 3. Creazione di un dataset delle discussioni per la successiva analisi delle opinioni 4. Analisi del volume delle discussioni e visualizzazione dei dati ottenuti

30 Per quanto riguarda le prime due fasi, l applicazione dovrà essere modulare, indipendente, ed estendibile. Dovra essere possibile la estrarre le informazioni da diverse fonti. La gestione delle estrazioni dovrà essere estendibile permettendo l integrazione di nuovi estrattori. Per realizzare questo si è pensato di realizzare un architettura molulare basata sull utilizzo di plug-in Requisiti di progettazione I vari plug-in sono coordinati da un gestore che si occupa della loro esecuzione e collaborazione. In Figura 3.1 viene ripresa la struttura che l applicazione. Le fasi di individuazione delle discussioni riguardanti un argomento di interesse, manipolazione delle discussioni individuate e comprensione ed analisi delle discussioni lavorano indipendentemente, per comunicare tra di loro utilizzano degli strumenti di memorizzazione. Ogni fase non comunica con la precedente ma si limita ad interrogare lo strumento di memorizzazione che la precede, e ricavati i dati a lei necessari, esegue le sue funzionalità

31 Figura 3.1: Struttura dell'applicazione Estrazione del contenuto di ogni discussione La fase più delicata dell'intera applicazione; qui infatti l'applicazione ricava da forum, blog, newsgroup le informazioni necessarie. Queste informazioni vengono poi utilizzate per il popolamento dello strumento di memorizzazione che si interpone tra questa e la successiva fase. In altri termini tale sezione si occupa della ricerca, dell estrazione del contenuto della discussione di ogni pagina e della costruzione del database. L estrazione delle informazioni è così composta: a. Identificazione ed estrazione del testo dei post dalle pagine HTML b. Estrazione dei commenti collegati ad ogni post c. Estrazione degli autori dei commenti d. Generazione del data base

32 La scelta di una gestione mediante plug-in di questa fase permette che l'applicazione possa essere modificata facilmente in futuro così da adattarla alle esigenze dell'utente Manipolazione delle discussioni individuate La sezione di trasformazione ed analisi dei dati, anch essa modulare, consente di operare l analisi dei dati ottenuti dalla fase di estrazione; in particolare si occupa della gestione del volume delle discussioni: a. Calcolo volume discussioni online per un dato argomento b. Analisi dell'andamento del volume delle discussioni c. Analisi incrociata di più discussioni Questa fase ha l'obiettivo di analizzare e compiere operazioni statistiche (numero medio di risposte, verifica degli opinion leader, analisi del trend delle discussioni ) sui dati ottenuti dalla fase di estrazione, per poi preparare i risultati alla visualizzazione per mezzo degli strumenti di interrogazione messi a disposizione dell'utente Visualizzazione Questa fase, oltre a consentire all'utente di ottenere i risultati conseguiti nelle sezioni di estrazione ed elaborazione precedenti, fornisce anche un interfaccia per la gestione dei plug-in. Questo viene effettuato tramite un'interfaccia grafica web che permette la comunicazione con il gestore. I risultati delle interrogazioni verranno resi disponibili tramite tale interfaccia e tramite web service, che si occupa della comunicazione con applicazioni che vengono identificate dall'applicazione come utenti

33 3.1.5 Gestore dei Plug-in Il gestore dei plug-in ha il compito di coordinare la fase di estrazione ed elaborazione, in dettaglio ne ordina il caricamento e l esecuzione temporale. Spetta al gestore, dunque, l attivazione di ogni singolo plug-in o l eventuale coordinazione tra diversi; infatti possono essere combinati per la realizzazione di un obiettivo. Non necessariamente un plug-in deve essere indipendente. Il gestore si interfaccia con gli utenti mediante un apposita applicazione web dalla quale recupera i parametri necessari alla sua esecuzione Gestione autorizzazioni L'interfaccia web, oltre a quanto detto precedentemente, ha anche lo scopo di gestire le autorizzazioni per l'utilizzo dei plug-in. Ogni utente, a secondo del livello di autorizzazione a lui assegnato, può estendere e modificare i plug-in dell'applicazione, e specificare a sua volta le autorizzazioni alle sue modifiche. Queste possono essere pubbliche, ad utilizzo personale, oppure ristrette unicamente ad una cerchia di utenti Plug-in Lo strumento necessario alla comunicazione di ogni singolo plug-in deve rispettare uno standard comune. Se un plug-in dovesse richiedere una struttura differente, deve allegare una documentazione che ne spieghi i metodi di interazione. Nel grafico in Figura 3.2 è riassunto il funzionamento standard di un singolo plug-in

34 Figura 3.2: Funzionamento di un Plug-in Dopo la sua esecuzione, il plug-in scarica le informazioni a lui necessarie, le quali possono essere ricavate sia da dati salvati in precedenza, sia dai risultati da lui computati. Al termine della fase di acquisizione dati, vengono eseguite le funzionalità del plug-in, seguite dalla funzionalità di salvataggio dati nello standard Interfaccia di gestione dei plug-in All interno dell interfaccia grafica di gestione dei plug-in ogni utente ha la possibilità di specificare quale plug-in deve essere eseguito. L interfaccia permette sia di caricare nuovi plug-in, sia di attivare e disattivare quelli precedentemente inseriti. In Figura 3.3 è rappresentato un ipotetico menù di gestione dei plug-in

35 Figura 3.3: Menu gestione blug-in Se inserito un nuovo plug-in nella barra dei sotto-menù dei plug-in, è possibile quindi configurare le funzionalità dell applicazione. Figura 3.4: Configurazione funzionalità dei plug-in 3.2 Gestore dei plug-in Terminata la fase di identificazione dei requisiti e delle specifiche, si passa alla fase di progettazione; in particolare, viene analizzato il gestore dei plug-in e l architettura a cui si appoggia. Occorre però necessariamente esaminare prima quale strumento o quale libreria

36 sia necessario a fornire la modularità a run-time del codice ovvero l applicazione può caricare ed eseguire un plug-in senza bisogno ne di compilare codice ne di essere riavviata affinché funzioni correttamente Framework alla base La gestione mediante plug-in attribuisce all applicazione il valore aggiunto che risiede nella possibilità di caricare dinamicamente il codice, in modo da estendere le funzionalità di un sistema anche in seguito, senza dover necessariamente ricompilare l intera applicazione ed arrestare la sua esecuzione. I vantaggi più significativi riguardano l ovvia possibilità di aggiungere funzionalità ad un sistema già esistente, senza dover intervenire sul codice già scritto, e l opportunità di ripartire i compiti dei componenti di un team di sviluppo in modo più semplice ed intuitivo. La realizzazione di un applicazione avente queste caratteristiche potrebbe fornire l occasione di realizzare le proprie applicazioni, di modo che siano facilmente estensibili anche in momenti futuri Micro Java Plug-in Framework Micro Java Plug-in framework (mjpf) offre la possibilità di estendere un applicazione in fasi successive, senza necessità di ricompilare o arrestare il processo in esecuzione. Mjpf è un framework che consente di realizzare applicazioni che, a tempo di esecuzione, caricano ed eseguono del codice in modo trasparente. Queste funzionalità vengono implementate da svariati framework con lo stesso obiettivo, tuttavia, questi presentano

37 architetture eccessivamente rigide e complesse che, pur essendo ricche di funzionalità, risultano poco semplici ed intuitive. Mjpf si propone di definire un insieme di entità e funzioni primitive utili all estensione dinamica di un applicazione Java (il prefisso micro ne evidenzia l essenzialità). La realizzazione di un applicazione basata su questo tipo di framework è tipicamente costituita da un insieme di classi od oggetti le cui funzionalità sono eventualmente accessibili attraverso un interfaccia. Utilizzando mjpf un applicazione di base può estendere le sue funzionalità ricercando ed eseguendo, a run-time, dei plug-in contenuti in un path. La caratteristica fondamentale dei plug-in realizzati con mjpf plug-in consiste in un archivio Java (file jar) in cui sono presenti alcune classi che implementano l interfaccia Plug-inEntry, il cui codice è mostrato in Figura 3.5. package mjpf; public interface PluginEntry { public void initpluginentry(object param); public void startpluginentry(); public void stoppluginentry(); public void pausepluginentry(); } Figura 3.5: Codice dell interfaccia Plug-inEntry di Micro java plug-in framework Le classi che implementano l interfaccia PluginEntry costituiscono quelli che vengono definiti gli entry-point del Plug-in, ovvero degli

38 oggetti mediante i quali è possibile interagire con altri oggetti interni al plug-in, al fine di ottenere i servizi offerti. I metodi forniti dall interfaccia Plug-inEntry dovrebbero essere sufficienti alla gestione di un componente software caricato a tempo di esecuzione. Il problema è dovuto al fatto che il codice relativo ai plug-in non è noto a priori, ma è caricato a run-time per mezzo di un ClassLoader personalizzato. Quindi è necessario fare riferimento all interfaccia per l esecuzione di pochi fondamentali metodi che consentano di inizializzare ed eseguire il codice caricato. All interno di ogni Plug-in deve essere presente un file XML in cui sono descritti i suoi entry-point. Un oggetto del package mjpf chiamato Plug-inFactory permette di caricare ed ottenere a run-time dei riferimenti ai vari entry-point dei Plug-in contenuti in una directory specificata. Dato che un entry-point è una classe che implementa l interfaccia PluginEntry, deve necessariamente implementare a sua volta tutti i suoi metodi: initentry, startpluginentry, pausepluginentry e stoppluginentry. - initpluginentry(object param) Questo metodo deve essere utilizzato per implementare l inizializzazione del plug-in entry-point. Viene invocato dall applicazione di base per trasferire al plug-in i suoi oggetti fondamentali. Tipicamente viene passato come parametro un hashmap [Appendice A]. In questo modo l entry-point caricato può scegliere di volta in volta quale oggetto utilizzare, estraendolo

39 dall hashmap per mezzo del suo indice. Gli oggetti fondamentali passati ai plug-in costituiscono l unico mezzo di interazione e comunicazione tra plug-in e applicazione base. È quindi opportuno progettare l applicazione base e i suoi plug-in in modo tale che esistano degli oggetti fondamentali atti alla comunicazione e all interazione tra queste due entità. - startpluginentry() La definizione di questo metodo deve essere utilizzata per l implementazione della sequenza di eventi che attiva l esecuzione del particolare entry-point. A seconda di ciò che viene implementato nell entry-point, questo metodo può riferirsi o ai comandi per la chiusura della finestra attiva, oppure, se implementa un Thread, può contenere il codice di esecuzione dello stesso. - stoppluginentry() La definizione di questo metodo deve essere utilizzata per realizzare la sequenza di eventi che termina l esecuzione del particolare entry-point. Ad esempio, se l entry-point è un Thread, l implementazione del suo metodo stoppluginentry può contenere il codice per l arresto. - pausepluginentry() La definizione di questo metodo deve essere utilizzata per implementare la sequenza di eventi che mette in pausa l esecuzione del particolare entry-point. Quindi un entry-point può essere un estensione di qualsiasi classe, purché implementi l interfaccia PluginEntry. Una delle possibilità è

40 che gli entry-point realizzino le funzionalità del Plug-in a cui appartengono, in questo modo i metodi dell interfaccia PluginEntry possono essere sufficienti all interazione con il Plug-in. Infatti, è possibile utilizzare il metodo initpluginentry per inizializzare il Plugin con gli oggetti dell applicazione con cui deve interagire, ed il metodo startpluginentry per visualizzare una sua interfaccia. Per descrivere le caratteristiche degli entry-point di un plug-in, viene inserito nella sua root un file XML avente nome "descriptor.xml" la cui struttura viene rappresentata in Figura 3.6. <plugin> <entry> <type></type> <name></name> <main></main> <icon></icon> <tips></tips> </entry> </plugin> Figura 3.6: Struttura del file descriptor.xml I tag Type, Name e Main sono i tag più importanti per la descrizione di un entry-point. Con il tag Type è possibile organizzare gli entrypoint in famiglie, un operazione che può rivelarsi utile per associare gli entry-point dei plug-in alle voci della barra dei menu dell applicazione di base; con il tag Name è possibile associare una nome simbolico ad un entry-point, mentre con il tag Main è possibile indicare qual è la classe del plug-in che realizza l entry-point descritto. I tag Icon e Tips sono attualmente opzionali e sono stati inseriti nel

41 caso il programmatore volesse associare un immagine agli entrypoint oppure dei suggerimenti di tipo testuale. Per ottenere un riferimento agli entry-point dei Plug-in presenti in una determinata directory, nell ambito di un applicazione, è possibile utilizzare la classe PluginFactory del micro java plug-in framework. La classe PluginFactory permette di caricare tutti gli entry-point dei plug-in presenti in un URL che viene specificato come parametro del costruttore. La classe carica in modo automatico tutti i file jar contenuti nella cartella specificata, effettuando il parsing dei file "descriptor.xml" in essa contenuti. In funzione delle informazioni contenute in questi descrittori, la classe PluginFactory costruisce per ogni Plug-in entry-point un oggetto di tipo EntryDescriptor. Figura 3.7: La classe PluginFactory In Figura 3.7 è possibile notare un oggetto di tipo EntryDescriptor il quale contiene tutte le informazioni che è possibile associare ad un EntryPoint mediante il file descriptor.xml insieme ad un id univoco,

42 che viene assegnato automaticamente dalla PluginFactory al momento del caricamento. Ottenuto un oggetto PluginFactory, è possibile acquisire una Collezione degli EntryDescriptor (Figura 3.8), che è lo strumento necessario al caricamento del plug-in all interno dell applicazione. Figura 3.8: La classe EntryDescriptor L utilizzo di questo framework può fornire la possibilità di implementare ogni singola applicazione necessaria all analisi, consentendone poi ulteriori miglioramenti e modifiche, oltre che l integrazione dell estensione in fasi successive

43 3.2.3 Architettura del gestore L architettura del gestore dei plug-in è caratterizzato principalmente da tre elementi: 1) L attuatore dello stack dei plug-in, chiamato manager 2) Lo stack dei plag-in, in cui questi sono contenuti 3) L interfaccia web che li coordina La struttura e la rappresentazione di questi tre componenti viene schematizzata in figura 3.9. Figura 3.9: Struttura del funzionamento del gestore dei plug-in Il plug-in manager ha come suo elemento caratterizzante un temporizzatore con il compito di attivare il gestore ad ogni intervallo di tempo prestabilito. Nel momento in cui il plug-in manger viene

44 attivato, ha il compito di eseguire l intero stack dei plug-in presenti all interno dello store. L esecuzione di questo processo è rappresentato in Figura Temporizzatore plugin manager plugin store Esegui Applicazione Attiva il menager dei plugin getactiveelement elenco plugin da eseguire Esegue lo stack dei plugin Termine dell'operazione Figura 3.10: Sequence diagram dell esecuzione dei plug-in nel gestore L esecuzione dell applicazione comporta l attivazione del temporizzatore. Nel momento in cui viene azzerato il timer, questo attiva il plug-in manager. Quest ultimo, per poter lanciare in esecuzione l intero set dei plug-in, deve contattare lo store che fornisce l elenco dei moduli eseguibili. È da ricordare che nello store potrebbero essere memorizzati anche alcuni plug-in la cui esecuzione non è al momento necessaria. Ottenuta la risposta da parte dello store, il plug-in manager si occupa dell esecuzione in sequenza dei plug-in, seguendo l ordine passatogli. Terminata l esecuzione di ognuno di questi, viene comunicato al temporizzatore la fine del processo oppure l arresto in caso di errori inaspettati. Il temporizzatore, a questo punto, è pronto per lanciare

45 nuovamente, al tempo prestabilito, l esecuzione del plug-in manager. Questo comporta il ripetersi del processo appena descritto. L applicazione viene interamente gestita dall interfaccia grafica web che si occupa di settare le impostazioni legate ai plug-in e dell inserimento di queste nello store. Il protocollo utilizzato per la configurazione dello store è raffigurato in Figura Figura 3.11: Configurazione dello store dei plug-in L interfaccia grafica web è caratterizzata da un insieme di strumenti che permettono la configurazione dei plug-in all interno dello stack. Il protocollo si compone di 3 parametri base: 1) Il plug-in caratterizzato da nome sorgente e file di configurazione 2) Un flag di Activation caratterizzante l esecuzione 3) La posizione nello stack di esecuzione del plug-in

46 Il primo, raccoglie fisicamente, il codice sorgente del plug-in e un etichetta contenente il nome, necessaria per l associazione alle impostazioni specificate. I restanti due, caratterizzano le impostazioni al quale viene associato il nome: il flag di Activation indica la presenza o meno del file all interno dello stack di esecuzione, mentre il terzo parametro identifica la sua posizione. Al termine della fase di descrizione dell architettura del gestore, si determinare la struttura del plug-in manager che implementa totalmente l ambiente descritto. Anzitutto è necessario determinare ciò che identifica lo strore. Questo è una directory contenente i file sorgente dei plug-in, ed un file XML che ne rappresenta le informazioni. Per implementare questi concetti è necessario estendere il file XML, necessario alla configurazione dei plug-in, in micro java plug-in framework con questi due ultimi flag. La struttura del file è rappresentata in Figura

47 <plugin> <entry> <type></type> <name></name> <main></main> <icon></icon> <tips></tips> <activation></<ctivation> <posizion></position> </entry> </plugin> Figura 3.12: struttura del file XML di configurazione dello store A garanzia della corretta esecuzione della pipeline dei plug-in, la posizione delle entry caratterizzanti il singolo plug-in, deve rispettare la posizione specificata. Il plug-in manager è caratterizzato da un elemento chiamato RemindTask, la cui struttura è rappresentata nel class diagram riportato in Figura

48 Figura 3.13: Class diagram del oggetto RemindTask L oggetto RemindTask che estende l oggetto TimerTask, permette di combinare le funzioni del timer e le funzioni del manager. Mentre i metodi EndToWork, dindkeywords e ReadyToWork sono di semplice configurazione, il metodo che effettua effettivamente la chiamata della pipeline dei plug-in è il metodo run. In Figura 3.14 è rappresentato l attivity diagram del metodo run. Per poter iniziare l applicazione ed effettuare il naming dello store, tale metodo run utilizza il file XML di configurazione, passato all oggetto tramite costruttore; da questo recupera l indirizzo del file XML contenente la pipeline dei plug-in. Se esiste, ne esegue consecutivamente l elenco. Il metodo termina nel momento in cui tutti i plug-in hanno terminato la loro computazione

49 Recupera il file di configurazione Esiste file Recupera stack plugin [si] [no] Esiste [si] Esegui pipeline [no] Aspetta il temine dell esecuzione Figura 3.14: Activiti diagram del metodo run Dopo aver analizzato il gestore dei plug-in è fondamentale andare a determinare come questi debbano essere composti affinché possano essere riconosciuti dal gestore

50 3.3 Plug-in Affinché il gestore riesca a eseguire un plug-in è necessario che questo: 1) Estenda l interfaccia PluginEntry. 2) Abbia delle regole rigide di impostazione. 3) Fornisca uno standard per interagire con l esterno. L implementazione dell interfaccia PluginEntry garantisce nella programmazione, particolarmente in quella orientata agli oggetti, di venire a conoscenza dell'insieme dei dati e dei metodi visibili all'esterno di un oggetto. Essa fornisce essenzialmente un collegamento tra una sorgente di informazioni ed una destinazione, un formato standard che consente lo scambio di dati a livello di software. L implementazione dell interfaccia PluginEntry ne fornisce gli strumenti l esecuzione in fase di run-time, permettendo così il suo raggiungimento da fonti esterne ad essa. Più complessa è l identificazione di una struttura standard che garantisca sia la sua atomicità che la possibilità di interazione con l esterno Struttura di un plug-in L interazione da parte del manager con ogni singolo plug-in viene permessa mediante la conoscenza a priori da parte del gestore di uno standard di comunicazione. Tale standard viene definito dal dall interfaccia PluginEntry. In Figura 3.15 è schematizzata la comunicazione tra gestore e plugin

51 Il plug-in manager non conosce nulla del plug-in, tranne dove questo è memorizzato e che è questo ad implementare l interfaccia PluginEntry. Tuttavia, queste poche informazioni sono sufficienti perché possa lanciare la sua esecuzione. Figura 3.15: Struttura della comunicazione tra gestore e plug-in Precedentemente alla sua invocazione, al plug-in viene associato un file di configurazione che ne setta le impostazioni necessarie alla sua esecuzione. Questo è lo strumento dal quale il plug-in recupera le informazioni necessarie alla totalità delle sue operazioni. Questo permette di garantire una certa atomicità del plug-in. L implementazione di PluginEntry deve rispettare le regole definite nel component diagram (Figura 3.16). Questo diagramma descrive gli elementi comuni caratterizzanti ogni plug-in; alla base vi è l interfaccia, lo strumento che permette al gestore di eseguire il plugin. Ognuno di questi, utilizza l implementazione solo per permettere la comunicazione tra l esterno e l esecutore del plug-in. Quest ultimo

52 potrebbe essere composto da più parti o includere svariate librerie con l unico scopo di analizzare i dati in ingresso, se presenti, e restituire un risultato dalla sua computazione. L unico strumento necessario all esecutore è il gestore delle configurazione che ha il compito di recuperare le informazioni necessarie al plug-in. Figura 3.16: Component diagram descrivente gli elementi caratterizzanti un plug-in Protocollo di comunicazione e strumenti di configurazione Fra gli attributi che caratterizzano ogni singolo plug-in, oltre alla più volte citata implementazione dell interfaccia PluginEntry, vi è la necessità di stabilire delle regole che permettano: 1) Il recupero di parametri di configurazione per il plug-in 2) Il salvataggio dei dati da lui computati. 3) Il salvataggio di dati da lui immagazzinati

53 Queste regole possono essere gestite e realizzate mediante l introduzione di un particolare strumento definito file di configurazione. Ognuno dei plug-in realizzati deve contenere gli strumenti per recuperare questo file di configurazione che setta tutte le impostazioni necessarie alla corretta esecuzione dell applicazione. Per ogni plug-in realizzato è necessario fornire un eventuale documentazione in cui sono indicate le modalità di compilazione del documento. Per garantire che i plug-in comunichino tra di loro in modo univoco si è voluto creare un file di configurazione generale, in cui poter specificare il formato dei dati in input e in output di ogni computazione. Questo a garanzia di flessibilità per quanto riguarda i nomi dei campi, così da consentire anche l adeguamento successivo agli standard richiesti dal web semantico, e di intercambiabilità dell esecuzione di un plug-in. Al fine di fornire a tutti i plug-in uno strumento facilmente leggibile e comodo da manipolare, si è pensato di realizzare il documento in linguaggio XML. In Figura 3.17 è riportata la struttura del file di configurazione che garantisce una comunicazione omogenea tra i vari plug-in

54 <config> <items> <item>item</item> <name>name</name> <weblog>weblog</weblog> <author>author</author> <url>url</url> <rssurl>rssurl</rssurl> <atomurl>atomurl</atomurl> <inboundblogs>inboundblogs</inboundblogs> <inboundlinks>inboundlinks</inboundlinks> <lastupdate>lastupdate</lastupdate> <title>title</title> <excerpt>excerpt</excerpt> <created>created</created> <permalink>permalink</permalink> <tapi>blog-analytics</tapi> <document>document</document> <result>result-summary</result> <query>search-key</query> <querycount>items-number</querycount> <id>id</id> <type>type</type> <source>search-engine</source> <content>content</content> </items> <technorati> </technorati> /*nome di un plug-in*/ <google> </google> /*nome di un plug-in*/ <ir> </ir> /*nome di un plug-in*/ <merger> </merger> /*nome di un plug-in*/ </config> Figura 3.17: File XML di configurazione L idea che sta alla base del file di configurazione è che ciascuno di questi, se desiderato, possa contenere tutte le informazioni necessarie a configurare l intera pipeline dei plug-in. Quindi, durante la sua ideazione, è stata considerata anche l eventualità che potessero essere inseriti anche tutti i parametri necessari ad ognuno. Lo standard richiesto è che il nodo padre sia il nodo config, quindi, all interno di esso, in ciascun figlio di config, sono contenute le differenti configurazioni, raggruppate per nome del plug-in che li richiede. Il tag che invece ha il compito di gestire lo standard di input ed output dei dati è il tag items. Questo tag contiene come vengono

55 nominati i dati. Una modifica del contenuto di questi tag comporta la rinomina di tutto il materiale d output dell intera pipeline dei plug-in. Questo viene realizzato mediante l utilizzo di un oggetto Config, la cui struttura è visibile nel class diagram di Figura La classe ha il compito di interpretare la configurazione dei dati e fornirli alle esecuzione di ogni singolo plug-in. L oggetto config viene direttamente invocato dal plug-in in fase di recupero dei dati. Diversamente, in fase di output dei dati, la classe è incapsulata all interno di item nel metodo tostring() che recupera i parametri per generare l intero output associato

56 Figura 3.18: Class Diagram classe Config e Items (per motivi di layout sono stati rimossi i parametri dai costruttori)

57 3.3.3 Gli estrattori Alcuni, tra i più importanti plug-in presenti nella pipeline, vengono definiti estrattori [Figura 3.9]. Questi strumenti hanno il compito recuperare dai motori di ricerca tutto il materiale necessario all analisi, compiendo tre operazioni necessarie: 1) Download del risultato dell indicizzazione del motore di ricerca 2) Parsing della pagina ed estrazione dei commenti 3) Salvataggio dei commenti nel formato prestabilito. Una caratteristica deducibile riguardante gli estrattori è la loro posizione al principio dello stack della pipeline, infatti non raccolgono nessun dato in input. In Figura 3.19 viene rappresentata l architettura di un estrattore. Figura 3.19: Architettura di un estrattore

58 L estrattore recupera i dati dal web, e dopo averli analizzati e categorizzati, li salva raggruppandoli in un file XML, la cui struttura è a sua volta recuperata dal un altro file XML di configurazione. Ogni estrattore è caratterizzato da due elementi fondamentali: 1) La classe Search [Figura 3.20] 2) L interfaccia Response [Figura 3.21] La classe Search definisce in particolare due metodi abstract createquery e getsearchresult. La presenza di questi metodi serve a forzare lo sviluppatore di un estrattore a definirli obbligatoriamente poichè sono necessari rispettivamente a preparare la query per interrogare il motore di ricerca e a recuperarne il risultato dell interrogazione. Il metodo downloadpermalink è utile per recuperare i permalink salvati nell interrogazione, per salvare i file associati. Figura 3.20: Class diagram classe Search Con la definizione dell interfaccia response si vuole forzare lo sviluppatore a rispettare rigide regole nello sviluppo dello strumento che si occupa della memorizzazione dei risultati dell indicizzazione. La definizione di un interfaccia per la realizzazione di questa operazione è necessaria per poter nascondere allo strumento che

59 impartisce il comando di indicizzazione quale sia la fonte da cui l indicizzazione è tratta. Figura 3.21: Class diagram interfaccia Response Al termine della caratterizzazione della struttura standard di un estrattore, si vuole ora analizzare l architettura alla base dell estrattore interagente con Technorati e dell estrattore interagente con Google Blogs. Riguardo al loro funzionamento vi sono alcune restrizioni da considerare affinché si possa interagire facilmente con questi due motori. Technorati [Appendice A] mette a disposizione un numero di pagine di indicizzazioni giornaliere limitato. Da un analisi approfondita dei risultati forniti traspare inoltre che il numero di indicizzazioni dichiarate non è corretto, ma molto sovrastimato. Quindi, a causa del limitato numero di indicizzazioni disponibili per ogni estrattore e l alta sovrastima fornita, è necessario interrompere l indicizzazione nel momento in cui si raggiunge il reale numero di indicizzazioni

60 3.3.4 Gli attuatori Con il termine attuatori vengono identificati una serie di plug-in caratterizzati da operazioni di manipolazione dei dati. Dato che non si vuole fissare l ordine di esecuzione dei plug-in in fase di programmazione, è necessario che ogni attuatore acquisisca dati e li modifichi pur lasciando inalterata la loro struttura. A supporto di questa scelta si introduce nuovamente il file di configurazione dell architettura degli item, che informa il plug-in su come deve salvare e recuperare le informazioni presenti. In Figura 3.22 viene mostrato il comportamento standard di un attuatore. Figura 3.22: Comportamento di un attuatore Gli attuatori sviluppati durante il periodo di tesi sono: 1) Il plug-in Downloader 2) Il plug-in Merger 3) Il plug-in IR Il plug-in Downloader ha il compito di scaricare per ogni item il documento a cui è associato. La classe che caratterizza questo plug-in è descritta nel class diagram di Figura

61 La classe analizza la portabilità di connessioni parallele disponibili dalla rete che servono per scaricare i documenti associati a ciascun item. L algoritmo utilizza la regola di sbarramento a barriera, ovvero, raggiunto il numero di connessioni massime richieste si mette in attesa della conclusione del processo per ogni thread eseguito. Solo ad operazione conclusa da parte di ognuno di essi, lancia ancora nuove connessioni a nuovi documenti. L algoritmo termina nel momento in cui sono esaurite le pagine da scaricare. Figura 3.23: Class diagram classe Downloader Il plug-in Merger nasce con la necessità di raggruppare i risultati di dell indicizzazione di ogni estrattore che restituisce come output un file XML. L architettura viene rappresentata in Figura

62 Figura 3.24: Class diagram Classe Merger Al termine dell esecuzione di questo plug-in, si ottiene un unico file contenente i risultati di ogni estrattore, in cui il parametro searchengine risulta essere l unico strumento per la sua identificazione di origine. Il plug-in IR invece sfrutta una particolare libreria, HTMLParser, per estrarre a partire dall excerpt dell indicizzazione l intero blocco che la contiene, essendo questo più esteso. Questa operazione si rende necessaria per escludere dall analisi tutto quel testo definito contorno della pagina web. La libreria HTMLParser permette di utilizzare una pagina HTML come se fosse una pagina XML, quindi permette di isolare porzioni di pagina. La classe BlogParser implementa l estrazione del contenuto di interesse da una pagina, la cui struttura e rappresentata in Figura

63 Figura 3.25: Class diagram classe BlogParser Il metodo principale della classe è exractcontent il quale effettua l operazione di estrazione del contenuto a partire dall excerpt. Ottenuto e ripulito l excerpt dal item (mediante metodo cleanexcerpt ), viene ricercata la sua presenza all interno del documento scorrendolo blocco per blocco, a partire da quelli più piccoli. L algoritmo termina appena viene identificato il blocco più piccolo che lo contiene per la sua totalità. Questa funzionalità, effettuata singolarmente per ciascun item, viene utilizzata dal metodo XMLDatasetManager che si occupa di eseguirla per ogni item presenti nel documento analizzato (Figura 3.26)

64 Figura 3.26: Class diacram oggetto XMLDatasetManager L esecuzione del flusso di chiamate a exractcontent di BlogParser viene realizzato dal metodo loader che si occupa di eseguire e di recuperare il documento e l excerpt associato ad ogni item, ed infine effettua la chiamata passando i due elementi come parametri. 3.4 L'interfaccia grafica web Terminata la fase di progettazione dell applicazione, si vogliono andare a definire le caratteristiche e le funzionalità che l applicazione deve necessariamente fornire affinché la si possa gestire semplicemente ed intuitivamente. L interfaccia grafica web si compone principalmente di due grandi sessioni, la parte pubblica denominata report e la parte amministrativa denominata adminlogin

65 Il report raccoglie tutte le informazioni recuperate dalla fase di indicizzazione ed analisi, mentre adminlogin ha come scopo principale la gestione dell intera fase di analisi. Questa parte amministrativa contiene il modulo di selezione delle indicizzazioni da pubblicare, il modulo per la gestione delle interrogazioni alla pipeline ed infine il modulo di gestione dei plug-in. Queste operazioni risultano essere estremamente delicate, pertanto si è ritenuto necessario realizzare rigide politiche di sicurezza al fine di garantire l inaccessibilità a terzi. Questa scelta è principalmente legata al modulo di gestione dei plug-in, che richiede il caricamento di codice eseguibile all interno del server. Per gestire gli accessi, si è utilizzato regole di gestione dei ruoli [Appendice]; ad ogni ruolo è assegnato, secondo le proprie autorizzazioni, l accesso ad una cartella. Ad ogni utente viene poi associato un ruolo. Lo schema relazionale in Figura 3.27 raccoglie le tabelle che implementano le politiche di gestione dei ruoli

66 Figura 3.27: Schema ER implementa gestione dei ruoli Le tabelle aspnet_membership e aspnet_user hanno il compito di gestire un utente ed i relativi dati associati. L associazione tra utente e ruolo è lasciata alla tabella asp_netuserinrole, ruoli che vengono gestiti dalla tabella aspnet_role. In ultimo, l associazione tra la parte di applicazione utilizzabile e il ruolo responsabile viene definito dalla tabella application. Le altre tabelle sono esclusivamente di monitoraggio. L interfaccia grafica web, dal punto di vista dell utente, contiene unicamente un report che riassume i risultati della fase di recupero e manipolazione dei dati. Uno degli obiettivi futuri è anche estendere questi report contenenti tutte le informazioni ricavate dalla fase di comprensione delle discussioni. Dal punto di vista dell amministratore, l interfaccia grafica è ricca di funzionalità che permettono di gestire l intero motore di estrazione, manipolazione e comprensione

67 Nello use case diagram di Figura 3.28 viene schematizzato il procedimento di pubblicazione dei risultati ottenuti. Figura 3.28: Pubblicazione risultati interrogazione L interfaccia grafica permette la pubblicazione dei risultati, previa precedente autentificazione, mediante una semplice selezione della fonte d origine. Principalmente le fonti a disposizione sono file XML che rispettano il formato dei dati forniti dal file di configurazione. Un altra funzionalità fornita dal interfaccia grafica è la gestione dei plug-in, descritta dell use case diagram di Figura

68 Figura 3.29: Gestione e configurazione dei plugin Per quanto riguarda la gestione del plug-in l interfaccia fornisce tre principali funzionalità: 1) Caricamento dei plugin 2) Inserimento di un plug-in caricato nella pipeline 3) Ordinamento dei plug-in nella pipeline La prima funzionalità viene fornita da una form che permette il caricamento dei sorgenti del plug-in e del file di configurazione, preceduti dalla definizione del nome e dal numero di versione

69 L ultimo componente in analisi è il gestore delle ricerche che, previa autentificazione, permette l inserimento di un interrogazione, la sua eliminazione e in ultimo consente di salvare e modificare il file di configurazione delle ricerche; file che interagisce direttamente con la pipeline. In Figura 3.30 è riportato lo use case diagram di questo componente. Figura 3.30: Gestione interrogazioni alla pipeline dei plugin

70 Capitolo 4 Sviluppo dell applicazione

71 Terminata la fase di progettazione dell architettura dell applicazione si vuole proseguire l analisi dell applicazione, descrivendo le scelte implementative dei principali componenti. L analisi si sofferma sull identificazione dei principali plug-in: 1) Extractor Google 2) Extractor Technorati 3) Merger 4) Downloader 5) IR Inoltre l analisi si sofferma anche sulle funzionalità dell applicazione web descritte nella fase di progettazione dell architettura. 4.1 Scelte implementative per la realizzazione dei Plug-in Il primo Plug-in in analisi è Extractor Google la cui struttura viene descritta nel class diagram di Figura 4.1 e Figura 4.5 Il primo componente in analisi è la classe GoogleSearch che estende la classe Search, e quindi definisce i suoi metodi abstract. Il suo obiettivo è quello di interrogare Google Blogs. Dato che, per scelta di Google, vengono restituiti un massimo di mille risultati, il metodo querycount restituisce 1000, mentre il metodo createquery ha il compito di generare il path per contattare la pagina web. Per effettuare questa operazione esistono due configurazioni, la prima in cui le interrogazioni vengono eseguite sequenzialmente, mentre nella seconda si utilizza un pool di connessioni. La scelta dell una a scapito dell altra non fornisce notevoli vantaggi, data la

72 necessità di rallentare le interrogazioni. Il metodo che si occupa di effettuare le interrogazioni sequenziali è il metodo getresponse. Figura 4.1: Class diagram classi GoogleSearch e ExtractorGoogleThread Il metodo getresponse ha il compito di scaricare il codice sorgente della pagina risultante dall interrogazione e passarlo al costruttore della classe GoogleResponse [Figura 4.2] il quale effettua il parsing della pagina

73 Figura 4.2 Codice sorgente del metofo getresponse La gestione delle interrogazioni, utilizzando un pool di connessioni viene realizzata dalla classe ExtractorGoogleThread che implementa un thread il quale interroga in modo parallelo il motore di ricerca. In Figura 4.3 viene mostrato il metodo run della classe ExtractorGoogleThread Figura 4.3 Codice sorgente del metodo run che gestisce il pool di connessioni

74 Il thread realizza l operazione con l esecuzione del metodo run che genera le Response mediante l impiego della classe Analyser, la cui struttura viene descritta in Figura 4.4. Figura 4.4: Class Diagram classe Analyser Il parsing della pagina viene realizzato in una fase successiva dalla classe GoogleResponse che implementa l interfaccia Response ; questa pagina corrisponde alla pagina del motore di ricerca, ed è quindi una collezione di Item. La classe definisce un costruttore il quale riceve in input il testo del risultato dell interrogazione ed il file XML di configurazione necessario per stabilire come interpretare le informazioni che estrapola dal primo. La struttura della classe GoogleResponse viene rappresentata nel class diagram di Figura

75 Figura 4.5: Class diagram classe GoogleResponse I metodi principali della classe Google Response sono getitems, il quale si occupa del parsing, ed il metodo tostring, che invoca il precedente e restituisce un documento XML contenente la collezione di items sfruttando il file di configurazione. I due metodi sono definiti rispettivamente in Figura 4.6 e in Figura

76 Figura 4.6: Metodo getitems Il metodo getitems ha il compito analizzare il testo, estrarre quello relativo al commento e passarlo alla classe item che lo analizza e scompone. La classe Item identifica un testo di interesse, lo analizza e lo scompone, ed in ultimo ne restituisce il contenuto sotto forma di nodo XML

77 Figura 4.7: metodo tostring Il metodo tostring ha il compito di trasformare l oggetto GoogleResponse in un documento XML; pertanto, dopo aver scritto l intestazione, recupera il metodo tostring dell oggetto item che si occupa di restituire la parte di documento ad esso associato, recuperando le intestazioni dal file di configurazione. Il recupero di un documento dalla rete viene effettuato dal metodo Net.HttpRequest mostrato in Figura

78 Figura 4.8: Metodo Net.HttpRequest Questo metodo statico, appartenente alla classe Net, permette di scaricare efficientemente il contenuto di una pagina web. Il secondo estrattore analizzato è l estrattore Technorati. Questo effettua le stesse operazioni realizzate dall Estrattore Google con un unica differenza per quanto riguarda la sorgente dei dati, e conseguentemente anche le operazioni di parsing della pagina. In Figura 4.9 è riportato il class diagram della classe TechnoratiResponse

79 Figura 4.9: Class diagram della classe TechnoratiResponse Questa classe ha funzionalità e comportamento analogo a quello della Response di Google. Allo stesso modo anche la classe TechnoratiSearch è decisamente simile a quella descritta nel plug-in di Google; differisce esclusivamente per quanto concerne la gestione della fonte sorgente. In Figura 4.10 viene presentata la sua struttura

80 Figura 4.10: Class diagram di TechnoratiSearch e ExtractorTechnoratiThread A differenza dell implementazione effettuata nel ExtractorGoogle, in questa classe l utilizzo del metodo getresponse o getresponselistparallel comporta numerose differenze che derivano dalla mancanza di un elemento che ritarda le interrogazioni al motore di ricerca, effettuando così un elevato numero di connessioni contemporanee

81 Questo è un vantaggio ed è fornito dal metodo getresponselistparallel che esegue con una regola definita a barriera l esecuzione dei thread. Tale metodo è riportato in Figura Figura 4.11: metodo getresponselistparallel Questo metodo impacchetta le richieste in thread, e si mette in attesa della loro risposta. Terminata l esecuzione di tutti i thread lanciati, ne impacchetta le serie successive; l algoritmo termina nel momento in cui tutte le richieste cessano. Per effettuare questa operazione getresponselistparallel utilizza la classe ExtractorTechnoratiThread che esegue la richiesta

82 In Figura 4.12 viene descritta la classe. Figura 4.12 Classe ExtractorTechnoratiThread La classe ExtractorThecnoratiThread impacchetta ed esegue la richiesta http. Terminata la fase di descrizione degli estrattori, l analisi prosegue andando a considerare il plug-in Downloader ; questo ha il compito di recuperare l intero documento associato ad un commento, affinché sia sfruttabile per eventuali elaborazioni future. La struttura del plug-in Downloader è osservabile in Figura

83 Figura 4.13: Architettura plug-in Downloader La classe Downloader corrisponde ad un thread che si occupa di recuperare le pagine dal web. La classe viene eseguita da un metodo static chiamato DownloadPermalink che si occupa della gestione dei perma-link e del recupero del testo associato. Il codice del metodo viene mostrato in Figura Il metodo DownloadPermalink recupera l elenco dei permalink da getpermalinksmap e li passa ad un vettore di thread Downloader che ne recupera il contenuto. L algoritmo, dopo aver inviato le richieste, si mette in attesa del termine della loro esecuzione, affinché possa in seguito inviare nuovamente le richieste. L algoritmo termina quando tutte queste sono ultimate

84 Figura 4.14: Metodo DownloadPermalink Un ulteriore plug-in in analisi è il Merger ; questo ha il compito di unire i risultati sia di estrazioni giornaliere differenti sia da estrattori differenti. Questo plug-in si compone principalmente di un unica classe Merger, che ha lo scopo di concatenare due o più documenti risultanti dalle precedenti fasi di estrazione. La classe si pone come riferimento un documento che utilizza come punto di appoggio, a questo concatena altri documenti che gli vengono passati attraverso il metodo add. In Figura 4.15 è riportato il class diagram della classe Merger

85 Figura 4.15: Classe Merger In Figura 4.16 viene riportato il codice sorgente del metodo add, che implementa la concatenazione di un nuovo elemento al documento di riferimento. Figura 4.16: Metodo add della classe Merger Il metodo add, preso in ingresso il path di un documento, lo analizza, ed estrae una lista di commenti che sono passati al metodo addinobjectmerger il cui codice sorgente viene presentato in Figura

86 Questo metodo effettua il controllo della presenza di item replicati all interno del documento preso come riferimento, e di questi non effettua l inserimento. Figura 4.17: Metodo addinobjectmerger del plugin Merger L ultimo plug-in in analisi è IR, acronimo di Information Retrieval che letteralmente significa recupero d'informazioni; è l'insieme delle tecniche utilizzate per il recupero mirato dell informazione in formato elettronico. Per "informazione" si intendono tutti i documenti, i metadati, i file presenti all'interno di banche dati o nel world wide web. Il plug-in IR ha il compito di recuperare dal documento associato al permalink le informazioni necessarie alle fasi successive. Per un corretto funzionamento di questo plug-in è necessario che nella pipeline dei plug-in sia preceduto da Downloader, questo, infatti, recupera i documenti e li memorizza localmente in modo da preparare l applicazione all esecuzione di IR. IR ha come obiettivo l estrazione dal documento del commento, eliminandone le parti non di interesse. In Figura 4.18 è riportata la classe principale del plug-in IR

87 Figura 4.18: Class diagram Classe XMLDatasetMenager A questa classe viene passato come parametro il path di un documento XML da analizzare. Questo documento XML contiene gli item risultanti dalla computazione dei plug-in che precedono IR. La classe estrae dal documento ogni singolo item che viene passato come parametro alla classe BLogParser. La maggior parte di queste operazioni viene realizzata dal metodo loader presentato in Figura

88 Figura 4.19: Metodo loader della classe XMLDatasetManager Il metodo scorre tutti i nodi del documento, estrae il nodo corrispondente all item e lo passa come parametro del metodo parser di BlogParser. Questa classe recupera il contenuto del documento associato all item e ne estrae informazioni che l indicizzazione, effettuata dai motori di ricerca, aveva trascurato. L architettura della classe BlogParser può essere analizzata in Figura

89 Figura 4.20: Classe BlogParser appartenente al plug-in IR La funzione principale della classe viene realizzata dal metodo parser (Figura 4.21) che recupera e setta un item come variabile locale prima di lanciare il metodo parsecontent e di restituire il risultato della sua esecuzione. Figura 4.21: Metodo parser della classe BlogParser Il metodo parsecontent, a sua volta, recupera e setta il contenuto di interesse dal documento, sfruttando il metodo extractcontent. Il codice sorgente del metodo viene analizzato in Figura

90 Figura 4.22: Metodo parsercontent della classe BlogParser Il metodo extractcontent passa l analisi alla classe TagExplorer, dopo aver ripulito il documento da possibili tag pericolosi. In Figura 4.23 viene mostrato il metodo extractcontent. Figura 4.23: Metodo extractcontent della classe BlogParser Il TagExplorer implementa l interfaccia NodeVisitor, che come si può facilmente dedurre, sfrutta la regola di design pattern Visitor

91 Il design pattern Visitor rappresenta un' operazione che deve essere eseguita sugli elementi di una gerarchia di oggetti. La nuova operazione viene definita senza modificare le classi degli oggetti della gerarchia su cui opera. Essa è determinata da due elementi: dal tipo concreto di Visitor (es: TagExplorer ) e dal tipo concreto dell Element (es: Parser ). La classe TagExplorer che rappresenta l'operazione, viene applicata in fase di esecuzione alla gerarchia di oggetti. L utilizzo di un design pattern Visitor risulta meno efficace quando una nuova operazione deve essere applicata ad una gerarchia di oggetti, dove esiste una classe comune. In un architettura di questo tipo, l introduzione di una nuova operazione comporterebbe la ridefinizione dell operazione in ognuna delle classi ereditanti. Al contrario, aggiungere una nuova operazione nel caso in cui gli oggetti della gerarchia appartengano a diverse gerarchie di classi, ovvero non abbiano una classe base comune, comporta la duplicazione della logica dell operazione. Questo è risolvibile con l introduzione di un pattern Visitor il quale implica unicamente la definizione dell operazione all interno dello stesso. Questo design pattern semplifica l'aggiunta di una nuova operazione comune alle diverse classi di una gerarchia di oggetti, aiuta ad evitare duplicazioni della logica di implementazione della nuova operazione e evita duplicazioni della stessa quando gli oggetti appartengono a gerarchie di classi distinte. Il principale vantaggio nell utilizzo del pattern Visitor rimane però l implementazione di operazioni cumulative su tutti gli oggetti della gerarchia

92 In Figura 4.24 viene descritta la struttura della classe TagExplorer ed in Figura 4.25 l interfaccia NodeVisitor che TagExplorer estende. Figura 4.24: Classe TagExplore Questo Visitor passa in rassegna ogni tag del documento HTML e li memorizza in un ArrayList. Invocato il metodo getcontent, questo restituisce il tag più piccolo contenente l intero excerpt. Infatti, dato che quest ultimo contiene

93 sempre le prime parole del testo indicizzato, il tag più piccolo che lo contiene nella sua interezza risulta essere il content. Figura 4.25: Classe abstract NodeVector Terminata l esecuzione di queste operazioni, gli item sono pronti per la successiva fase di comprensione ed analisi delle discussioni

94 4.2 Scelte implementative nella realizzazione Interfaccia Grafica Web Terminata la fase di analisi dell implementazione dei plug-in più significativi presenti nella pipeline, si va ora a descrivere come sono state sviluppate le scelte implementative delle funzionalità offerte dall interfaccia grafica web. La prima funzionalità in analisi è messa a disposizione degli utenti. Si tratta di un insieme di tabelle che permettono la visualizzazione dei risultati ottenuti dall esecuzione della pipeline dei plug-in. In Figura 4.26 è mostrata la pagina a disposizione degli utenti come resoconto. Figura 4.26: Visualizzazione dei risultati della pipeline Questa pagina web è stata interamente sviluppata con i pattern che la piattaforma DotNet [Appendice] fornisce per lo sviluppo web

95 L applicazione introduce la combinazione di DataList, GridView e FormView con l oggetto SqlDataSource che ne riempie i campi. Alla base di quest applicazione vi è la tabella ITEMS visibile in Figura 4.27 Figura 4.27 Struttura della tabella ITEMS Questa tabella permette la memorizzazione in un database dei dati risultanti dalla computazione della pipeline. Le tabelle visualizzate dalla pagina web corrispondono a delle query nella tabella ITEMS. Oltre alle funzionalità a disposizione dell utente vi sono quelle a disposizione dell amministratore. La prima è la pubblicazione dei risultati della pipeline. Questa funzionalità permette all amministratore di scegliere il momento in cui poter visualizzare i risultati dell analisi dato che, prima della sua pubblicazione, vi potrebbe essere la necessità di consultarli e modificarli. La

96 pubblicazione consiste nel caricamento dei dati forniti dalla pipeline all interno della tabella ITEMS L evento di popolamento della tabella ITEMS associato ad un pulsante è mostrato in Figura 4.28 Figura 4.28: Metodo associato all evento di pubblicazione dei risultati della pipeline Il metodo btnload_click, associato all evento di pubblicazione dei risultati della pipeline, recupera i dati e li incapsula in una query che poi esegue. Un ulteriore funzionalità fornita all amministratore dall interfaccia web è l introduzione di parole o argomenti che la pipeline va poi a computare. In Figura 4.29 viene mostrata l interfaccia visualizzata dall amministratore per la gestione delle ricerche

97 Figura 4.29: Interfaccia grafica associata alla funzionalità di ricerca La pagina descritta si compone di due funzionialità interdipenti. In una prima fase vengono inseriti all interno della tabella sulla sinistra le chiavi per l analisi; nella una seconda fase, generata dalla pressione del pulsante Start,a sua volta contenuto nella finestra Execute stack search, vengono inviate alla pipeline le chiavi da analizzare. La prima funzionalità descritta viene realizzata dal metodo btnsearch_click illustrato in Figura

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

Business Intelligence. Il data mining in

Business Intelligence. Il data mining in Business Intelligence Il data mining in L'analisi matematica per dedurre schemi e tendenze dai dati storici esistenti. Revenue Management. Previsioni di occupazione. Marketing. Mail diretto a clienti specifici.

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli

INFORMATIVA SUI COOKIE

INFORMATIVA SUI COOKIE INFORMATIVA SUI COOKIE I Cookie sono costituiti da porzioni di codice installate all'interno del browser che assistono il Titolare nell erogazione del servizio in base alle finalità descritte. Alcune delle

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 Con questo aggiornamento sono state implementate una serie di funzionalità concernenti il tema della dematerializzazione e della gestione informatica dei documenti,

Dettagli

Data warehouse.stat Guida utente

Data warehouse.stat Guida utente Data warehouse.stat Guida utente Versione 3.0 Giugno 2013 1 Sommario INTRODUZIONE 3 I concetti principali 4 Organizzazione dei dati 4 Ricerca 5 Il browser 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della

Dettagli

PRIVACY POLICY MARE Premessa Principi base della privacy policy di Mare Informativa ai sensi dell art. 13, d. lgs 196/2003

PRIVACY POLICY MARE Premessa Principi base della privacy policy di Mare Informativa ai sensi dell art. 13, d. lgs 196/2003 PRIVACY POLICY MARE Premessa Mare Srl I.S. (nel seguito, anche: Mare oppure la società ) è particolarmente attenta e sensibile alla tutela della riservatezza e dei diritti fondamentali delle persone e

Dettagli

DAT@GON. Gestione Gare e Offerte

DAT@GON. Gestione Gare e Offerte DAT@GON Gestione Gare e Offerte DAT@GON partecipare e vincere nel settore pubblico La soluzione sviluppata da Revorg per il settore farmaceutico, diagnostico e di strumentazione medicale, copre l intero

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet: la rete delle reti Alberto Ferrari Connessioni

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014 Processi di business sovra-regionali relativi ai sistemi regionali di FSE Versione 1.0 24 Giugno 2014 1 Indice Indice... 2 Indice delle figure... 3 Indice delle tabelle... 4 Obiettivi del documento...

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Suite o servizio: Arkottica migliora l organizzazione aziendale

Suite o servizio: Arkottica migliora l organizzazione aziendale Suite o servizio: Arkottica migliora l organizzazione aziendale Gestisci. Organizza. Risparmia. Una lunga storia, uno sguardo sempre rivolto al futuro. InfoSvil è una società nata nel gennaio 1994 come

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Progetto VirtualCED Clustered

Progetto VirtualCED Clustered Progetto VirtualCED Clustered Un passo indietro Il progetto VirtualCED, descritto in un precedente articolo 1, è ormai stato implementato con successo. Riassumendo brevemente, si tratta di un progetto

Dettagli

Il software per la gestione smart del Call Center

Il software per la gestione smart del Call Center Connecting Business with Technology Solutions. Il software per la gestione smart del Call Center Center Group srl 1 Comunica : per la gestione intelligente del tuo call center Comunica è una web application

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

FileMaker Server 13. Guida di FileMaker Server

FileMaker Server 13. Guida di FileMaker Server FileMaker Server 13 Guida di FileMaker Server 2010-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

Metadati e Modellazione. standard P_META

Metadati e Modellazione. standard P_META Metadati e Modellazione Lo standard Parte I ing. Laurent Boch, ing. Roberto Del Pero Rai Centro Ricerche e Innovazione Tecnologica Torino 1. Introduzione 1.1 Scopo dell articolo Questo articolo prosegue

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis 2 Intervento immediato con Bosch Intelligent Video Analysis Indipendentemente da quante telecamere il sistema utilizza, la sorveglianza

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Protocollo HTTP. Alessandro Sorato

Protocollo HTTP. Alessandro Sorato Un protocollo è un insieme di regole che permettono di trovare uno standard di comunicazione tra diversi computer attraverso la rete. Quando due o più computer comunicano tra di loro si scambiano una serie

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Studio di retribuzione 2014

Studio di retribuzione 2014 Studio di retribuzione 2014 TECHNOLOGY Temporary & permanent recruitment www.pagepersonnel.it EDITORIALE Grazie ad una struttura costituita da 100 consulenti e 4 uffici in Italia, Page Personnel offre

Dettagli

END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE DEL CLIENTE

END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE DEL CLIENTE END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE In un mercato delle Telecomunicazioni sempre più orientato alla riduzione delle tariffe e dei costi di

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

La Borsa delle idee Innovare: il reale valore dei social network

La Borsa delle idee Innovare: il reale valore dei social network La Borsa delle idee Innovare: il reale valore dei social network Di cosa parliamo? La Borsa delle Idee è la soluzione per consentire alle aziende di coinvolgere attivamente le persone (dipendenti, clienti,

Dettagli

White Paper. Operational DashBoard. per una Business Intelligence. in real-time

White Paper. Operational DashBoard. per una Business Intelligence. in real-time White Paper Operational DashBoard per una Business Intelligence in real-time Settembre 2011 www.axiante.com A Paper Published by Axiante CAMBIARE LE TRADIZIONI C'è stato un tempo in cui la Business Intelligence

Dettagli

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Guida all uso del portale dello studente

Guida all uso del portale dello studente Guida all uso del portale dello studente www.studente.unicas.it Versione 1.0 del 10/04/2010 Pagina 1 Sommario PREMESSA... 3 PROFILO... 7 AMICI... 9 POSTA... 10 IMPOSTAZIONI... 11 APPUNTI DI STUDIO... 12

Dettagli

Carta di servizi per il Protocollo Informatico

Carta di servizi per il Protocollo Informatico Carta di servizi per il Protocollo Informatico Codice progetto: Descrizione: PI-RM3 Implementazione del Protocollo informatico nell'ateneo Roma Tre Indice ARTICOLO 1 - SCOPO DEL CARTA DI SERVIZI...2 ARTICOLO

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

SAI QUANTO TEMPO IMPIEGHI A RINTRACCIARE UN DOCUMENTO, UN NUMERO DI TELEFONO O UNA E-MAIL?

SAI QUANTO TEMPO IMPIEGHI A RINTRACCIARE UN DOCUMENTO, UN NUMERO DI TELEFONO O UNA E-MAIL? archiviazione ottica, conservazione e il protocollo dei SAI QUANTO TEMPO IMPIEGHI A RINTRACCIARE UN DOCUMENTO, UN NUMERO DI TELEFONO O UNA E-MAIL? Il software Facile! BUSINESS Organizza l informazione

Dettagli

Funzioni di base. Manualino OE6. Outlook Express 6

Funzioni di base. Manualino OE6. Outlook Express 6 Manualino OE6 Microsoft Outlook Express 6 Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito,

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

Relazione sul data warehouse e sul data mining

Relazione sul data warehouse e sul data mining Relazione sul data warehouse e sul data mining INTRODUZIONE Inquadrando il sistema informativo aziendale automatizzato come costituito dall insieme delle risorse messe a disposizione della tecnologia,

Dettagli

ITALIANO TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

ITALIANO TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA ITALIANO TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA L allievo partecipa a scambi comunicativi (conversazione, discussione di classe o di gruppo) con compagni e insegnanti

Dettagli

GESTIONE DELLA E-MAIL

GESTIONE DELLA E-MAIL GESTIONE DELLA E-MAIL Esistono due metodologie, completamente diverse tra loro, in grado di consentire la gestione di più caselle di Posta Elettronica: 1. tramite un'interfaccia Web Mail; 2. tramite alcuni

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

nasce il futuro v secolo a. c. agorà virtuale

nasce il futuro v secolo a. c. agorà virtuale dell e-learning nasce il futuro v secolo a. c. Con Agorà, nell antica Grecia, si indicava la piazza principale della polis, il suo cuore pulsante, il luogo per eccellenza di una fertilità culturale e scientifica

Dettagli

Guida ai Servizi Internet per il Referente Aziendale

Guida ai Servizi Internet per il Referente Aziendale Guida ai Servizi Internet per il Referente Aziendale Indice Indice Introduzione...3 Guida al primo accesso...3 Accessi successivi...5 Amministrazione dei servizi avanzati (VAS)...6 Attivazione dei VAS...7

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

Termini e condizioni d utilizzo. Condizioni di utilizzo dei servizi del sito www.tg24.info

Termini e condizioni d utilizzo. Condizioni di utilizzo dei servizi del sito www.tg24.info 1. Regole Generali e definizioni Termini e condizioni d utilizzo Condizioni di utilizzo dei servizi del sito www.tg24.info Utilizzando i servizi connessi al sito www.tg24.info(qui di seguito indicate come

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

RESPONS.In.City - Methodology

RESPONS.In.City - Methodology RESPONS.In.City - Methodology THE METHODOLOGY OF A RESPONSIBLE CITIZENSHIP PROMOTION Metodologia di Promozione della Cittadinanza come Responsabilità Condivisa 1 Premessa La possibilità di partecipare

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB...

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 1. CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 5 1.3.1 CREAZIONE GUIDATA DELLA FATTURA IN FORMATO XML

Dettagli

Documentazione Servizio SMS WEB. Versione 1.0

Documentazione Servizio SMS WEB. Versione 1.0 Documentazione Servizio SMS WEB Versione 1.0 1 Contenuti 1 INTRODUZIONE...5 1.1 MULTILANGUAGE...5 2 MESSAGGI...7 2.1 MESSAGGI...7 2.1.1 INVIO SINGOLO SMS...7 2.1.2 INVIO MULTIPLO SMS...9 2.1.3 INVIO MMS

Dettagli

AVCP Generatore di XML

AVCP Generatore di XML AVCP Generatore di XML Perché è necessario... 2 Come Funziona... 3 Appalto... 3 Indice... 5 Anagrafiche... 6 Lotto... 7 Partecipanti... 9 Partecipante in Solitario (Partecipante)... 9 Partecipante in Raggruppamento...

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA SVILUPPO DI METODI DECONVOLUTIVI PER L INDIVIDUAZIONE DI SORGENTI INDIPENDENTI

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Scopo di questo corso, vuole essere quello di fornire ad ognuno dei partecipanti, indipendentemente dalle loro precedenti conoscenze informatiche, l apprendimento

Dettagli

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Introduzione generale Autenticazione dell operatore https://sebina1.unife.it/sebinatest Al primo accesso ai servizi di Back Office, utilizzando

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer Servizi DNS - SMTP FTP - TELNET Programmi Outlook Express Internet Explorer 72 DNS Poiché riferirsi a una risorsa (sia essa un host oppure l'indirizzo di posta elettronica di un utente) utilizzando un

Dettagli

Principali funzionalità di Tustena CRM

Principali funzionalità di Tustena CRM Principali funzionalità di Tustena CRM Importazione dati o Importazione da file dati di liste sequenziali per aziende, contatti, lead, attività e prodotti. o Deduplica automatica dei dati importati con

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

Progetto Didattico di Informatica Multimediale

Progetto Didattico di Informatica Multimediale Progetto Didattico di Informatica Multimediale VRAI - Vision, Robotics and Artificial Intelligence 20 aprile 2015 Rev. 18+ Introduzione Le videocamere di riconoscimento sono strumenti sempre più utilizzati

Dettagli

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 -

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 - Progetto SINTESI Comunicazioni Obbligatorie Modulo Applicativo COB - Versione Giugno 2013-1 Versione Giugno 2013 INDICE 1 Introduzione 3 1.1 Generalità 3 1.2 Descrizione e struttura del manuale 3 1.3 Requisiti

Dettagli

6. Le ricerche di marketing

6. Le ricerche di marketing Università degli Studi di Urbino Carlo Bo Facoltà di Lingue e Letterature Straniere Corso di Laurea in Lingue e Cultura per l Impresa 6. Le ricerche di marketing Prof. Fabio Forlani Urbino, 29/III/2011

Dettagli

INDUSTRY PROCESS AND AUTOMATION SOLUTIONS. Lo strumento universale per la messa in esercizio e la diagnosi

INDUSTRY PROCESS AND AUTOMATION SOLUTIONS. Lo strumento universale per la messa in esercizio e la diagnosi Con Vplus, BONFIGLIOLI VECTRON offre uno strumento per la messa in esercizio, la parametrizzazione, il comando e la manutenzione. VPlus consente di generare, documentare e salvare le impostazioni dei parametri.

Dettagli

Dipartimento del Tesoro

Dipartimento del Tesoro Dipartimento del Tesoro POWER POINT AVANZATO Indice 1 PROGETTAZIONE DELL ASPETTO...3 1.2 VISUALIZZARE GLI SCHEMI...4 1.3 CONTROLLARE L ASPETTO DELLE DIAPOSITIVE CON GLI SCHEMI...5 1.4 SALVARE UN MODELLO...6

Dettagli

BRM. Tutte le soluzioni. per la gestione delle informazioni aziendali. BusinessRelationshipManagement

BRM. Tutte le soluzioni. per la gestione delle informazioni aziendali. BusinessRelationshipManagement BRM BusinessRelationshipManagement Tutte le soluzioni per la gestione delle informazioni aziendali - Business Intelligence - Office Automation - Sistemi C.R.M. I benefici di BRM Garantisce la sicurezza

Dettagli

Piazza delle Imprese alimentari. Viale delle Manifatture. Via della Produzione

Piazza delle Imprese alimentari. Viale delle Manifatture. Via della Produzione Piazza delle Imprese alimentari Viale delle Manifatture Via della Produzione PASSEPARTOUT MEXAL è una soluzione gestionale potente e completa per le imprese che necessitano di un prodotto estremamente

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

FORM Il sistema informativo di gestione della modulistica elettronica.

FORM Il sistema informativo di gestione della modulistica elettronica. Studio FORM FORM Il sistema informativo di gestione della modulistica elettronica. We believe in what we create This is FORM power La soluzione FORM permette di realizzare qualsiasi documento in formato

Dettagli

Business Intelligence

Business Intelligence aggregazione dati Business Intelligence analytic applications query d a t a w a r e h o u s e aggregazione budget sales inquiry data mining Decision Support Systems MIS ERP data management Data Modeling

Dettagli

Manuale Software. www.smsend.it

Manuale Software. www.smsend.it Manuale Software www.smsend.it 1 INTRODUZIONE 3 Multilanguage 4 PANNELLO DI CONTROLLO 5 Start page 6 Profilo 7 Ordini 8 Acquista Ricarica 9 Coupon AdWords 10 Pec e Domini 11 MESSAGGI 12 Invio singolo sms

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

FileMaker Server 13. Pubblicazione Web personalizzata con PHP

FileMaker Server 13. Pubblicazione Web personalizzata con PHP FileMaker Server 13 Pubblicazione Web personalizzata con PHP 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker

Dettagli

GOOGLE, WIKIPEDIA E VALUTAZIONE SITI WEB. A cura delle biblioteche Umanistiche e Giuridiche

GOOGLE, WIKIPEDIA E VALUTAZIONE SITI WEB. A cura delle biblioteche Umanistiche e Giuridiche GOOGLE, WIKIPEDIA E VALUTAZIONE SITI WEB A cura delle biblioteche Umanistiche e Giuridiche ISTRUZIONI PER Usare in modo consapevole i motori di ricerca Valutare un sito web ed utilizzare: Siti istituzionali

Dettagli

Ultimo aggiornamento avvenuto il 18 giugno 2014. Sostituisce la versione del 2 maggio 2013 nella sua interezza.

Ultimo aggiornamento avvenuto il 18 giugno 2014. Sostituisce la versione del 2 maggio 2013 nella sua interezza. Condizioni di utilizzo aggiuntive di Acrobat.com Ultimo aggiornamento avvenuto il 18 giugno 2014. Sostituisce la versione del 2 maggio 2013 nella sua interezza. SERVIZI ONLINE ADOBE RESI DISPONIBILI SU

Dettagli

Guida al programma 1

Guida al programma 1 Guida al programma 1 Vicenza, 08 gennaio 2006 MENU FILE FILE Cambia utente: da questa funzione è possibile effettuare la connessione al programma con un altro utente senza uscire dalla procedura. Uscita:

Dettagli