sviluppo ontologie per la gestione documentale e loro

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