Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL’INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo Prof. Aldo Franco Dragoni Correlatore Prof. Mauro Mazzieri Tesi di Pamela Orsi SCOPO DELLA TESI • Verifica della fattibilità dell’uso delle tecnologie del semantic web all’interno di applicazioni gestionali ▫ Da applicazione come contenitore di dati a strumento in grado di comprendere flussi di dati e rielaborarli per interagire con l’utente, sfruttando l’inferenza per avere una conoscenza completa ed esaustiva. • Realizzazione del prototipo basato sulle ontologie e analisi del funzionamento e delle prestazioni rispetto ad una tradizionale applicazione web ▫ Da database relazionale a base della conoscenza incentrata sulle ontologie AMBITO APPLICATIVO: TALETEWEB • Strumento di pianificazione aziendale realizzato presso l’Equipe Srl di Ancora che ha lo scopo di fornire valore aggiunto alle imprese di qualsiasi dimensione e settore • Tecnologia che offre servizi di consulenza integrati tramite interfaccia web e web service per una gestione efficace ed efficiente dell’intero sistema aziendale • Implementato in ambiente .NET, utilizza SQL come linguaggio di interrogazione quindi memorizza i dati su un database relazionale • Ambito applicativo molto ampio ▫ dal controllo di gestione al sistema di qualità, dal sistema di salute e sicurezza alla gestione della privacy. AMBITO APPLICATIVO • Realizzazione del prototipo basato sulle ontologie tramite una conversione parziale di TaleteWeb, data la vastità della piattaforma ▫ L’ambito applicativo è il sistema di gestione della qualità ed in particolare la gestione documentale, del cui sviluppo mi sono personalmente occupata • La gestione documentale aiuta le figure aziendali a seguire la vita dei documenti dalla nascita all’archiviazione ▫ Ne facilita la circolazione ▫ Li rende disponibili in ogni momento PASSI DEL PROGETTO • Dopo la selezione delle tecnologie e degli strumenti del web semantico adatti, le fasi individuate per la realizzazione del prototipo sono: 1) Sviluppo ontologia 2) Mapping ontologia-oggetti 3) Migrazione dati 4) Fase test • Infine si analizzeranno i risultati ottenuti e si valuteranno i vantaggi e gli svantaggi 1) SVILUPPO ONTOLOGIA • Il primo passo per sviluppare un’ontologia consiste nel considerare la possibilità di riusare le ontologie già esistenti, per poi estenderle al fine di introdurre concetti e relazioni specifiche per il dominio in esame • Il processo di integrazione tra ontologie può essere attuato senza difficoltà quando si utilizza un linguaggio modulare e standardizzato come OWL • SUMO ▫ Ontologia di alto livello: definisce concetti generici condivisi dalla maggior parte delle ontologie ▫ Ontologia pubblica formale più estesa • La progettazione dell’ontologia corrisponde alla progettazione delle classi del dominio ▫ No progettazione a basso livello, sui dati, ma progettazione ad alto livello, con le ontologie 1) SVILUPPO ONTOLOGIA Modellazione • La modellazione è un processo iterativo, non univoco ▫ Document Un insieme di informazioni Associato a file che ne descrivono il contenuto ▫ Folder Organizza i documenti sotto forma di albero o suddividendoli in moduli tramite l’uso di cartelle e sottocartelle ▫ Organization Insieme di individui uniti da obiettivi comuni ▫ Human: Nozione etico-legale di persona ▫ Email Notifica per inviare informazioni ▫ File Oggetto posizionato in un archivio della piattaforma 2) MAPPING ONTOLOGIA-OGGETTI • La progettazione delle classi è già stata fatta durante la creazione dell’ontologia • Il diagramma delle classi da implementare sulla base dell’ontologia creata ▫ Thing: la classe più generica da cui ereditano tutte le classi ▫ Entity: la superclasse delle classi che descrivono il dominio applicativo ▫ Organization: si relaziona con tutte le istanze di oggetti di tipo Entity 2) MAPPING ONTOLOGIA-OGGETTI • Le funzionalità e l’interfaccia non cambiano rispetto alla gestione documentale della piattaforma esistente 2) MAPPING ONTOLOGIA-OGGETTI • L’uso delle ontologie implica il cambiamento della sorgente dati e di conseguenza dell’implementazione ▫ Se la sorgente è un file XML: le interrogazioni sono effettuate direttamente sul file ▫ Se la sorgente è un database relazionale: i componenti delle triple sono memorizzati in tabelle diverse, per poi essere ricomposti durante l’interrogazione • Grazie alle ontologie si possono usare reasoner che consentono di esplicitare la conoscenza implicita ▫ Il motore inferenziale è stato usato per implementare nuove funzionalità L’indirizzario restituisce la lista di tutti gli indirizzi e-mail delle figure aziendali appartenenti all’organizzazione selezionata, accomunate dal fatto che sono persone e in quanto tali appartenenti a Human Mailing list di tutti coloro che devono essere informati riguardo ad una riunione, una decisione presa, la pianificazione degli orari di lavoro 2) MAPPING ONTOLOGIA-OGGETTI • Il mapping ontologia-oggetti è realizzato tramite librerie quali SemWeb e LinqToRdf ▫ SemWeb: libreria in C# per ambienti .NET semplice e flessibile leggere e scrivere RDF mantenere RDF in una memoria persistente interrogare la memoria persistente ▫ LinqToRdf: è un framework in ambiente .NET che consente l’interrogazione all’interno del software; basandosi su Linq, semplifica la creazione di query più o meno complesse senza la necessità di conoscere SPARQL Linq: è un componente del .NET che offre la possibilità di effettuare interrogazioni su oggetti, usando una sintassi simile a SQL SPARQL: è un linguaggio di interrogazione standard per RDF simile a SQL che consente di recuperare informazioni da un determinato grafo RDF 3) MIGRAZIONE DATI File come sorgente dati • Il prototipo è stato testato su una quantità di dati limitata • L’utilizzo di un file XML come sorgente dati per la memorizzazione di triple RDF ha consentito di implementare un’applicazione ontologica in modo semplice e diretto ▫ File XML contiene l’intero grafo RDF, mostrando la sorgente dati nella sua forma originale ▫ L’interrogazione avviene direttamente su di esso • Occorre una sorgente dati più ampia ▫ La soluzione migliore per ottenerla è quella di convertire i dati della sorgente relazionale della piattaforma già esistente in un formato adatto alla nuova implementazione Si risolve sia la necessità e l’utilità di gestire dati reali che la problematica della migrazione dei dati • Realizzazione di un programma a sé stante per la migrazione ▫ seleziona i dati contenuti nelle tabelle relazionali d’interesse e li converte in triple RDF, evitando duplicati e mantenendo i collegamenti tra le tabelle 3) MIGRAZIONE DATI Database come sorgente dati • Un approccio diverso: utilizzare un database relazionale come sorgente di immagazzinamento delle triple RDF • SemWeb supporta strutture di memorizzazione basate su SQL • Ho progettato una possibile struttura del database: ▫ ▫ ▫ ▫ Resources: tutte le risorse coinvolte nelle triple Namespaces: tutti i namespace usati nell’ontologia Literals: tutti i letterali coinvolti nelle triple, come oggetti Statements: tutte le triple • Definita la struttura delle tabelle, il programma d’importazione, sempre definito ad hoc secondo la struttura dell’ontologia, consentirebbe la comunicazione tra database 4) FASE TEST Confronto delle prestazioni • Lo strumento usato per l’analisi delle performance è ANTS Profiler • La timeline mostra l’andamento della CPU, la parte sottostante riepiloga le chiamate ai metodi; in fondo si può mostrare la profilazione del codice • Nella maggior parte delle operazioni eseguite ho notato una certa corrispondenza delle prestazioni, mentre ho individuato un aumento del tempo di CPU nelle operazioni che necessitano il caricamento di una grande quantità di dati 4) FASE TEST Analisi delle prestazioni • L’analisi del profiler ottenuta avviando l’indirizzario non rileva anomalie ▫ I tempi sono ragionevoli e non si presentano colli di bottiglia • La timeline significativa è quella evidenziata in quanto corrisponde al caricamento della maschera in esame 4) FASE TEST Analisi delle prestazioni • È possibile visualizzare una rappresentazione grafica delle chiamate invocate da un metodo per ispezionare le singole funzionalità nel dettaglio • Durante la visualizzazione della pagina delle autorizzazioni, viene creato l’albero dei documenti eseguendo la chiamata al metodo CreaCartella e, per ogni cartella creata, si verifica se tale utente loggato è autorizzato 4) FASE TEST Confronto occupazione della memoria • ANTS Memory mette in evidenza l’utilizzo della memoria da parte di un’applicazione • L’analisi mostra che l’utilizzo delle ontologie non implica un aumento dell’occupazione di memoria da parte dell’applicazione • La re-implementazione della gestione documentale ha messo in evidenzia la possibilità di ottimizzare l’allocazione di memoria della piattaforma esistente. CONCLUSIONI • I risultati ottenuti affermano la fattibilità dell’uso delle ontologie in un applicativo web • In generale si può affermare che è possibile utilizzare le tecnologie del semantic web nelle applicazioni gestionali VANTAGGI • Vantaggi: ▫ Impiego di linguaggi standardizzati del web semantico come OWL e RDF Semplificano la diffusione e consentono l’interoperabilità con altre applicazioni e strumenti ▫ Vista concettualizzata dei dati e espressività elevata Migliore organizzazione dei dati, quindi migliore fruibilità ▫ Uso di strumenti basati sui concetti di modularità ed estendibilità ▫ Progettazione delle classi ad alto livello tramite le ontologie ▫ Nessun cambiamento alle funzionalità e all’interfaccia di applicazioni già esistenti ▫ Uso di reasoner consente di rendere esplicita la conoscenza implicita ▫ L’allocazione della memoria non aumenta SVANTAGGI • Svantaggi: ▫ Scarsità di strumenti e di documentazione per lo sviluppo di ontologie in ambiente .NET ▫ Aumento tempo di CPU per le operazioni che necessitano il caricamento di grandi quantità di dati Tale problema può essere ridotto usando un database relazionale per memorizzare le triple RDF Uso generico del database che è utilizzato memorizzare i dati sotto forma di triple RDF per SVILUPPI FUTURI • Conversione del resto dei moduli di TaleteWeb da applicazione web tradizionale a applicazione web basata sulle ontologie • Cercare di migliorare le prestazioni del sistema nelle fasi di caricamento e accesso alla sorgente ▫ Implementare una soluzione che memorizza le triple RDF su un database relazionale ▫ Soluzione necessaria a regime se il progetto va in produzione • Automatizzare il mapping ontologie-oggetti ▫ Diminuzione dei dell’applicazione tempi di implementazione Grazie per l’attenzione