Analisi, progettazione e sviluppo di un software di Information Retrieval con Tecnologie J2EE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Analisi, progettazione e sviluppo di un software di Information Retrieval con Tecnologie J2EE"

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea Triennale in Ingegneria Informatica Tesi di Laurea Triennale in Ingegneria Informatica Analisi, progettazione e sviluppo di un software di Information Retrieval con Tecnologie J2EE Anno Accademico relatore Ch.mo Prof. Ing. Vincenzo Moscato Correlatore Ch.mo Dott. Antonio Agliata Candidato Pasquale Ragozzino N

2 A chi, ogni giorno, incessantemente, non ha mai dubitato ed esitato.

3 Indice Introduzione 5 1. Sistemi di Information Retrieval Cosa sono i sistemi di Information Retrieval Document Repository Indexer Query Processor Scopo di un motore di Information Retrieval Fasi di un motore di Information Retrieval Definizione formale di IR Fasi dell'ir Indicizzazione Tipologie di motori di Information Retrieaval Il modello Booleano Il modello Vettoriale Il modello Probabilistico Apache Lucene library Cos è Apache Lucene Indicizzazione con Lucene Ricerca con Lucene 16 3

4 2.2 Esempio d implementazione di un motore di Information Retrieval Tecnologie utilizzate Esempio di sviluppo di un motore di IR Progetto Indexer Progetto Searcher Ottimizzazione della ricerca con l algoritmo di Edit Distance Vocabolario dei sinonimi Thesaurus Somiglianza lessicale Somiglianza semantica Conclusioni Sviluppi futuri 24 Bibliografia 25 Ringraziamenti 26 4

5 Introduzione Questa tesi di laurea riguarda l Information Retrieval, ovvero quella disciplina che si occupa di studiare, progettare e realizzare sistemi informativi finalizzati al reperimento di documenti, immagini, video, suoni, riguardanti le richieste dell utente finale. Questa tematica ha suscitato l interesse di numerose comunità Open Source come Apache, poiché, nella società moderna, l Information Retrieval rappresenta e rappresenterà sempre maggiormente il modo più veloce ed efficace per memorizzare e ricercare informazioni su qualsivoglia argomento. Inoltre la branca dell IR abbraccia diverse discipline quali la letteratura, la psicologia, la filosofia, la linguistica, la scienza dell informazione e l informatica, segno inequivocabile che la materia è ostica e di difficile lettura ed interpretazione. I dati resi disponibili al reperimento possono essere di tre diverse tipologie : - Dati Strutturati ; - Dati Non-strutturati ; - Dati Semistrutturati. I primi sono dati conservati in un database, organizzati secondo schemi e tabelle rigide; questa è la tipologia di dati più indicata per i modelli di gestione relazionale delle informazioni. I secondi sono quei dati che non hanno nessun tipo di schema organizzativo ( ad esempio file testuali elaborati con uno dei softwares di scrittura disponibili ) e che per questo motivo, necessitano di essere gestiti con motori di IR. Mentre nei terzi s incontrano alcune delle caratteristiche dei dati strutturati e alcune delle caratteristiche dei non-strutturati. Un esempio esplicativo di quest ultima tipologia di organizzazione di dati è il file compilato con 5

6 sintassi XML. Nonostante non vi siano limiti strutturali all inserimento dei dati, le informazioni vengono, comunque, organizzate secondo logiche strutturate e interoperabili. In questo caso, i sistemi di gestione dei dati possono organizzare i documenti sia attraverso i modelli relazionali, sia attraverso modelli di information retrieval. Nel caso specifico dello sviluppo di un motore di IR d esempio, vengono trattati dati semistrutturati e non-strutturati per cui l uso di un IR rispetto ad un DBMS è risultato più vantaggioso e funzionale ; il motivo sta nella natura dei dati trattati ( Curriculum Vitae ) che hanno una struttura tale da rendere il caricamento di quest ultimi complesso e dispendioso nelle tabelle di un DBMS. Al contrario un IR si incaricherà di parserizzare il file e di renderlo persistente grazie all uso di strutture dati ( indici ) molto più funzionali ed accessibili dal sistema, per favorire la ricerca dei risultati da parte dell utente. Infine, quest elaborato, descriverà il funzionamento e l impiego di una delle librerie più potenti ( scritta in Java ) e flessibili per lo sviluppo di un motore di IR, dal nome Apache Lucene. La parte conclusiva dell elaborato, racchiude tutti quelli che sono i possibili sviluppi futuri e le conclusioni generali in merito alla sperimentazione avuta. 6

7 Capitolo 1: Sistemi di Information Retrieval Il termine Information Retrieval fu coniato nel 1952 dall informatico americano Calvin Mooers il quale, citando la legge da lui stesso formulata ( Legge di Mooer s ), dichiarò che: Un sistema di reperimento delle informazioni tenderà a non essere usato, quando, trovare le informazioni è più noioso e doloroso che non trovarle. I primi motori di IR erano utilizzati in modalità batch, attualmente invece, vengono utilizzati in Real-Time con modalità interattive a vari fini, come ad esempio la ricerca di contenuti documentali, la ricerca sul Web di contenuti di varia natura, il reperimento di informazioni aziendali ecc. Lo sviluppo e l evoluzione degli IR sono dovuti a molti fattori quali il basso costo e le capacità sempre più elevate dei dispositivi di memorizzazione, i softwares per la creazione di documenti digitali, strumenti e softwares per l acquisizione in digitale dei documenti cartacei, il web stesso, ecc. In generale un IR si occuperà di rendere semplice e funzionale la reperibilità di files mediante strutture dati ( indici ) facilmente accessibili e di semplificare la ricerca di tali files, opportunamente lavorati. 1.1 Cosa sono i sistemi di Information Retrieval L'IR è un campo interdisciplinare che nasce dalla fusione di discipline eterogenee. Esso coinvolge la psicologia cognitiva, l'architettura informativa, la filosofia, il design, il comportamento umano sull'informazione, la linguistica, la semiotica, la scienza dell informazione e l informatica. Nello specifico un motore di IR si occuperà di soddisfare l'information need dell'utente che ne fa uso, con tecniche e metodologie atte a restituire il contenuto voluto e cercato. In particolare l information need è il bisogno informativo dell utente 7

8 il quale anche se sembra banale, non lo è se l applicazione sviluppata non mette a disposizione i giusti strumenti per esprimerlo al meglio. Le componenti fondamentali di un sistema di IR sono tre: il document repository, l'indexer e il query processor Document-Repository Il document-repository è la componente che si occupa di raccogliere documenti e files contenuti in genere, assieme alla struttura che li interconnette, e li indicizza per rendere disponibile il tutto all'utente che fa uso del sistema Indexer L'indexer, si occupa di costruire opportune strutture dati per memorizzare le informazioni necessarie al recupero dei documenti ricevuti in input dal document-repository. Le strutture di cui in generale, i motori di ricerca si avvalgono sono il lessico, contenente i termini distinti che compaiono nella collezione di documenti e il posting file, il quale nella sua forma meno complessa, contiene tutte le liste dei documenti in cui i termini del lessico compaiono. 8

9 1.1.3 Query Processor Il query processor invece, si occupa del reperimento dei documenti nell'indice preventivamente creato dall'indexer e di restituirli all'utente ordinati in base alla loro presunta rilevanza e all'information need. Il concetto di rilevanza è di fondamentale importanza nei sistemi di IR ed è fonte di studi approfonditi e continui, inoltre, un approccio ibrido per la restituzione dei contenuti richiesti, è quello più utilizzato in quanto si sfrutta un motore di IR per l informazione non strutturata e una base di dati per i suoi metacaratteri descrittivi. 1.2 Scopo di un motore di Information Retrieval Lo scopo di un IR non è solo quello di progettare le tecniche di reperimento dei dati bensì anche quello di ricercare materiale ( generalmente dati non-strutturati ma in alcuni casi anche dati strutturati ) al fine di soddisfare l'information need dell utente che usufruisce di tale sistema; inoltre un IR aiuta l'utente ad esprimere in maniera chiara e consona il suo l'information need, oltre che della presentazione dei risultati ottenuti in forma adeguata. A tal proposito vi sono due tipi di approccio alla presentazione dei risultati: il clustering e la classificazione. Il primo dispone i risultati in gruppi secondo una serie di parametri, mentre il secondo dispone i risultati per tipo. Infine l'ir è ampiamente utilizzato anche nel mondo del data mining per l'elaborazione e la gestione di grosse moli di dati ed informazioni. 1.3 Fasi di un motore di Information Retrieval Definizione formale di IR Formalmente un modello di Information Retrieval è una quadrupla ( D, Q, F, R ), dove: - D è un insieme di viste logiche dei documenti della collezione; - Q è un insieme di viste logiche ( query ) dei bisogni informativi dell utente; - F è un sistema per modellare documenti, query e le relazioni tra loro; - R (q i, d j ) è una funzione di ranking che associa un numero reale positivo ad una query q i e un documento d j, definendo un ordinamento tra i documenti con riferimento alla query q i. 9

10 1.3.2 Fasi dell'ir Viste le attuali esigenze di operare sul Web, gli algoritmi che gestiscono la ricerca "per rilevanza" dei contenuti desiderati, risulterebbero poco efficienti e computazionalmente complessi da eseguire in real-time. La soluzione adoperata dai moderni IR è quella di utilizzare delle strutture dati dette indici. Le fasi principali di un IR sono fondamentalmente due: - Indicizzazione che non avviene in real-time, ma gli indici sono creati dai crawlers e dagli spiders e sono composti da valori del tipo [ term, id ]; - Ricerca che viene effettuata dall'utente e che grazie alla costruzione degli indici, ha complessità sub-lineare evitando anche l'appesantimento del Web, visto che solitamente gil indici sono in locale. Nel paragrafo successivo verrà descritta in dettaglio solo la fase di indicizzazione, mentre per quella di ricerca, vi sarà una panoramica nei capitoli e paragrafi seguenti Indicizzazione La fase di indicizzazione è la più importante delle fasi di un progetto di sviluppo di un motore di IR efficace ed efficiente, ma prima di effettuare questa operazione, è necessario compiere una serie di operazioni preliminari con lo scopo di ottimizzare i documenti/testi/dati da rendere disponibili alla struttura che si occuperà della ricerca. Il trattamento dei testi ha come scopo l individuazione degli elementi caratterizzanti un testo e la generazione di una rappresentazione formale ( in genere un array ). Il trattamento dei testi può essere più o meno complesso e si divide in due fasi fondamentali: Tokenizzazione: identificazione dei singoli elementi token ( parole, spazi ); Lemmatizzazione: identificazione della radice dei termini ( vadano andare ); La tokenizzazione può essere effettuata secondo diversi principi che risulteranno essere più o meno validi a seconda del sistema e del contesto dell IR da sviluppare. La lemmatizzazione, invece, è composta da più fasi, ed è di diversa natura a seconda della lingua e del testo da analizzare. In particolar modo sono di fondamentale importanza alcune fasi che 10

11 rendono il testo, preventivamente tokenizzato, più efficientemente indicizzabile. Si utilizza, per esempio, un vocabolario di Stop Words, contenente tutte quelle parole che hanno una frequenza di comparsa nel documento molto elevata. Un esempio possono essere le congiunzioni, la punteggiatura, le preposizioni ecc. Questi dizionari possono avere natura statica ( implementati in strutture dati personalizzate a seconda del contesto e del caso di studio ), oppure natura dinamica e di apprendimento ( in base ad un limite di frequenza è possibile decidere se includere le parole nel dizionario delle Stop Words o meno ). A valle della costruzione di tale dizionario, secondo uno dei metodi più comodo e consono al contesto di sviluppo, verrà effettuata un operazione di rimozione o non inclusione delle parole appartenenti allo stesso, al fine di ottimizzare il testo per la fase successiva di Stemming. Questa fase prevede che i tokens precedentemente lavorati, vengano ridotti dalla forma flessa o estesa, nella loro forma radice ( Es. andai, andare, andato and ). Gli algoritmi di Stemming sono tutt'oggi materia di studio e sviluppo e tra quelli di maggior impiego e utilizzo vi è sicuramente quello di Porter. Nel 1968 Julie Beth Lovins progetta e sviluppa il primo algoritmo di stemming che, nel 1980, dopo diversi miglioramenti, viene standardardizzato per la lingua inglese sotto il nome di "algoritmo di Martin Porter". Solo dopo le fasi di Tokenizzazione e Lemmatizzazione è possibile passare alla fase di Indicizzazione dei term lavorati e memorizzati. 11

12 La creazione dell'indice restituisce delle coppie di valori del tipo [ term, docid ], dove term rappresenta i termini del documento e docid, il documento stesso. E' buon uso, oltre che comodo e funzionale, costruire una matrice term/docid che rappresenterà il rapporto di frequenza e comparsa tra termini e documenti. d1 d2 d3... t t t In particolar modo, se nella matrice compare uno "0", allora il term non è presente nel documento, nel caso invece ci sia un "1", il termine sarà presente all'interno del documento. Grazie a questa matrice possiamo definire due parametri, ossia il Document Frequency ( DM ) e il Term Frequency ( TF ) corrispondenti relativamente al numero di documenti in cui appare il termine e il numero di occorrenze di termini presente nel documento. 1.4 Tipologie di motori di Information Retrieval Diverse sono le tipologie dei motori di IR che operano sui dati/file da ricercare; esse variano in base al modo in cui vengono interrogati i sitemi, oppure dal modo in cui vengono acceduti ecc. In particolarmodo abbiamo tre tipologie diverse di motori di IR che sono rispettivamente: - Il modello Booleano; - Il modello Vettoriale; - Il modello Probabilistico Il modello Booleano Il modello standard booleano dell'information Retrieval è un modello di base, in cui l'informazione associata ad un documento è composta da due valori possibili: un documento può 12

13 essere rilevante ( 1 ) o irrilevante ( 0 ), in base alla presenza o assenza di un termine richiesto all'interno del medesimo. Viene usato un sistema di "match" esatto per il recupero delle informazioni e le query sono fatte combinando i termini con gli operatori booleani AND, OR, NOT, quindi il sistema restituisce tutti i documenti che soddisfano tale query Il modello Vettoriale Il modello vettoriale prevede la rappresentazione di query e documenti mediante vettori pesati, in uno spazio vettoriale. Lo spazio ha una dimensionalità pari al numero "N" di termini nel vocabolario. La similarità tra le query e il documento, sfrutta le misure geometriche di similarità tra vettori. Alcuni vantaggi qualificano il modello Vettoriale tra i più efficienti modelli di IR attualmente utilizzati, infatti, il peso dei termini e la ricerca gerarchica grazie alla clusterizzazione dei documenti, migliora la qualità delle risposte e rispetta quindi l IN utente Il modello Probabilistico Il modello probabilistico, come quello vettoriale, risulta uno dei più utilizzati sia a livello teorico che a livello sperimentale. Questo modello, in particolare, rappresenta l incertezza e il costo della decisione presa dall IR nel reperire un documento. Il costo e l incertezza sono modellati con gli strumenti del calcolo delle probabilità e della statistica delle decisioni. 13

14 Capitolo 2: Apache Lucene library Lucene è una libreria di API ( application programming interface ) con licenza Open Source, utilizzata per il reperimento di informazioni, inizialmente sviluppata in Java e successivamente in C#, C++, Perl, Phyton, Ruby, PHP. Sebbene inizialmente il suo ideatore e sviluppatore, Doug Cutting, aveva ideato questa collezioni di API per l indicizzazione e la ricerca full-text di documenti e files, è attualmente utilizzata per la realizzazione e lo sviluppo di motori di ricerca sia nel World Wide Web che nelle intranet aziendali o private. L uso sempre più vasto e svariato di questa libreria, ha portato ad assumere la percezione del prodotto come di un motore di ricerca dotato di web-spider e parser HTML. In realtà non è così, infatti Lucene, richiede che tali strumenti siano forniti da terzi esternamente. I dati gestiti da Lucene sono rappresentati come documenti ( document ) e campi ( fields <nome,valore> ) testuali. Questa genericità, permette, di sviluppare motori di ricerca e di IR a prescindere dal tipo di file da trattare. Infatti Lucene ci permette di trattare ed indicizzare file testuali di tipo PDF, DOC, HTML, così come altri tipi di files dai quali sia possibile trarre ed estrarre informazioni. Alcuni esempi di utilizzo di Lucene si possono riscontrare nel codice di alcuni grandi Siti Web quali, Wikipedia, CNET, Alfresco ecc. 14

15 2.1 Cos è Apache Lucene Analisi, progettazione e sviluppo di un software di Information Retrieval con tecnologie J2EE Apache Lucene è un progetto maturo e open-source che consente di aggiungere alla propria applicazione funzionalità come la ricerca e l'indicizzazione, nascondendo la complessità di tali operazioni allo sviluppatore, in quanto, fornisce tramite un interfaccia, semplici ma potenti funzionalità che richiedono solo una minima conoscenza su argomenti quali la ricerca full-text. Inoltre opera senza fare assunzioni su ciò che indicizza e ciò che ricerca. Si può pensare a Lucene come ad uno strato situato sotto quello su cui poggia l applicazione Indicizzazione con Lucene L indicizzazione, come già descritto nei paragrafi precedenti, non è altro che un processo il quale elabora i dati originali in collezioni di riferimenti ordinati al fine di agevolarne la ricerca rapida. È utilizzato anche per eliminare il lento processo di scansione sequenziale di un testo. Il risultato di tale operazione è un indice ( Lucene index ), memorizzato per esempio, sul file 15

16 system e interrogabile in fase di ricerca mediante delle particolari query ( query Lucene ). Si può pensare a un indice come ad una serie di dati che consentono un accesso diretto alle parole memorizzate al suo interno; ne è un esempio l indice analitico di un libro che permette di individuare rapidamente le pagine che contengono un determinato termine. Nel caso di Lucene, un indice è una struttura dati appositamente progettata e archiviata sul file system sotto forma di file. La classe Lucene che si occupa dell indicizzazione è Analyzer ( analizzatore ) che incapsula, al suo interno, il processo di analisi, e marca pezzi di testo eseguendo su di esso una serie di operazioni quali: estrazione delle parole, rimozione degli accenti, della punteggiatura e dei termini comuni ( Es. il, un, dei, etc... ), trasformazione in forma minuscola dei caratteri, stemming e lemmatizzazione come descritto nei paragrafi precedenti Ricerca con Lucene Per effettuare una ricerca su di un indice precostituito è necessario aprire l indice in questione mediante un IndexSearcher, su cui, in seguito, effettuare le ricerche desiderate mediante delle opportune query. La query in Lucene è una perfetta astrazione del concetto classico di query per il recupero di informazioni da un database; tale astrazione a sua volta è fornita da un QueryParser, il quale ha come obiettivo quello di acquisire la keyword di ricerca ( una o più parole, anche generiche ), analizzarla con lo stesso Analyzer usato per la creazione dell indice ed infine rendere la stringa di ricerca come una query che rispetti una determinata sintassi. L ultimo passo consiste nel restituire l oggetto query che sarà passato all IndexSearcher per poter effettuare la ricerca sull indice ed immagazzinare i risultati di tale ricerca all interno di un oggetto ScoreDoc. 16

17 2.2 Esempio d implementazione di un motore di Information Retrieval In questo paragrafo verrà presentata una rapida descrizione dello sviluppo di un motore di IR d esempio progettato e sviluppato per testare quanto illustrato finora. In particolar modo verranno discussi i due progetti INDEXER e SEARCHER che implementano il motore di IR d esempio preso in esame e verranno inoltre presentate le tecnologie utilizzate per operare tale sviluppo. I progetti sono entrambi dei Web Application Java adoperati rispettivamente per indicizzare e per ricercare nel repository dei CV in base all IN utente Tecnologie utilizzate Di seguito una breve descrizione delle tecnologie adoperate, farà da introduzione allo sviluppo vero e proprio del motore di IR d esempio citato precedentemente. - Apache Lucene, di cui si è già abbondantemente discusso nei paragrafi precedenti; - Apache Tomcat, application server che ci permette lo sviluppo delle pagine JSP ( Java Server Pages ) o delle Servlet e l esecuzione di applicazioni web sviluppate in Java ; - Xaamp, piattaforma software, che mette a disposizione gli strumenti come, MySql e Apache HttpServer, per la creazione di pagine sviluppate con linguaggi di programmazione lato Server come PHP; - Eclipse Luna, IDE per la programmazione e lo sviluppo di software di varia natura e uso Esempio di sviluppo di un motore di IR In questo paragrafo verrà implementato un esempio di motore di IR e per comodità il progetto verrà diviso in due parti : - Indexer, che si occuperà dell indicizzazione dei documenti in ingresso al sistema ; - Searcher, che metterà a disposizione un interfaccia utente per la ricerca dei files. 17

18 Progetto Indexer In questa fase del progetto di costruzione di un motore di IR verrà implementata la parte relativa all indicizzazione dei termini nei documenti uplodati nel sistema. In particolare, i documenti trattati, saranno dei Curriculum Vitae in formato europeo ( per comodità con estenzioni *PDF o *DOC ). Tali CV verranno parserizzati ( verrà analizzato il flusso continuo di dati in ingresso, letti per esempio da un file, in modo da determinare la sua struttura grazie ad una data grammatica formale ) prima di essere passati alla classe Lucene che si occuperà della loro tokenizzazione e successiva indicizzazione. Questa fase produrrà un documento formattato secondo alcuni parametri comodi per le fasi successive e con lo scopo di accedere il file per essere elaborato. Successivamente il file storato in un oggetto di tipo Document verrà dapprima spostato in una struttura dati di tipo String ( necessaria per operare sul testo ), dopodichè il testo, opportunamente formattato, verrà matchato con un dizionario di Stop Words opportunamente creato per il caso d uso specifico e disposto in una struttura dati di tipo ArrayList <String> e se esistono corrispondenze di valore tra il testo e il dizionario stesso, verranno esclusi tali termini dalla struttura dati finale, che sarà poi utilizzata per l indicizzazione. Solo ora si otterrà una serie di term privi di Stop Words e tokenizzati. A questo punto i term verrano dapprima lemmatizzati e 18

19 successivamente indicizzati. La lemmatizzazione, in questo specifico caso d uso, consiste nella correzione del testo presente nella struttura dati contenente i token confrontandoli con un ulteriore dizionario ( in questo caso un dizionario della lingua italiana senza voci verbali coniugate per risalire alla radice dei verbi ) sfruttando un algoritmo di Distanza di Edit. Quest ultimo si occupa di effettuare una correzione o associazione di termini in base a quelli presenti nel dizionario, sostituendo i term con i termini che hanno distanza minima con gli stessi termini del dizionario. Questo algoritmo è illustrato in dettaglio nel paragrafo successivo. Infine, i term risultanti dalle operazioni precedenti, saranno indicizzati sfruttando la classe Analyzer di Lucene, la quale, mette a disposizione metodi e funzionalità per una corretta creazione dell indice Progetto Searcher Nella seconda ed ultima fase del progetto, verrà implementata un interfaccia grafica e la sezione che si occupa della ricerca, sfruttando ancora una volta i metodi e le classi di Apache Lucene. In particolare vi è una pagina di ricerca sviluppata con HTML5 e CSS3, che mette a disposizione una input per la digitazione del testo da ricercare e una veste grafica di esempio per il compimento di varie operazioni. A tale strumento è applicata una funzione, sottoforma di Servlet JSP con chiamata asicrona AJAX, per il suggerimento di parole da cercare al posto delle parole digitate nella barra di ricerca ( simil Google ). L algoritmo che gestisce il suggerimento di parole in alternativa al testo digitato nella input è la Distanza di Edit o Distanza di Levenshtein, il quale unitamente alla chiamata AJAX, da ausilio 19

20 all utente che digita il testo in merito alla correzione ortografica o al senso del testo digitato. 2.3 Ottimizzazione della ricerca con l algoritmo di Edit Distance In questo paragrafo è descritto dettagliatamente l algoritmo distanza di edit di Vladmir Levenshtein ( scienziato russo che ne 1965 introdusse il concetto di distanza di edit tra stringhe ) il quale è sfruttato per controllare la similitudine e l associazione tra testi, ma che è possibile sfruttare anche per immagini, suoni ecc. In generale la distanza di Levenshtein tra due stringhe A e B è il numero minimo di modifiche elementari che consentono di trasformare la stringa A in quella B. Per modifica elementare si intende : - cancellazione di un carattere contenuto nel termine ; - sostituzione di un carattere con un altro ; - inserimento ex-novo di un carattere nella stringa. Un esempio esplicativo dell algoritmo di edit è la trasformazione del termine "casa" in "carato": 1. casa -> cara ( sostituzione di S in R ); 2. cara -> carat ( inserimento di T ); 3. carat -> carato ( inserimento di O ). Percui, nel caso preso in esempio, non è possibile passare dalla prima parola alla seconda con meno di 3 operazioni, quindi la distanza di Levenshtein è 3. A supporto di questo esempio è sopra riportato lo sviluppo in Java dell algoritmo e un Main di prova per testarlo. 20

21 2.4 Vocabolario dei sinonimi Analisi, progettazione e sviluppo di un software di Information Retrieval con tecnologie J2EE Le difficoltà nell implementazione di un valido motore di IR stanno non tanto nelle fasi descritte fin qui, le quali sono ben definite e facili da implementare grazie all uso di algoritmi ben strutturati e studiati, ma sta nella restituzione e reperimento della IN utente. Diversamente dalle altre lingue mondiali, l italiano ha una sintassi e una morfologia estremamente complessa e articolata, percui, una parola può avere molti significati in base al contesto, alla posizione, all uso, ecc. Inoltre il vocabolario dei sinonimi in italiano, complica ancor di più la restituzione di un risultato valido e preciso all utente. E proprio su questo punto che attualmente vi è un forte studio per l ottimizzazione e l efficienza di strumenti già esistenti ma che vanno sicuramente perfezionati. Uno degli strumenti che permette di poter restituire risultati validi e quindi rispettare l IN dell utente è il Thesaurus, il quale si occupa di confrontare tuple di termini e restituire il sinonimo associato ai termini cercati dall utente. Il Thesaurus fa parte della più grande famiglia degli algoritmi di prossimità semantica, i quali sono di fondamentale utilità per aumentare le capacità di analisi testuale e per il soddisfacimento dell IN utente Thesaurus In sintesi un Thesaurus è sostanzialmente un dizionario dei sinonimi ( nel nostro specifico caso d uso in italiano ), nel quale nello specifico, vengono memorizzari i valori di somiglianza tra coppie di termini. Inoltre esistono diverse tecniche per la costruzione dei Thesaurus che si distinguono principalmente in due gruppi principali : - Somiglianza lessicale: si basano sull analisi della radice comune dei termini fornendo un indice che rappresenta quanto due parole derivino da una radice comune. - Somiglianza semantica: si basano sull analisi delle relazioni concettuali dei termini fornendo un indice che rappresenta quanto due termini sono concettualmente legati. 21

22 2.4.2 Somiglianza lessicale Esistono due tecniche per individuare le affinità semantiche tra coppie di termini di un documento: l individuazione di una radice comune tra i termini ( troncamento ) e l analisi tra stringhe. Nell utilizzo della prima metodologia si riscontrano ambiguità nella determinazione della radice comune e nell impossibilità di analizzare correttamente le forme irregolari dei termini. Nel confronto tra stringhe, invece, la procedura è più semplice ma più dispendiosa e consiste nel trovare una rappresentazione numerica al grado di somiglianza tra le parole Somiglianza semantica La somiglianza semantica si basa sulla ricerca di termini nel documento che possono essere considerati vocaboli simili. Due parole sono sinonimi se il loro utilizzo in un determinato contesto è neutrale ai fini del significato. Si possono analizzare diverse tipologie di correlazioni semantiche; i termini gatto e micio, ad esempio, sono sinonimi, ma anche i termini gatto e felino oppure gatto e animale, se pur in forma minore, sono dei sinonimi. In questi ultimi due casi si parla di iponimia della parola gatto in quanto i termini felino e animale sono concetti più generali rispetto al termine gatto. Oltre ai sinonimi vi sono anche altre correlazioni tra i termini, come esistono tra le parole cane e gatto. L individuazione di questi legami di termini è una fase molto complessa che non può prescindere dall intervento umano; la valutazione automatica di relazioni come quelle che esistono tra i termini cane e gatto, infatti, deve essere valutata manualmente in base al contesto di utilizzo. Per valutare le dipendenze di somiglianza semantica che esistono tra i termini di un documento si può pensare di prendere in considerazione come unità fondamentale, una frase. E logico pensare che se due termini compaiono assieme in diverse frasi è plausibile che queste parole siano correlate tra loro. Su questa idea di base si sviluppano le principali tecniche di analisi automatica della somiglianza semantica di termini. 22

Uno sguardo a Lucene. Diego De Cao, Roberto Basili Web Mining and Information Retrieval a.a. 2010/2011

Uno sguardo a Lucene. Diego De Cao, Roberto Basili Web Mining and Information Retrieval a.a. 2010/2011 Uno sguardo a Lucene Diego De Cao, Roberto Basili Web Mining and Information Retrieval a.a. 2010/2011 Outline Uno sguardo a Lucene Descrizione delle principali caratteristiche Realizzazione di un semplice

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

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Information Retrieval

Information Retrieval Information Retrieval Dario Rigolin Comperio srl CTO dario.rigolin@comperio.it Bologna 22 Maggio 2009 Master in Tecnologie OpenSource Agenda Presentazioni di rito Piccola introduzione sull'ir Cosa offre

Dettagli

Kirey Re.Search 2.0. Piattaforma di ricerca Open Source

Kirey Re.Search 2.0. Piattaforma di ricerca Open Source Kirey Re.Search 2.0 Piattaforma di ricerca Open Source Le esigenze Quando si parla di motori di ricerca si tende a pensare istintivamente solo a quelli utilizzati per effettuare ricerche in Internet, come

Dettagli

La gestione del documento

La gestione del documento Operatore giuridico d impresa Informatica Giuridica A.A 2002/2003 II Semestre La gestione del documento prof. Monica Palmirani Il documento A differenza del dato il documento è solitamente un oggetto non

Dettagli

Indicizzazione. Fasi del processo di IR. Indicizzazione: due aspetti. Corpus: Costruzione delle viste logiche dei documenti: Termine indice

Indicizzazione. Fasi del processo di IR. Indicizzazione: due aspetti. Corpus: Costruzione delle viste logiche dei documenti: Termine indice Fasi del processo di IR Indicizzazione Information need text input Pre-process documents Parse Query Index Rank Indicizzazione: due aspetti Costruzione delle viste logiche dei documenti: Per ogni documento

Dettagli

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

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testuali Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testuali Il text mining: una definizione Data mining per dati destrutturati ovvero documenti codificati in linguaggio

Dettagli

UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea in Informatica

UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea in Informatica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea in Informatica Costruzione di un thesaurus per gli algoritmi di prossimità semantica DISCo LET

Dettagli

Prime sperimentazioni d'indicizzazione [semi]automatica alla BNCF

Prime sperimentazioni d'indicizzazione [semi]automatica alla BNCF Prime sperimentazioni d'indicizzazione [semi]automatica alla BNCF Maria Grazia Pepe - Elisabetta Viti (Biblioteca nazionale centrale di Firenze) 6. Incontro ISKO Italia Firenze 20 maggio 2013 SOMMARIO

Dettagli

Cercare documenti Web

Cercare documenti Web Pagine web (struttura html) Cercare documenti Web Motori di Ricerca I MOTORI DI RICERCA Sulla rete Web vi sono strumenti specifici chiamati motori di ricerca (research engines) per la ricerca di siti e

Dettagli

Pedigree Documentazione aggiuntiva Corso di reperimento dell informazione a.a. 2005/2006 prof.sa Maristella Agosti

Pedigree Documentazione aggiuntiva Corso di reperimento dell informazione a.a. 2005/2006 prof.sa Maristella Agosti Pedigree Documentazione aggiuntiva Corso di reperimento dell informazione a.a. 25/26 prof.sa Maristella Agosti Argenton Matteo Buzzi Lorenzo Gatto Giorgio Molinaro Matteo Zorzan Emmanuele Prestazioni

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo tesi di laurea Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Catello di

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Le scelte tecnologiche di RUP System

Le scelte tecnologiche di RUP System Cremona 22 novembre 2007 Le scelte tecnologiche di System - Metarete Linguaggio di programmazione Linguaggio di programmazione: Java Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma

Dettagli

SCUOLA POLITECNICA. 1 semestre Facoltativa Voto in trentesimi

SCUOLA POLITECNICA. 1 semestre Facoltativa Voto in trentesimi SCUOLA ANNO ACCADEMICO OFFERTA 2015/2016 ANNO ACCADEMICO EROGAZIONE 2017/2018 CORSO DILAUREA INSEGNAMENTO TIPO DI ATTIVITA' AMBITO CODICE INSEGNAMENTO 18033 SETTORI SCIENTIFICO-DISCIPLINARI SCUOLA POLITECNICA

Dettagli

Aspetti applicativi e tecnologia

Aspetti applicativi e tecnologia Aspetti applicativi e tecnologia Premessa Architetture usate per i database Le prime applicazioni erano definite monolitiche, cioè un unico computer (mainframe) gestiva sia le applicazioni che i dati,

Dettagli

Pipoli Antonio. Telefono: 3472225977 Email: antonio.pipoli@yesoft.it

Pipoli Antonio. Telefono: 3472225977 Email: antonio.pipoli@yesoft.it CURRICULUM VITAE Pipoli Antonio Telefono: 3472225977 Email: antonio.pipoli@yesoft.it Data e luogo di nascita: 26/03/1983 Foggia (FG) Nazionalità: Italiana Codice Fiscale: PPLNTN83C26D643F Residenza: via

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

La realizzazione di WebGis con strumenti "Open Source".

La realizzazione di WebGis con strumenti Open Source. La realizzazione di WebGis con strumenti "Open Source". Esempi di impiego di strumenti a sorgente aperto per la realizzazione di un Gis con interfaccia Web Cos'è un Web Gis? Da wikipedia: Sono detti WebGIS

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

Indicizzazione di documenti testuali

Indicizzazione di documenti testuali Indicizzazione di documenti testuali Generazione di un archivio di Documenti Testuali E eseguita off-line necessaria per accelerare il reperimento dei documenti E un processo che esegue le seguenti attività:

Dettagli

Il progetto di ricerca Ellade

Il progetto di ricerca Ellade Il progetto di ricerca Ellade Ellade ELectronic Live ADaptive Learning Gruppo di lavoro Università degli Studi della Calabria, Dipartimento di Matematica Università degli Studi Mediterranea di Reggio Calabria,

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

1 Introduzione 1 1.1 Information Retrieval: promesse e problemi... 1 1.2 Presentazione del lavoro... 3 1.3 Sommario... 5

1 Introduzione 1 1.1 Information Retrieval: promesse e problemi... 1 1.2 Presentazione del lavoro... 3 1.3 Sommario... 5 Indice 1 Introduzione 1 1.1 Information Retrieval: promesse e problemi..................... 1 1.2 Presentazione del lavoro................................ 3 1.3 Sommario........................................

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

Dettagli

Progettazione Web Applicazioni client-server

Progettazione Web Applicazioni client-server Progettazione Web Applicazioni client-server Sviluppo di un'applicazione Web integrando: HTML MySQL PHP Apache Applicativi utilizzabili: gestione database: JDER, MySQL Workbench, HeidiSQL (Win), DBeaver

Dettagli

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

Dettagli

Applicazione: DoQui/Acta - Sistema di gestione dell'archivio

Applicazione: DoQui/Acta - Sistema di gestione dell'archivio Riusabilità del software - Catalogo delle applicazioni: Gestione documentale Applicazione: DoQui/Acta - Sistema di gestione dell'archivio Amministrazione: Regione Piemonte - Direzione Innovazione, Ricerca

Dettagli

Corso di Informatica di Base. Laboratorio 2

Corso di Informatica di Base. Laboratorio 2 Corso di Informatica di Base Laboratorio 2 Motori di Ricerca Sara Casolari Cercare nel posto giusto Andare in posti noti Esempio: per reperire informazioni sui contributi pensionistici chiediamo all INPS

Dettagli

CIG 6223997CCB COD. ALICE G00292

CIG 6223997CCB COD. ALICE G00292 APPENDICE 2 Descrizione dei profili professionali richiesti Sommario APPENDICE 2 Descrizione dei profili professionali richiesti... 1 1. PROFILI PROFESSIONALI RICHIESTI... 2 1.1 Capo progetto... 2 1.2

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

CONTENT MANAGMENT SYSTEMS

CONTENT MANAGMENT SYSTEMS CONTENT MANAGMENT SYSTEMS ESTRATTO DA: Ileana D'Incecco, Progettare la comunicazione web per organizzazioni non-profit con strumenti open source: ideazione e realizzazione del sito web della Casa delle

Dettagli

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Estensione di un sistema per la gestione semi-automatica di siti didattici con

Dettagli

Macchine per l elaborazione dell informazion e. Sistemi di Elaborazione delle Informazioni. Informatica II

Macchine per l elaborazione dell informazion e. Sistemi di Elaborazione delle Informazioni. Informatica II Macchine per l elaborazione dell informazion e Sistemi di Elaborazione delle Informazioni Informatica II Ing. Mauro Iacono Seconda Università degli Studi di Napoli Facoltà di Studi Politici e per l Alta

Dettagli

Sviluppo di applicazioni Internet: l'uso integrato di XML e Java

Sviluppo di applicazioni Internet: l'uso integrato di XML e Java UNIVERSITA' DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria - Sede di Modena Corso di Laurea in Ingegneria Infomatica Sviluppo di applicazioni Internet: l'uso integrato di XML e Java realizzata

Dettagli

PHP ), con l'introduzione di un middleware quale Zend Framework a

PHP ), con l'introduzione di un middleware quale Zend Framework a Quella che segue è la rappresentazione ad alto livello dell'architettura proposta per il sistema in corso di realizzazione. In questa fase non vengono ancora affrontate le tematiche di sicurezza, load

Dettagli

Romecamp 2008 Roma 21 e 22/11/2008

Romecamp 2008 Roma 21 e 22/11/2008 Romecamp 2008 Roma 21 e 22/11/2008 L'Open Source entra nell'e Learning Paolo Gatti http://www.paologatti.it E learning: introduzione Per e learning si intende la possibilità di imparare sfruttando la rete

Dettagli

Modulo 1: Motori di ricerca

Modulo 1: Motori di ricerca Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Antivirus Personal firewall Tecnologie delle reti di calcolatori Servizi

Dettagli

Basi di dati. Basi di dati = database. Basi di dati

Basi di dati. Basi di dati = database. Basi di dati Basi di dati Da leggere: Cap. 6 Sawyer, Williams (testo A) Basi di dati = database Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi -> oggi anche

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

Dettagli

Report on Demand : Libreria Java open-source per offrire servizi di reportistica all interno delle applicazioni web sviluppate dall I.Z.S. A. e M.

Report on Demand : Libreria Java open-source per offrire servizi di reportistica all interno delle applicazioni web sviluppate dall I.Z.S. A. e M. Report on Demand : Libreria Java open-source per offrire servizi di reportistica all interno delle applicazioni web sviluppate dall I.Z.S. A. e M. di Luigi Possenti, Elio Malizia, Daniele Zippo, Patrizia

Dettagli

Breve descrizione del prodotto

Breve descrizione del prodotto Breve descrizione del prodotto 1. Il software AquaBrowser Library...2 1.1 Le funzioni di Search Discover Refine...3 1.2 Search: la funzione di ricerca e di presentazione dei risultati...3 1.2.1 La configurazione

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione al Web WWW World Wide Web CdL Economia A.A. 2012/2013 Domenica Sileo Università degli Studi della Basilicata Introduzione al Web : WWW >> Sommario Sommario 2 n World

Dettagli

MetaMAG METAMAG 1 IL PRODOTTO

MetaMAG METAMAG 1 IL PRODOTTO METAMAG 1 IL PRODOTTO Metamag è un prodotto che permette l acquisizione, l importazione, l analisi e la catalogazione di oggetti digitali per materiale documentale (quali immagini oppure file di testo

Dettagli

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270) Corsi di Laurea Ingegneria Informatica Ord. 270 A.A. 2012-2013 Prof. Vincenza Carchiolo vincenza.carchiolo@dieei.unict.it Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord.

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA Elaborato di Tecnologie del Software per Internet JMSWEB 2 SISTEMA PER LO SCAMBIO DI MESSAGGI TRA APPLICAZIONI

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Integrazione di tecnologie XML nella realizzazione di siti Web

Integrazione di tecnologie XML nella realizzazione di siti Web Integrazione di tecnologie XML nella realizzazione di siti Web Andrea Marchetti(IAT CNR) Massimo Martinelli(IEI CNR) Bologna 15 Giugno 1999 XML I Giornata di studio Presentazione della presentazione Metapresentazione

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

ADA. E learning e open source

ADA. E learning e open source 1 ADA. E learning e open source ADA 1.7.1 Come cresce un Ambiente Digitale per l'apprendimento open source Maurizio Graffio Mazzoneschi 2 Cos'è il software libero Libertà 0, o libertà fondamentale: la

Dettagli

con ANTLR tesi di laurea Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505

con ANTLR tesi di laurea Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505 tesi di laurea con ANTLR Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505 Obiettivo Analisi statica di codice sorgente, realizzato in javascript,

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

Da Settembre 2010 Oggi. Go Project srl via Alessandria 88, Roma. Inail Istituto Nazionale Infortuni sul Lavoro

Da Settembre 2010 Oggi. Go Project srl via Alessandria 88, Roma. Inail Istituto Nazionale Infortuni sul Lavoro F O R M A T O E U R O P E O P E R I L C U R R I C U L U M V I T A E Qualifica: INFORMAZIONI PERSONALI Nome Nazionalità italiana Data di nascita 08/10/1974 ESPERIENZA LAVORATIVA Date (da a) Da Settembre

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Whorkshop luglio 2015

Whorkshop luglio 2015 Whorkshop luglio 2015 Argomenti dell evento Privacy e dematerializzazione 1/21 www.ambrostudio.it Perché la Privacy e la dematerializzazione? Cambia l atteggiamento nella gestione dei documenti E più un

Dettagli

Laboratorio di Progettazione e Sviluppo di Sistemi Informatici

Laboratorio di Progettazione e Sviluppo di Sistemi Informatici 1 Laboratorio di Progettazione e Sviluppo di Sistemi Informatici 2 Laboratorio di Progettazione e Sviluppo di Sistemi Informatici Parte del corso intersettoriale "Laboratorio di Progettazione e Sviluppo

Dettagli

AVVISO n. 09/2012: Procedura comparativa per il conferimento di due incarichi di collaborazione coordinata e continuativa per il profilo junior

AVVISO n. 09/2012: Procedura comparativa per il conferimento di due incarichi di collaborazione coordinata e continuativa per il profilo junior AVVISO n. 09/2012: Procedura comparativa per il conferimento di due incarichi di collaborazione coordinata e continuativa per il profilo junior di Analista programmatore per lo sviluppo di software per

Dettagli

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript tesi di laurea di difetti all interno di codice Javascript Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Domenico Amalfitano candidato Vincenzo Riccio Matr.

Dettagli

ELEMENTI DI INFORMATICA GIURIDICA

ELEMENTI DI INFORMATICA GIURIDICA Università degli Studi di Napoli «Federico II» Scuola Specializzazione Professioni Legali ELEMENTI DI INFORMATICA GIURIDICA Avv. Delia Boscia 18 marzo 2015 IL RAPPORTO TRA INFORMATICA E DIRITTO HA DATO

Dettagli

Università degli studi di Messina

Università degli studi di Messina Università degli studi di Messina Facoltà di Ingegneria Corso di laurea in Ingegneria Elettronica Tesina di Sistemi di Telecomunicazione Prenotazione Esami con CSLU Speech - toolkit Docente: Prof. Salvatore

Dettagli

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

Dettagli

Outline. Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare Per Resistere. Sviluppi futuri. www.informarexresistere.

Outline. Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare Per Resistere. Sviluppi futuri. www.informarexresistere. Outline Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare Per Resistere www.informarexresistere.fr Sviluppi futuri Outline Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare

Dettagli

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS 1 Tecnologia delle BD: perché studiarla? File e indici I DBMS offrono i loro servizi in modo "trasparente": per questo abbiamo potuto finora ignorare molti aspetti realizzativi abbiamo considerato il DBMS

Dettagli

Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB:

Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB: Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB: un caso di studio Anno accademico 2009 / 2010 Relatore Ch.mo prof. Porfirio Tramontana Correlatore Ch.mo Ing. Domenico

Dettagli

La ricerca delle informazioni nei siti web di Ateneo con Google Search Appliance Progetto, implementazione e sviluppi

La ricerca delle informazioni nei siti web di Ateneo con Google Search Appliance Progetto, implementazione e sviluppi La ricerca delle informazioni nei siti web di Ateneo con Google Search Appliance Progetto, implementazione e sviluppi Il progetto del sistema di ricerca delle informazioni L'esigenza del sistema di ricerca

Dettagli

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Lezione 8. Motori di Ricerca

Lezione 8. Motori di Ricerca Lezione 8 Motori di Ricerca Basi di dati Un campo prevalente dell applicazione informatica è quello costituito dall archiviazione e dalla gestione dei dati (basi di dati). Sistema Informativo. Un sistema

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

@Giusi Castagnetta tutti i diritti riservati. Seo e contenuti video

@Giusi Castagnetta tutti i diritti riservati. Seo e contenuti video @Giusi Castagnetta tutti i diritti riservati Seo e contenuti video SEO facile Quando cerchiamo qualcosa sui motori di ricerca, ci aspettiamo di trovare per primi i risultati migliori, cioè quelli più pertinenti

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Basi di dati 1 Introduzione ai sistemi di basi di dati Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Introduzione ai sistemi di basi

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

RICERCA DELL INFORMAZIONE

RICERCA DELL INFORMAZIONE RICERCA DELL INFORMAZIONE DOCUMENTO documento (risorsa informativa) = supporto + contenuto analogico o digitale locale o remoto (accessibile in rete) testuale, grafico, multimediale DOCUMENTO risorsa continuativa

Dettagli

Strutture di accesso ai dati

Strutture di accesso ai dati Strutture di accesso ai dati 1 A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Gestore dei metodi di accesso 2 E il modulo del DBMS che trasforma il piano di esecuzione

Dettagli

Database. Informatica 2014-2015 - Dott. Muzzioli Valerio. 1 di 1. Argomenti trattati: Nozioni di base: i database, i modelli di dati, DBMS

Database. Informatica 2014-2015 - Dott. Muzzioli Valerio. 1 di 1. Argomenti trattati: Nozioni di base: i database, i modelli di dati, DBMS Database Argomenti trattati: Nozioni di base: i database, i modelli di dati, DBMS Database relazionali: tabelle, campi, record; indici di taballa Chiavi primarie ed esterne Relazioni tra tabelle: definizione

Dettagli

1. FINALITA DELLA DISCIPLINA

1. FINALITA DELLA DISCIPLINA Ministero dell Istruzione dell Università e della Ricerca LICEO SCIENTIFICO STATALE Donato Bramante Via Trieste, 70-20013 MAGENTA (MI) - MIUR: MIPS25000Q Tel.: +39 02 97290563/4/5 Fax: 02 97220275 Sito:

Dettagli

Applicazione: SIPER Servizi In linea per il PERsonale

Applicazione: SIPER Servizi In linea per il PERsonale Riusabilità del software - Catalogo delle applicazioni Gestione Personale Applicazione: SIPER Servizi In linea per il PERsonale Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei

Dettagli

Plone all Università di Ferrara - Case Study

Plone all Università di Ferrara - Case Study Plone all Università di Ferrara - Case Study Francesco Margutti, Cesare Stefanelli, Luca Tebaldi Università di Ferrara, Italia {francesco.margutti, cesare.stefanelli, luca.tebaldi}@unife.it 1. L Università

Dettagli

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni LA PROGETTAZIONE DI BASI DI DATI Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni La progettazione dei dati è l attività più importante Per progettare i dati al

Dettagli

Istituto Comprensivo di Cologna Veneta Curricolo Scuola Primaria a.s. 2015/2016

Istituto Comprensivo di Cologna Veneta Curricolo Scuola Primaria a.s. 2015/2016 Traguardi per lo sviluppo delle competenze al termine della scuola primaria L allievo partecipa a scambi comunicativi (conversazioni, discussioni, di classe o di gruppi) con compagni e insegnanti rispettando

Dettagli

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi) Via Firenze, 51 - Tel. 0587/213400 - Fax 0587/52742 http://www.itcgfermi.it E-mail: mail@itcgfermi.it PIANO DI LAVORO (a.s. 2014/2015)

Dettagli

Ricerca di informazioni nelle banche dati giuridiche

Ricerca di informazioni nelle banche dati giuridiche Informatica giuridica A.A. 2005-06 Ricerca di informazioni nelle banche dati giuridiche Parte I Avv. Chiara Giovanna Bernardi bernardi@cirfid.unibo.it Definizioni NEL LINGUAGGIO COMUNE: Data base = base

Dettagli

Trani (BA) Via Bari, 74-70010 Capurso (BA) PPLNTN83E01L328C

Trani (BA) Via Bari, 74-70010 Capurso (BA) PPLNTN83E01L328C Curriculum Vitae ANTONIO POPOLIZIO Cell: 329 8830256 e mail: antonio.popolizio@yesoft.it Dati personali Data di nascita: 01/05/1983 Luogo di nascita: Residenza e Domicilio: Codice fiscale: Trani (BA) Via

Dettagli

XML. Parte VI - Introduzione e nozioni fondamentali di sintassi. XML: Extensible Markup Language:

XML. Parte VI - Introduzione e nozioni fondamentali di sintassi. XML: Extensible Markup Language: XML Parte VI - Introduzione e nozioni fondamentali di sintassi XML: cosa è XML: Extensible Markup Language: è un linguaggio che consente la rappresentazione di documenti e dati strutturati su supporto

Dettagli

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

Dettagli

UN SISTEMA DI ARCHIVI AUDIOVISIVI. Accesso on line ai metadati e ai dati

UN SISTEMA DI ARCHIVI AUDIOVISIVI. Accesso on line ai metadati e ai dati scaletta per seminario 14-12-05 UN SISTEMA DI ARCHIVI AUDIOVISIVI sul tema Accesso on line ai metadati e ai dati a cura di Francesco Baldi Discoteca di Stato e Museo dell Audiovisivo novembre 2005 Quadro

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

Dettagli

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea Università degli studi Roma Tre Dipartimento di informatica ed automazione Tesi di laurea Reingegnerizzazione ed estensione di uno strumento per la generazione di siti Web Relatore Prof. P.Atzeni Università

Dettagli