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 per memorizzare i dati sotto forma di triple RDF
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 tempi di implementazione dell applicazione
Grazie per l attenzione