Progetto e realizzazione di un sistema per la generazione di dialoghi in linguaggio naturale UNIVERSITA DEGLI STUDI DI GENOVA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progetto e realizzazione di un sistema per la generazione di dialoghi in linguaggio naturale UNIVERSITA DEGLI STUDI DI GENOVA"

Transcript

1 UNIVERSITA DEGLI STUDI DI GENOVA Corso di Laurea Magistrale in Ingegneria Elettronica Tesi di Laurea Progetto e realizzazione di un sistema per la generazione di dialoghi in linguaggio naturale Relatore: Chiar. mo Prof. Ing. Alessandro De Gloria Candidato: Daniele Mori Anno Accademico 2010/ marzo 2012

2 Alla Commissione di Laurea e di Diploma Alla Commissione Tirocini e Tesi Sottopongo la tesi redatta dallo studente Daniele Mori dal titolo: Progetto e realizzazione di un sistema per la generazione di dialoghi in linguaggio naturale Ho esaminato, nella forma e nel contenuto, la versione finale di questo elaborato scritto, e propongo che la tesi sia valutata positivamente. Il Relatore Accademico Chiar. mo Prof. Ing. Alessandro De Gloria i

3 Design and implementation of a system for natural language dialogues generation Abstract This thesis concerns the design and implementation of a system for natural language dialogues generation. The realization of this project aims at using recent technologies (ASP.NET MVC, Entity Framework, Windows Communication Foundation) to build a system which could be defined as NPCs As A Service. The system allows users to remotely access the server which was developed and to talk in natural language to Non Player Characters, hence the definition of the phrase NPCs As A Service. In order to realize such a behavior, algorithms of Natural Language Processing and techniques of Information Retrieval have been studied and implemented in the system. Finally tests were done in which users had the task of interacting with the system and evaluating it. The main goal of the tests was to understand the perception of the user about this tool, when used for knowledge acquisition. Other goals of the tests were about understanding the effective knowledge gained by using this system in comparison with a traditional way of learning. ii

4 Prefazione Questa tesi riguarda la progettazione e lo sviluppo di un sistema per la generazione di dialoghi in linguaggio naturale. La realizzazione di questo progetto è orientata all utilizzo di alcune delle più recenti tecnologie (ASP.NET MVC, Entity Framework, Windows Communication Foundation), usate per realizzare un sistema definibile come Npc As A Service. Il sistema consente agli utenti di interagire in modo remoto con il server che è stato sviluppato e di dialogare in linguaggio naturale con Agenti Conversazionali o più in generale con Personaggi Non Giocanti. Al fine di realizzare un sistema di questo tipo, sono stati studiati ed implementati nel progetto algoritmi di Natural Language Processing e tecniche di Information Retrieval. Sono stati infine condotti dei test su un campione di utenti al fine di valutare il sistema. L obiettivo principale dei test ha riguardato la percezione degli utenti della validità di questo strumento, se usato per finalità didattiche e di apprendimento. Altri obiettivi del test sono stati la comprensione dell effettiva conoscenza acquisita con l utilizzo di questo sistema, in comparazione con modalità di apprendimento tradizionali. iii

5 Indice Simboli e abbreviazioni 1 Introduzione 3 1 Stato dell arte e lavori precedenti 8 2 Il progetto Introduzione al progetto Struttura logica del sistema Applicazione Servizi Web Services Sistema Strumento di Authoring DAL / DataBase Tecnologie utilizzate WCF Windows Communication Foundation ASP.NET MVC Entity Framework 32 3 Algoritmo adottato Note generali Modelli di Text Retrieval Naive Bayes Text Classification 46 4 Implementazione del sistema Architettura del sistema Modulo di accesso ai dati DbContext Unit Of Work e Repository Pattern Classe ausiliaria DbQuerier 54 iv

6 4.2.4 Inizializzazione dei dati per finalità di testing Modulo di logica del sistema Strategy Manager Conversation Monitor Tactics Manager Application Manager Accesso al sistema: Web Services con WCF 63 5 User Tests Introduzione all applicazione Implementazione dell applicazione Metodologia dei test svolti Risultati ottenuti e valutazione dei risultati Sondaggio valori medi dei giudizi espressi dagli utenti Sessione di gioco punteggi medi registrati durante il test Quiz risultati medi relativi alla conoscenza acquisita Sondaggio risultati medi relativi alla conoscenza acquisita 75 6 Conclusioni e sviluppi futuri Conclusioni Sviluppi futuri 80 Appendice 1 82 Appendice 2 84 Appendice 3 86 Appendice 4 87 Appendice 5 88 v

7 Simboli e abbreviazioni CA NPC NLP SG DMS IR TR LM SAAS DAL IAP WCF URI MTOM Conversational Agent Non Player Character Natural Language Processing Serious Games Dialogue Management Systems Information Retrieval Text Retrieval Language Modeling Software As A Service Data Access Layer Interrogative Adjective/Pronoun Windows Communication Foundation Uniform Resource Identifier Message Transmission Optimization Mechanism 1

8 SOAP CLR MVC SRP ORM POCO TF IDF PRP MAP Simple Object Access Protocol Common Language Runtime Model, View, Controller Single Responsibility Principle Object Relational Mapper Plain Old CLR Object Term-Frequency Inverse Document Frequency Probability Ranking Principle Maximum A Priori 2

9 Introduzione La tesi riguarda la realizzazione di un sistema software per la gestione di Agenti Conversazionali (CA o Conversational Agents) per la realizzazione di dialoghi con l utente in linguaggio naturale. Scopo del lavoro in oggetto è di realizzare un implementazione di quanto teorizzato nell articolo [1]. Gli Agenti Conversazionali sono personaggi virtuali, controllati dal computer, capaci di dialogare con gli utenti in linguaggio naturale. I linguaggi naturali sono definiti nella filosofia del linguaggio come le lingue la cui formazione si sia sviluppata nel corso della storia (come ad esempio l italiano o l inglese); ad essi si contrappongono i linguaggi artificiali, la cui origine è intenzionale e orientata alla soddisfazione di scopi ben precisi (prendiamo ad esempio l Esperanto o i linguaggi di programmazione). Studi precedenti [2, 3, 4, 5] hanno dimostrato che la presenza di Agenti Conversazionali in applicazioni di realtà virtuale per fini didattici o di addestramento migliora la percezione di realismo per l utente, così come il suo coinvolgimento emotivo. Il sistema realizzato ha lo scopo di agevolare l utente nell acquisizione della conoscenza relativa ad argomenti specifici nel corso dell interazione con Personaggi Non Giocanti (NPC o Non-Player Characters). In aggiunta, il sistema mette a disposizione un interfaccia per l authoring degli NPC di utilizzo semplice ed immediato, che facilita la manutenzione e che non richiede all autore conoscenze specifiche relative alla NLP (Natural Language Processing o Elaborazione del Linguaggio Naturale) o, in generale, nell ambito della computer science. 3

10 L interesse nei confronti dei Serious Games (SG) da parte della comunità scientifica è crescente [5, 6, 7]. I Serious Games sono applicazioni di realtà virtuale che fanno uso delle medesime tecniche comunicative e dei meccanismi tipici dei videogiochi tradizionali, differenziandosi però da questi ultimi per quanto riguarda lo scopo che non è meramente ludico, bensì educativo. Nel corso degli ultimi anni si è potuto assistere al progressivo affermarsi dei Serious Games per quanto riguarda la formazione e l apprendimento nei contesti più disparati. La ragione per cui si sta affermando la didattica attraverso l impiego di tali applicazioni interattive in realtà simulata è da individuarsi nel conseguente coinvolgimento sperimentato dall utente, al quale viene richiesto di risolvere problemi secondo le dinamiche tipiche dei videogiochi. Un interazione di questo tipo, in cui l utente è tenuto a sperimentare determinati argomenti di studio in modo concreto e pratico e non più semplicemente teorico, implica un apprendimento più profondo attraverso il paradigma comunemente molto apprezzato del learning by doing, che stimola la concentrazione, l attenzione e la memoria. Nei Serious Games l utente è tenuto ad affrontare delle sfide, a risolvere problemi e come conseguenza risulta essere più ricettivo nei confronti del messaggio che si vuole comunicargli. Ci sono numerosi altri vantaggi. La ripetibilità delle esperienze a parità di condizioni iniziali consente all utente di imparare dai propri errori; allo stesso tempo la ripetizione di una sessione di addestramento non ha alcun costo rispetto invece al caso di simulazioni e addestramenti reali. Emerge quindi chiaramente quale sia il grande potenziale didattico dei Serious Game; è quindi comprensibile l attenzione ed essi dedicata da parte di quella componente della comunità scientifica che a livello di ricerca si occupa di studiare i modi per rendere questo tipo di esperienze sempre più simili alla realtà, sia dal punto di vista della simulazione virtuale del mondo reale, sia dal punto di vista dell esperienza che viene percepita dall utente. Lo scopo è quindi di rendere più efficace l apprendimento mediante questo tipo di forma didattica. La particolare tipologia di Serious Games che prendiamo in considerazione nel lavoro in oggetto riguarda le applicazioni in cui risultino essere centrali e di grande rilievo le modalità di interazione umana dell utente con il sistema. Prendiamo perciò in considerazione giochi in cui il compito affidato all utente sia di acquisire conoscenza mediante l interazione con il sistema; al giocatore viene lasciata la libertà di esplorare liberamente lo spazio della conoscenza ( learning space ), senza fornire alcuna 4

11 informazione su come tale spazio sia strutturato. E quindi lampante che la principale preoccupazione di chi fosse incaricato di sviluppare un tale sistema dovrebbe essere di impedire all utente di perdere l orientamento nello spazio della conoscenza, evitando però al contempo di limitarne la libertà di esplorazione, che rappresenta, appunto, uno dei fattori determinanti per mantenere elevati i livelli di attenzione e di coinvolgimento del giocatore. E quindi altrettanto chiaro che, a tal fine, siano le stesse modalità di interazione umana, attraverso una comunicazione in linguaggio naturale, a giocare il ruolo di catalizzatore nel trasferimento della conoscenza dei contenuti, garantendo, da questo punto di vista, un elevato livello di realismo. L interesse in ambito accademico nei confronti di Serious Games caratterizzati da questo tipo di interazione è considerevole ed è dimostrato anche dall elevato numero di pubblicazioni che affrontano specificatamente tali problematiche [1, 2, 5, 7]. I DMS (Dialog Management Systems o Sistemi per la Gestione di Dialoghi) sono sistemi che fanno uso di testo o di immagini per consentire un dialogo in linguaggio naturale con l utente. L utilizzo di Agenti Conversazionali e di DMS si è rivelato promettente in diverse applicazioni, soprattutto nel caso di ambienti virtuali in cui l immedesimazione in situazioni di vita reale risulti centrale, come ad esempio nel caso di applicazioni il cui scopo sia quello di imparare una lingua, esplorare un ambiente [6], interagire con persone di una cultura differente [2] o con persone con comportamenti diversi. Possiamo citare l esempio di Tactical Iraqi [3] che è un videogioco pensato per velocizzare l apprendimento dell utente che studia la lingua araba. E impiegato in campo militare per consentire un rapido dislocamento di soldati in delicate situazioni tattiche. Un altro esempio è dato da Virtual Iraq [3], una simulazione in realtà virtuale il cui scopo è di alleviare gli effetti dei disturbi a seguito di stress post-traumatico, riscontrato in veterani di combattimento. Gli autori affermano che questi mondi in realtà virtuale consentono agli utenti di sviluppare un alfabetizzazione culturale altrimenti mancante. Tecniche analoghe [4], applicate per l addestramento di personale militare statunitense sono state accolte positivamente a seguito delle conoscenze acquisite in campo linguistico e culturale, e successivamente applicate con efficacia. In queste applicazioni, i principali meccanismi che hanno consentito un efficace trasferimento di conoscenze verso l utente si basavano sulla tecnologia dell intelligenza artificiale conversazionale, che ha consentito 5

12 agli utenti di stabilire conversazioni con Personaggi Non Giocanti. Gli utenti si sono trovati a dover assolvere il compito di parlare il linguaggio del personaggio e di adeguare i propri comportamenti alla sua cultura al fine di avere successo nel gioco. Altre applicazioni in cui sono stati impiegati sistemi di gestione del dialogo riguardano lo sviluppo di narrativa interattiva. Un esempio particolarmente emblematico è Façade [8], una storia interattiva, nel corso della quale il giocatore è tenuto ad interagire liberamente con gli NPC in linguaggio naturale. Essi reagiscono agli input dell utente in modo tale da dar vita ad una trama narrativa complessa ed articolata, in cui il finale non è unico e la storia può risolversi in modo imprevedibile. I DMS sono notoriamente complessi nella loro gestione e manutenzione da parte degli autori dei dialoghi, questo fatto può spiegare il motivo per cui questi sistemi non siano utilizzati ampiamente in applicazioni comuni. Possiamo inoltre aggiungere che questi sistemi genericamente non soddisfano sempre i requisiti di base dei Serious Games, i quali, per mantenere sostenuto il ritmo di gioco ed evitare rallentamenti nell avanzamento verso gli obiettivi, prevedono interazioni con scambi di battute brevi e rapide tra l avatar del giocatore e l NPC. Come conseguenza di questo fatto, il lavoro di questa tesi è stato realizzato con l intento di rispettare ben determinate caratteristiche. Ogni NPC incorpora infatti una ben precisa unità di conoscenza; e questo fatto risulta essere plausibile e realistico. Lo scopo dell interazione con gli NPC è di rispondere alle domande dell utente, il quale ha il compito di far emergere dal dialogo la conoscenza specifica di quel NPC mediante le proprie domande. Il contesto in cui è svolto il dialogo deve, inoltre, essere un elemento di rilievo per dedurre la caratterizzazione del personaggio, e di conseguenza per identificare la sua conoscenza specifica. Il sistema deve infine essere facilmente editabile per l autore degli NPC; esso deve ovviamente essere anche semplice da mantenere. Risulta quindi importante garantire che all autore non debba essere richiesta, a tal fine, alcuna conoscenza relativa alla teoria alla base dell elaborazione del linguaggio naturale, né tantomeno devono essere necessarie delle conoscenze specifiche nell ambito della Computer Science. Tali requisiti vincolano, per certi aspetti, le funzionalità del sistema finale, il quale, quindi, non espone possibilità di interazione di tipo generico con il sistema (il sistema, cioè, non chiacchiera con l utente). Ciò è tuttavia in accordo con l obiettivo del progetto, che è esattamente quello di stabilire un tipo di interazione ben preciso, che preveda dialoghi 6

13 brevi e concisi, attraverso i quali l utente possa ottenere quegli indizi necessari ad ampliare il proprio bagaglio di conoscenze con quanto immagazzinato nella memoria dell NPC. La tipologia di dialogo che prende forma da questa descrizione è d altra parte in linea con i meccanismi di gioco tipici dei Serious Games o più in generale dei videogiochi. I videogiochi infatti richiedono che le interazioni con gli NPC siano limitate; così come risulta essere al contempo auspicabile che i dialoghi testuali o parlati siano brevi. I videogiochi e di conseguenza anche i Serious Games, non vogliono essere, in generale, romanzi interattivi. Bisogna infatti far fronte al fatto che la lettura dei testi in un videogioco venga solitamente percepita come un momento noioso e che quindi andrebbe evitato qualora non fosse strettamente necessario. I giocatori sono tipicamente mossi dal bisogno di progredire rapidamente nel gioco e ottenere risultati in termini di punteggio; la lettura invece è solitamente percepita come un fattore che rallenta il corso del gioco. D altra parte, però, non si può fare a meno di ricorrere a dialoghi, siano essi solo testuali o anche parlati, nel caso in cui i meccanismi di gioco si basino, per l appunto, sull interazione tra il giocatore ed il sistema, che è il caso che stiamo prendendo in considerazione nel lavoro in oggetto. Bisogna pertanto dare maggior rilievo nell applicazione ad aspetti quali l interattività del dialogo, che implica quindi il coinvolgimento del giocatore, e l integrazione di tale sistema di dialogo nei meccanismi che regolano gli avanzamenti nei progressi del gioco e nel punteggio. In sostanza, il concetto da tenere in maggior considerazione nello sviluppo di un sistema di questo tipo, deve riguardare il fatto che il nostro obiettivo debba essere quello di creare dialoghi brevi e concisi, finalizzati all estrazione della conoscenza specifica in possesso dell NPC. 7

14 Capitolo 1 Stato dell arte e lavori precedenti Da quanto emerge dallo scenario descritto nell introduzione risulta evidente come l interazione in linguaggio naturale tra l utente ed il sistema rappresenti un importante opportunità per arricchire le esperienze riscontrabili nell utilizzo di giochi, Serious Games o simulazioni. L utilizzo di sistemi di dialogo in linguaggio naturale è già stato sperimentato con successo in diverse applicazioni, e la diffusione di giochi che facciano uso appieno delle tecniche di NLP sembra essere ormai una questione di tempo [9]. Un elemento di riflessione, sotto questo aspetto, può riguardare il mercato dei videogiochi e delle console. Nel corso degli ultimi anni si è potuta osservare la spinta da pa rte dell industria videoludica verso meccanismi che presupponessero interazioni progressivamente più vicine all interazione umana. L intento perseguito è di ridurre drasticamente, se non di eliminare del tutto, l interazione tradizionale basata su pulsanti o controller, e di rendere invece l esperienza il più naturale possibile per l utente. Il commercio di dispositivi di controllo, con i quali il giocatore possa sperimentare un interazione fisica, sta spingendo il mondo dei videogiochi in questa direzione. Per il momento pare essersi affermata con successo un interazione basata prevalentemente sul riconoscimento di movimenti e gestualità, ma si stanno aprendo degli spazi per l inserimento in questo mercato di innovazioni tecnologiche anche per quanto riguarda l integrazione del linguaggio nei videogiochi. Un esempio a sostegno di questa affermazione può essere individuato nelle funzionalità del dispositivo Kinect di Microsoft. Esso è prevalentemente orientato al riconoscimento dei movimenti del giocatore, ma è 8

15 anche dotato di un sistema di speech recognition, che riconosce i comandi vocali impartiti dall utente. L identificazione riguarda semplicemente un insieme di istruzioni codificate, senza l aggiunta di un analisi interpretativa di frasi complesse ed articolate; risulta tuttavia un fatto degno di nota per intuire come l introduzione di questa caratteristica manifesti l intento di ridurre il gap tra uomo e sistema informatico a vantaggio di un interazione che risulti sempre più naturale. Per quanto riguarda sistemi che implementino il riconoscimento e l elaborazione del linguaggio naturale, possiamo portare alcuni esempi di applicazioni che sono particolarmente emblematiche nel raffigurare l attuale stato dell arte in questa area di ricerca. Possiamo infatti citare il linguaggio AIML (Artificial Intelligence Mark-Up Language), il quale è uno strumento di authoring basato sul linguaggio XML. Esso implementa un complesso sistema di regole orientate alla definizione di pattern che rappresentano i modelli per possibili input dell utente che il sistema deve riconoscere per fornire una risposta adeguata, implementata a sua volta come template. I template possono, inoltre, fare riferimento anche ad altri pattern e tale meccanismo viene utilizzato per fornire la stessa risposta nel caso di domande diverse ma con lo stesso significato. I pattern inoltre possono essere definiti ricorrendo all utilizzo di metacaratteri, che consentono di introdurre nelle risposte parole non note a priori provenienti dalle domande, come ad esempio il nome dell utente. Considerando quindi questi fattori e considerando inoltre che si tratta di un linguaggio di livello relativamente basso, è evidente che la manutenzione del sistema risulti essere di utilizzo tutt altro che semplice per la definizione di personaggi con dialoghi articolati. A questo proposito possiamo infatti citare il caso di A.L.I.C.E. [10], un applicazione di chatterbot (cioè un Agente Conversazionale in grado di chiacchierare con l utente) basata sul linguaggio AIML. Gli ottimi risultati riconosciuti a questo programma sono testimoniati dal fatto che il software ha vinto per addirittura tre anni il premio Loebner, che è una competizione annuale in cui vengono esaminati diversi bot sottoponendoli al test di Turing. Ricordiamo che il test di Turing sancisce un criterio per stabilire il livello di un sistema di intelligenza artificiale; semplificando, il test di Turing risulta essere superato se un operatore umano non è in grado di stabilire se stia interagendo con un altro operatore umano oppure con un sistema di intelligenza artificiale. Il software A.L.I.C.E. ha potuto ottenere tali riconoscimenti a seguito dell attenta programmazione del 9

16 complesso sistema di regole con cui è stato descritto. E chiaro che una quantità così elevata di informazioni, tenute in considerazione anche le interdipendenze tra pattern differenti, è senza dubbio difficile da gestire per l autore nel caso fosse necessario estendere o modificare la knowledge base del sistema, in particolar modo se egli fosse carente delle conoscenze adeguate nel campo dell informatica. Un secondo esempio, molto significativo di applicazioni che implementino un DMS, può essere individuato nel precedentemente citato Façade, che è una storia interattiva in cui si comunica con due NPC dotati di un sistema di intelligenza artificiale orientata allo sviluppo del dialogo e della trama. Il giocatore impersona un ruolo, che lo vede ospite per una serata di una coppia sposata di sua conoscenza, cioè i due Personaggi Non Giocanti. L utente è quindi tenuto ad affrontare la crisi matrimoniale dei due amici, interagendo con loro liberamente, esplorando l ambiente e dialogando con loro in linguaggio naturale. La risoluzione del conflitto è imprevedibile e la conversazione può diramarsi fino a sfociare in diverse situazioni finali, che dipendono da come il giocatore interagisce con i due personaggi. Come nel caso precedente di A.L.I.C.E., anche questo gioco è stato realizzato implementando un complesso sistema di regole, che constano di 800 differenti template. La gestione dell interazione e dei dialoghi di Façade non ha come scopo la comprensione piena di quanto scritto dal giocatore. L intento è bensì di mantenere scorrevole lo svolgersi della narrazione, per cui anche in caso di mancata comprensione dell input dell utente, il flusso narrativo non viene interrotto e la storia viene forzata dal sistema a procedere comunque in qualche maniera. In effetti, gli input del giocatore, più che riconosciuti, nel senso della comprensione, vengono invece mappati in scene di discorso. Il sistema inoltre analizza le frasi dell utente mediante l applicazione di operatori booleani quali l OR (impiegato per verificare la presenza di insiemi di parole) o il NOT (per verificare l assenza di determinate parole). Façade inoltre fa uso del database semantico-lessicale WordNet per quanto concerne l identificazione di sinonimi. Citiamo infine Chatscript [11], che è anch esso un linguaggio per la definizione di Agenti Conversazionali. Con esso sono stati programmati i due chatterbot Suzette che ha vinto il premio Loebner nell edizione del 2010 della competizione [9] e Rosette che ha vinto il promeio Loebner nel Chatscript è stato progettato per favorire l estrazione del significato dalle frasi e fornisce una sintassi che può essere implementata facilmente, rafforzando quindi l aspetto di manutenzione del codice. Chatscript introduce nuovi tipi di 10

17 regole per la comprensione di schemi di linguaggio, tenendo in considerazione anche la punteggiatura. Esso inoltre fa uso di un sistema di raggruppamento dei contenuti per argomenti ( topic ), ogni topic racchiude un insieme complesso di regole che sono specifiche per gestire l interazione relativa a quel preciso argomento. Questo fatto facilita notevolmente l authoring rispetto ad AIML; basti confrontare le 120,000 regole di A.L.I.C.E. con il numero di regole che definiscono Suzette che è pari a 15,000 circa, mentre il più recente Rosette consta di poco meno di 10,000 regole. Le parole dell utente possono essere inoltre catturate ed utilizzate nelle risposte del bot facendo uso del sistema dei metacaratteri; ma da questo punto di vista si differenza in modo sostanziale da AIML in quanto è possibile definire delle specifiche regole che riguardano ad esempio il numero massimo di parole di cui può constare il metacarattere al fine di garantire una corrispondenza più precisa con il pattern. E contemplato poi, per i metacaratteri, un meccanismo di generalizzazione che si basa sulle ontologie del database semantico - lessicale WordNet, consentendo perciò la costruzione di schemi di significato più complessi. In aggiunta agli operatori booleani di AND, OR e NOT, il sistema consente anche di specificare se una o più parole debbano essere poste all inizio o alla fine di una frase oppure se possano essere presentate secondo un ordine qualsiasi. E possibile anche definire variabili allo scopo di registrare dati dagli input dell utente. Essendo infine Chatscript un linguaggio di scripting completo, esso consente anche la definizione di funzioni e di codice di controllo. Gli esempi riferiti rappresentano al meglio lo stato dell arte dei sistemi di gestione del linguaggio. Essi però risultano essere validi soprattutto per quanto riguarda la generazione di dialoghi realistico e general-purpose. Lo scopo di questo lavoro è invece, come abbiamo già avuto modo di affermare, quello di sviluppare dialoghi il cui scopo sia di fornire informazioni al giocatore limitatamente ad una particolare knowledge base. E stato pertanto ritenuto appropriato, a tal fine, esplorare altre tecniche, più caratteristiche dell ambito dell Information Retrieval (IR). Possiamo considerare di strutturare il nostro sistema in modo tale da risolvere il seguente problema: ogni Agente Conversazionale incorpora una ben precisa knowledge base, e ha un insieme di possibili risposte ( template ) ad altrettante domande che l utente potrebbe porre ( pattern ). Lo scopo del sistema dovrebbe quindi essere di catalogare le risposte 11

18 contenute nella memoria dell NPC attribuendo ad ognuna di esse un punteggio sulla base della pertinenza con la domanda posta dal giocatore. Il nostro problema può anche essere pensato in termini di Text Retrieval (TR). [12] fornisce una valida panoramica sulle tecniche di Text Retrieval e di NLP. Un problema di Text Retrieval rappresenta un caso particolare di un problema di Information Retrieval (IR), in cui il sistema mette in relazione una query dell utente con un insieme di oggetti appartenenti ad una collezione, e restituisce l insieme degli oggetti che soddisfano la query dell utente. Vi sono diversi approcci secondo i quali affrontare e risolvere un problema di TR; l approccio classico riguarda principalmente la valutazione della similarità tra due documenti mediante l applicazione dell operazione di prodotto scalare. L approccio probabilistico, invece, si basa sulla classifica dei documenti sulla base della loro probabilità di appartenere alla classe dei documenti rilevanti rispetto alla query dell utente. Un approccio più recente consiste nel Language Modeling (LM) [13], in cui si ordinano i documenti sulla base della probabilità di ottenere la query dell utente come estrazione di un campione generato casualmente dal linguaggio con cui è stato creato il documento. Nel terzo capitolo di questa trattazione verrà affrontato nuovamente e con il livello di dettaglio dovuto, il discorso relativo ai metodi secondo i quali affrontare un problema di Text Retrieval. Questo tipo di problema è stato infatti preso in considerazione al fine della determinazione dell algoritmo implementato del sistema; in effetti già da lungo tempo si è ritenuto che rafforzare il Text Retrieval con tecniche di NLP potesse portare benefici, nonostante però i risultati registrati fin ora non abbiano dimostrato di essere significativi. [14] Tra le principali problematiche relative a questo tipo di problemi, l analisi sintattica, è generalmente considerata importante allo scopo dell interpretazione. Il parsing, inteso come l identificazione della sintassi di una frase, si è rivelato, da questo punto di vista utile in svariati casi pratici [14]. Come uno dei principali riferimenti per il parsing statistico possiamo citare il corpus (cioè una collezione di testi) Penn Treebank [15], che consta di due milioni di testi annotati manualmente, in cui è evidenziato il parsing delle frasi. Un altro aspetto legato all Elaborazione del Linguaggio Naturale che può influire positivamente sulla risoluzione di un problema di Text Retrieval, riguarda l analisi lessicale [16]. Le relazioni lessicali sono infatti i fattori che maggiormente generano ambiguità nel testo [17]. A questo proposito una soluzione spesso adottata, prevede l utilizzo del database semantico - lessicale di WordNet, che è uno dei più conosciuti per la 12

19 lingua inglese. Esso raggruppa le parole in synset, che sono raggruppamenti di sinonimi e tiene memoria delle relazioni semantiche tra questi raggruppamenti. 13

Progetto e realizzazione di un sistema per la generazione di dialoghi in linguaggio naturale

Progetto e realizzazione di un sistema per la generazione di dialoghi in linguaggio naturale Progetto e realizzazione di un sistema per la generazione di dialoghi in linguaggio naturale Candidato: Daniele Mori Relatore: Chiar.mo Prof. Alessandro De Gloria Obiettivo Utilizzare tecniche NLP in contesti

Dettagli

Introduzione alla Linguistica Computazionale

Introduzione alla Linguistica Computazionale Introduzione alla Linguistica Computazionale Salvatore Sorce Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Ludici Adattati da Alessandro Lenci Dipartimento di Linguistica T. Bolelli

Dettagli

Progettazione e sviluppo di una composizione di servizi web

Progettazione e sviluppo di una composizione di servizi web Progettazione e sviluppo di una composizione di servizi web Progetto di Tecnologie dei Servizi I Alessandro Marrandino Matr. 739695 Sommario In questo documento è descritto il lavoro svolto per realizzare

Dettagli

Corso Sviluppatore servizi per il Web (WCF) Lezione 01

Corso Sviluppatore servizi per il Web (WCF) Lezione 01 01 Introduzione Introduzione alla tecnologia WCF Premessa Il corso su WCF di cui state leggendo la prima lezione, vi guiderà alla scoperta di questa nuova tecnologia introdotta da Microsoft per venire

Dettagli

Semantica: un sistema per l indicizzazione, il retrieval semantico di learning objects e la generazione automatica di corsi didattici

Semantica: un sistema per l indicizzazione, il retrieval semantico di learning objects e la generazione automatica di corsi didattici Tesi di laurea Semantica: un sistema per l indicizzazione, il retrieval semantico di learning objects e la generazione automatica di corsi didattici Anno Accademico 2007/2008 Relatori Ch.mo prof. Angelo

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

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Web service Hello world con Visual Studio 2012 Si tratta di un semplice esempio di web service, infatti come tutti I programmi

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

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO Standard tecnici Gli standard tecnici di riferimento adottati sono conformi alle specifiche e alle raccomandazioni emanate dai principali

Dettagli

Manuale di Integrazione IdM-RAS

Manuale di Integrazione IdM-RAS IdM-RAS Data: 30/11/09 File: Manuale di integrazione IdM-RAS.doc Versione: Redazione: Sardegna IT IdM-RAS Sommario 1 Introduzione... 3 2 Architettura del sistema... 4 2.1 Service Provider... 4 2.2 Local

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

DESIGN PATTERN ESERCITAZIONE UML E DP INGEGNERIA DEL SOFTWARE. A quali pattern si riferiscono i tre schemi?

DESIGN PATTERN ESERCITAZIONE UML E DP INGEGNERIA DEL SOFTWARE. A quali pattern si riferiscono i tre schemi? ESERCITAZIONE UML E DP INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 rcardin@math.unipd.it DESIGN PATTERN A quali pattern

Dettagli

Il test di Turing. Seminario. Ester Dalvit. 22 marzo 2005. Il test di Turing p. 1/1

Il test di Turing. Seminario. Ester Dalvit. 22 marzo 2005. Il test di Turing p. 1/1 Il test di Turing Seminario Ester Dalvit 22 marzo 2005 Il test di Turing p. 1/1 Intelligenza artificiale Una macchina compie in modo efficiente e veloce attività come eseguire calcoli aritmetici Il test

Dettagli

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Sistema informativo per la gestione dei processi

Dettagli

Interrogazione strutturata di triple RDF estratte dal linguaggio naturale

Interrogazione strutturata di triple RDF estratte dal linguaggio naturale UNIVERSITA DEGLI STUDI DI CAGLIARI FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica Interrogazione strutturata di triple RDF estratte dal linguaggio naturale Candidato:

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

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

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

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

Automatic Ontology-Based Knowledge Extraction from Web Documents

Automatic Ontology-Based Knowledge Extraction from Web Documents Automatic Ontology-Based Knowledge Extraction from Web Documents 5 gennaio 2009 1 Introduzione Al ne di ottenere un eettivo WEB semantico bisogna essere in grado di costruire servizi che consentano l'estrazione

Dettagli

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 1 Introduzione all informatica: algoritmi, linguaggi e programmi Indice 1. Introduzione 2. Risoluzione automatica di problemi - Algoritmi

Dettagli

Universal Resource Identifier (URI) Autore slide: Fabio Vitali

Universal Resource Identifier (URI) Autore slide: Fabio Vitali Universal Resource Identifier (URI) Autore slide: Fabio Vitali 1 Introduzione Esaminiamo: Gli Universal Resource Identifier (URI) 2 URI Gli URI (Universal Resource Identifier) sono una sintassi usata in

Dettagli

BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei

BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei Corso di Laurea Specialistica in Ingegneria Informatica Reti di Calcolatori LS prof. Antonio Corradi BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei di Emanuele Crescentini

Dettagli

CAPITOLO 10 - TECNOLOGIA ASP.NET - WEB FORM

CAPITOLO 10 - TECNOLOGIA ASP.NET - WEB FORM INTRODUZIONE Nel capitolo 5, dedicato all ambiente di sviluppo, si è descritto come implementare un progetto Web tramite lo strumento di sviluppo Microsoft Visual Studio 2010. Un progetto web (o sito web)

Dettagli

Architetture Applicative Il Web

Architetture Applicative Il Web Architetture Applicative Il Web Alessandro Martinelli alessandro.martinelli@unipv.it 18 Marzo 2014 Architetture Architetture Web L Architettura Client-Server HTTP Protocolli di Comunicazione Fondamenti

Dettagli

1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org

1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org 1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org Prefazione. Da Hello World a Hello World Wide Web. Hello World è la prima frase stampata a video dal primo programma di esempio scritto

Dettagli

Learning by Playing: nn nuovo approccio alla formazione con Moodle. Giorgio Manfredi - Occambee Srl. giorgio.manfredi@occambee.com

Learning by Playing: nn nuovo approccio alla formazione con Moodle. Giorgio Manfredi - Occambee Srl. giorgio.manfredi@occambee.com Learning by Playing: nn nuovo approccio alla formazione con Moodle Giorgio Manfredi - Occambee Srl giorgio.manfredi@occambee.com MoodleMoot - Padova 20-21 giugno 2014 Università degli Studi di Padova,

Dettagli

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 White paper Novembre 2007 Per informazioni aggiornate, visitare l indirizzo www.microsoft.com/italy/vstudio È possibile che a questo

Dettagli

BASI DI DATI I Lezione n 2 25/09/2009

BASI DI DATI I Lezione n 2 25/09/2009 BASI DI DATI I Lezione n 2 25/09/2009 Fumarola Roberta, Galeano Antonio Andrea Linguaggio di modellazione Insieme di simboli e regole atto a descrivere la struttura e le funzionalità di un Database prima

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

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

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI 1 Web Link Monitor... 2 2 Database Browser... 4 3 Network Monitor... 5 4 Ghost Site... 7 5 Copy Search... 9 6 Remote Audio Video

Dettagli

Processi di Business e Sistemi di Gestione di Workflow: concetti di base. Prof. Giancarlo Fortino g.fortino@unical.it

Processi di Business e Sistemi di Gestione di Workflow: concetti di base. Prof. Giancarlo Fortino g.fortino@unical.it Processi di Business e Sistemi di Gestione di Workflow: concetti di base Prof. Giancarlo Fortino g.fortino@unical.it Introduzione Le aziende devono modificare la loro organizzazione per cogliere le nuove

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

Enrico Fagnoni BOTK IN A NUTSHELL

Enrico Fagnoni <e.fagnoni@e-artspace.com> BOTK IN A NUTSHELL Enrico Fagnoni BOTK IN A NUTSHELL 20/01/2011 1 Business Ontology ToolKit Business Ontology Toolkit (BOTK) è un insieme estensibile di strumenti per realizzare applicazioni basate

Dettagli

TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE

TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE INDUSTRIA E ARTIGIANATO TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE DELLA

Dettagli

Ingegneria dei Requisiti

Ingegneria dei Requisiti Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Ingegneria dei Requisiti E. TINELLI Contenuti I requisiti del software Documento dei requisiti I processi

Dettagli

Co.El.Da. Software S.r.l. Coelda.Ne Caratteristiche tecniche

Co.El.Da. Software S.r.l.  Coelda.Ne Caratteristiche tecniche Co..El. Da. Software S..r.l.. Coelda.Net Caratteristiche tecniche Co.El.Da. Software S.r.l.. Via Villini Svizzeri, Dir. D Gullì n. 33 89100 Reggio Calabria Tel. 0965/920584 Faxx 0965/920900 sito web: www.coelda.

Dettagli

Approfondimento: i sistemi di gestione delle basi di dati (DBMS)

Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Prerequisito essenziale della funzionalità delle basi di dati è il controllo e la fruibilità dell informazione in esse contenuta: a tale

Dettagli

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione UNIVERSITA DEGLI STUDI DI FERRARA Corso di Laurea in informatica Anno Accademico 2011-2012 Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione Relatore:

Dettagli

RILEVANZA = attinenza oggettiva/assoluta PERTINENZA = attinenza soggettiva/relativa (effettivo interesse personale) PUNTO DI FUTILITA ---> ranking

RILEVANZA = attinenza oggettiva/assoluta PERTINENZA = attinenza soggettiva/relativa (effettivo interesse personale) PUNTO DI FUTILITA ---> ranking NOZIONI DI INFORMATION RETRIEVAL a cura di Riccardo Ridi (Università Ca' Foscari di Venezia) aggiornate a Ottobre 2014 RILEVANZA = attinenza oggettiva/assoluta PERTINENZA = attinenza soggettiva/relativa

Dettagli

Realizzazione di un sistema di logging prototipale per la piattaforma

Realizzazione di un sistema di logging prototipale per la piattaforma tesi di laurea Realizzazione di un sistema di logging prototipale per la piattaforma Android Anno Accademico 2011 / 2012 relatore Ch.mo prof. Marcello Cinque candidato Dario De Meis Matr. 528 / 741 Smartphone

Dettagli

Single Sign On sul web

Single Sign On sul web Single Sign On sul web Abstract Un Sigle Sign On (SSO) è un sistema di autenticazione centralizzata che consente a un utente di fornire le proprie credenziali una sola volta e di accedere a molteplici

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

CdL MAGISTRALE in INFORMATICA

CdL MAGISTRALE in INFORMATICA 05/11/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI 7. I processi : il naming Prof. S.Pizzutilo Il naming dei processi Nome = stringa di bit o di caratteri utilizzata per

Dettagli

maildocpro Manuale Installazione

maildocpro Manuale Installazione maildocpro Manuale Installazione versione 3.4 maildocpro Manuale Installazione - Versione 3.4 1 Indice Indice... 2 Creazione database... 3 Database: MAILDOCPRO... 3 Database: SILOGONWEB... 5 Configurazione

Dettagli

Base Dati Introduzione

Base Dati Introduzione Università di Cassino Facoltà di Ingegneria Modulo di Alfabetizzazione Informatica Base Dati Introduzione Si ringrazia l ing. Francesco Colace dell Università di Salerno Gli archivi costituiscono una memoria

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

Motore di riempimento DB (generatore dati per simulazione)

Motore di riempimento DB (generatore dati per simulazione) SISTEMI DISTRIBUITI prof. S.Pizzutilo Motore di riempimento DB (generatore dati per simulazione) Studente: Alessandro Balestrucci 617937 Corso di Laurea: Informatica Magistrale Dipartimento di Informatica

Dettagli

È possibile caratterizzare un percorso formativo per gli studenti sulla base di due aree di specializzazione (indirizzi):

È possibile caratterizzare un percorso formativo per gli studenti sulla base di due aree di specializzazione (indirizzi): Percorsi per la Laurea Magistrale in Informatica Percorso Video Game Docenti di riferimento: Dario Maggiorini, Laura Anna Ripamonti Sede di erogazione: Milano LIKE THIS! Obiettivi generali Il mercato dei

Dettagli

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI Il Database è una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi

Dettagli

SISTEMA DI PREFETCHING CLIENT-SIDE PER TRAFFICO WEB

SISTEMA DI PREFETCHING CLIENT-SIDE PER TRAFFICO WEB UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Progetto per il corso di Ingegneria del Web SISTEMA DI PREFETCHING CLIENT-SIDE PER

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Tesi disponibili nell ambito del progetto FP7 ARISTOTELE. Tesi disponibili nell ambito del progetto INDUSTRIA 2015 KITE.it

Tesi disponibili nell ambito del progetto FP7 ARISTOTELE. Tesi disponibili nell ambito del progetto INDUSTRIA 2015 KITE.it Tesi disponibili nell ambito del progetto FP7 ARISTOTELE Ambiente collaborativo per il design e l innovazione Il lavoro si concentrerà sullo sviluppo di specifici componenti di un ambiente collaborativo

Dettagli

IBM SPSS Modeler 15 Guida alla modellazione in-database

IBM SPSS Modeler 15 Guida alla modellazione in-database IBM SPSS Modeler 15 Guida alla modellazione in-database Nota: Prima di utilizzare queste informazioni e il relativo prodotto, leggere le informazioni generali disponibili in Note a pag.. Questa versione

Dettagli

Architettura Connettore Alfresco Share

Architettura Connettore Alfresco Share Direzione Sistemi Informativi Portale e Orientamento Allegato n. 2 al Capitolato Tecnico Indice Architettura Connettore Alfresco Share 1. Architettura del Connettore... 3 1.1 Componente ESB... 4 1.2 COMPONENTE

Dettagli

Organization Intelligence: Approccio e Tecnologia

Organization Intelligence: Approccio e Tecnologia Organization Intelligence: Approccio e Tecnologia [Knowledge] «In organizations it often becomes embedded not only in documents or repositories but also in organizational routines, processes, practices

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

Dettagli

Tecniche Multimediali

Tecniche Multimediali Chiedersi se un computer possa pensare non è più interessante del chiedersi se un sottomarino possa nuotare Edsger Dijkstra (The threats to computing science) Tecniche Multimediali Corso di Laurea in «Informatica»

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

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c) DESIGN PATTERN Barrare con una X la lettera del diagramma delle classi che fra i seguenti rappresenta in modo corretto il design pattern architetturale Model View Controller (MVC) ESERCITAZIONE PREPARAZIONE

Dettagli

CRESCO. Centro computazionale di RicErca sui Sistemi COmplessi. Dipartimento di Ingegneria dell Informazione e Matematica Applicata

CRESCO. Centro computazionale di RicErca sui Sistemi COmplessi. Dipartimento di Ingegneria dell Informazione e Matematica Applicata CRESCO Centro computazionale di RicErca sui Sistemi COmplessi Dipartimento di Ingegneria dell Informazione e Matematica Applicata Università di Salerno Responsabile Unità Operativa Prof. Ciro D Apice Attività

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

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali CL AS SE INFORMATICA 6(3) 6(4) - 6(4) SISTEMI E RETI 4(2) 4(2) 4(2) TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI COMPETENZE 3 Essere in grado di sviluppare semplici applicazioni

Dettagli

Percorso Video Game. Percorsi per la Laurea Magistrale in Informatica. Obiettivi generali. Sbocchi professionali

Percorso Video Game. Percorsi per la Laurea Magistrale in Informatica. Obiettivi generali. Sbocchi professionali Percorsi per la Laurea Magistrale in Informatica Percorso Video Game Docenti di riferimento: Dr. Dario Maggiorini, Dr. Laura Anna Ripamonti Sede di erogazione: Milano Obiettivi generali Il mercato dei

Dettagli

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

Registro SPICCA Architettura del Software

Registro SPICCA Architettura del Software Registro SPICCA Architettura del Software Versione 1.0 del 25/08/2009 Sommario 1 Introduzione... 4 1.1 Scopo... 4 1.2 Obiettivo... 4 1.3 Riferimenti... 4 1.4 Panoramica del documento... 4 2 Rappresentazione

Dettagli

IBM SPSS Modeler 14.2 Guida alla modellazione in-database

IBM SPSS Modeler 14.2 Guida alla modellazione in-database IBM SPSS Modeler 14.2 Guida alla modellazione in-database Nota: Prima di utilizzare queste informazioni e il relativo prodotto, leggere le informazioni generali disponibili in Note a pag.. Il presente

Dettagli

Modulo 1 Concetti generali 4 settimane

Modulo 1 Concetti generali 4 settimane OBIETTIVI SPECIFICI DEL PRIMO BIENNIO - CLASSE PRIMA settore ECONOMICO: NUCLEI FONDANTI, CONOSCENZE E COMPETENZE NB per ciascuno dei moduli di insegnamento/apprendimento viene indicato il tempo di trattazione

Dettagli

Il linguaggio Chat Markup Language

Il linguaggio Chat Markup Language Il linguaggio Progetto e implementazione di un sistema per la realizzazione di agenti conversazionali Alan Zucconi Università degli Studi di Pisa Facoltà di Scienze Matematiche, Fisiche e Naturali 24 Giugno

Dettagli

Moodle 2. comandi avanzati. manuale per il docente. Albano Squizzato ingsquizzato@libero.it Paolo Macchi paolo.macchi@libero.it

Moodle 2. comandi avanzati. manuale per il docente. Albano Squizzato ingsquizzato@libero.it Paolo Macchi paolo.macchi@libero.it Albano Squizzato ingsquizzato@libero.it Paolo Macchi paolo.macchi@libero.it Moodle 2 comandi avanzati manuale per il docente Generazione Web 2013-14 - G9 Il database (creazione) The database is veritable

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

Il World Wide Web. Il Web. La nascita del Web. Le idee di base del Web

Il World Wide Web. Il Web. La nascita del Web. Le idee di base del Web Il World Wide Web Il Web Claudio Fornaro ver. 1.3 1 Il World Wide Web (ragnatela di estensione mondiale) o WWW o Web è un sistema di documenti ipertestuali collegati tra loro attraverso Internet Attraverso

Dettagli

Metodologie e strumenti per il collaudo di applicazioni Web

Metodologie e strumenti per il collaudo di applicazioni Web Università degli studi Tor Vergata Facoltà di Ingegneria Metodologie e strumenti per il collaudo di applicazioni Web Candidato: Luca De Francesco Relatore Chiar.mo Prof. Salvatore Tucci Correlatore Ing.

Dettagli

CAPITOLO 3 Previsione

CAPITOLO 3 Previsione CAPITOLO 3 Previsione 3.1 La previsione I sistemi evoluti, che apprendono le regole di funzionamento attraverso l interazione con l ambiente, si rivelano una risorsa essenziale nella rappresentazione di

Dettagli

Lezione 9. Applicazioni tradizionali

Lezione 9. Applicazioni tradizionali Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere

Dettagli

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale Esperienze di Apprendimento Automatico per il corso di lippi@dsi.unifi.it Dipartimento Sistemi e Informatica Università di Firenze Dipartimento Ingegneria dell Informazione Università di Siena Introduzione

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.6 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Prototipo di componente software interfacciabile via web services per le funzioni di storytelling SC7

Prototipo di componente software interfacciabile via web services per le funzioni di storytelling SC7 SC7 Prototipo di componente software interfacciabile via web services per le funzioni di storytelling 1 Indice generale 1.Introduzione al documento... 3 2.Specifiche funzionali... 4 2.1Panoramica dell

Dettagli

CONVENZIONI DI NOMENCLATURA E SEMANTICA

CONVENZIONI DI NOMENCLATURA E SEMANTICA Sistema pubblico di cooperazione: CONVENZIONI DI NOMENCLATURA E SEMANTICA Versione 1.1 INDICE 1. MODIFICHE DOCUMENTO...3 2. OBIETTIVI E CONTESTO DI RIFERIMENTO... 4 2.1. Scopi del documento... 5 2.2. Note

Dettagli

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

Dettagli

Architettura del software: dai Casi d Uso al Modello

Architettura del software: dai Casi d Uso al Modello Architettura del software: dai Casi d Uso al Modello Lorenzo Barbieri Sono un Senior Trainer/Consultant in ObjectWay SpA (www.objectway.it), specializzato in architetture Microsoft.NET, Windows, SQL Server,

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

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

di impatto del nuovo ISEE

di impatto del nuovo ISEE Aree Metropolitane Il sistema di valutazione di impatto del nuovo ISEE Clesius srl Il cloud computing Uno dei maggiori trend nel settore ICT di questi ultimi anni è senza dubbio il Cloud Computing, ovvero

Dettagli

CATALOGO CORSI DI FORMAZIONE INFORMATICA

CATALOGO CORSI DI FORMAZIONE INFORMATICA CATALOGO CORSI DI FORMAZIONE INFORMATICA La Dialuma propone a catalogo 22 corsi di Informatica che spaziano tra vari argomenti e livelli. TITOLI E ARGOMENTI I001 - Informatica generale Concetti generali

Dettagli

Per aiutare gli studenti a scoprire le loro possibilità

Per aiutare gli studenti a scoprire le loro possibilità Listening. Learning. Leading. Per aiutare gli studenti a scoprire le loro possibilità Comprendere i punteggi del test TOEFL Junior Per scoprire il proprio potenziale. Per estendere le proprie opportunità.

Dettagli

Analisi ed Estrazione di Informazioni da un Account Email a beneficio delle Imprese

Analisi ed Estrazione di Informazioni da un Account Email a beneficio delle Imprese Analisi ed Estrazione di Informazioni da un Account Email a beneficio delle Imprese Matteo Renzi Relatore: Prof.ssa Sonia Bergamaschi Correlatore: Jim Spohrer 1 Problema numero medio di email scambiate

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Web Service Architecture

Web Service Architecture Giuseppe Della Penna Università degli Studi di L Aquila dellapenna@di.univaq.it http://dellapenna.univaq.it Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica

Dettagli

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System) (DataBase Management System) Sistemi di ges3one di basi di da3 Un Database Management System è un sistema software progettato per consentire la creazione e manipolazione efficiente di database (collezioni

Dettagli

Apprendimento Automatico

Apprendimento Automatico Metodologie per Sistemi Intelligenti Apprendimento Automatico Prof. Pier Luca Lanzi Laurea in Ingegneria Informatica Politecnico di Milano Polo regionale di Como Intelligenza Artificiale "making a machine

Dettagli

SOFTWARE DEVELOPMENT JUNIOR SPECIALIST

SOFTWARE DEVELOPMENT JUNIOR SPECIALIST SKILL4YOU ACADEMY MICROSOFT SOFTWARE DEVELOPMENT JUNIOR SPECIALIST PERCORSO ACADEMY MICROSOFT SOFTWARE DEVELOPMENT JUNIOR SPECIALIST A CHI E RIVOLTO IL CORSO ACADEMY MICROSOFT SOFTWARE DEVELOPMENT JUNIOR

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

Portale AOT Lab Guida all utilizzo

Portale AOT Lab Guida all utilizzo 2007 Progetto realizzato presso l Università degli Studi di Parma per i corsi di Sistemi Distribuiti e ad Agenti ( prof. A. Poggi ) e Sistemi Orientati ad Internet ( prof.ssa P. Turci ). longari@ce.unipr.it

Dettagli