Interrogazione Efficiente di Documenti XML Temporali e una sua Applicazione in Ambito Normativo Enrico Ronchetti Enrico Ronchetti Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria - Corso di Laurea in Ingegneria Informatica Relatore: Prof. Paolo Tiberio Correlatori: Dott. Federica Mandreoli Ing. Riccardo Martoglia Anno Accademico 2002/2003 Controrelatore: Prof. Sonia Bergamaschi
sviluppare un Temporal XML Query Processor per linterrogazione efficiente di grandi quantità di documenti che soddisfano un modello XML temporale. La presente Tesi di Laurea è stata svolta allinterno del Progetto Nazionale MIUR 2001: La dinamica della norma nel tempo: aspetti giuridici e informatici APPLICAZIONE IN AMBITO NORMATIVO: si ritiene che un atto normativo sia un valido esempio di documento dinamico, la cui evoluzione passa attraverso successive modifiche che generano versioni nel tempo Obiettivo della Tesi
tempo Testo normativo originale 1 Modifiche : Temporali Ad esempio: Proroga di un termine 2 nuova versione 3 Le modifiche non sono applicate allintero documento, ma ad ogni livello della gerarchia articolato-capo-articolo-comma, ed ognuna influenza tutti i livelli sottostanti comma articolo capo articolato Sostituzione di una frase Testuali Dinamica del testo normativo
Risulta molto difficile conoscere lesatta formulazione di una legge: Esempio: voglio tutte le leggi in cui nel testo allinterno dei commi si parla di importazione di cereali, nella versione memorizzata nel Sistema il giorno 1/1/1980 e in modo che sia valida ed applicabile fra il 1979 ed il Vincoli individuabili: 2) Testuale 1) Strutturale 3) Temporale Problema 2) Appartenente al Sistema Giuridico Italiano nel giorno Y 3) Applicabile a casi concreti nel giorno Z 1) Memorizzata nel Sistema Informativo nel giorno X 4) Come era al momento della sua pubblicazione sulla Gazzetta Ufficiale
Estensione temporale DTD pubblicata dal progetto Norme In Rete Modello XML temporale per la descrizione di testi normativi mutevoli nel tempo Le dimensioni temporali supportate: Transaction timeTransaction time : rappresenta il tempo in cui il testo normativo è memorizzato nel database Valid timeValid time : rappresenta il tempo in cui la norma è in vigore Efficacy timeEfficacy time : rappresenta il tempo in cui la norma è applicabile al caso concreto Publication timePublication time : rappresenta il tempo in cui il testo normativo viene pubblicato sulla gazzetta ufficiale Gli attributi che individuano le 4 dimensioni temporali sono allinterno di ogni elemento (Temporal Attributes) TA Modello XML temporale 2) Versione appartenente al Sistema Giuridico nel giorno Y 3) Versione applicabile a casi concreti nel giorno Z 1) Versione memorizzata nel Sistema Informativo nel giorno X 4) Versione al momento della sua pubblicazione sulla Gazzetta Ufficiale
LEGGE ARTICOLO 1 COMMA 1 VER 1 TA VER 1 TA COMMA 2 ARTICOLO 2 importazione di cereali… …testo X VER 2 TA importazione di cereali… …testo Y FOR $a IN legge//comma//text() WHERE contains( $a, importazione AND cereali) AND RETURN $a Interrogazione scritta con XQuery: Esempio di documento conforme al modello XML temporale
Approccio precedente Approccio in questa Tesi 2) testuali …si parla di importazione di cereali… 3) temporali …nella versione memorizzata nel Sistema il giorno 1/1/1980 e in modo che sia valida ed applicabile fra il 1979 ed il Architetture 1) componenti utilizzati 2) costi di comunicazione fra componenti 3) preprocessing e postprocessing Differenze: 1) strutturali …le leggi in cui nel testo allinterno dei commi… Vincoli:
Vista la possibilità di: Associare i TA ad ogni livello della gerarchia (anche dove i TA non sono espressi) Suddividere lintero documento in frazioni minori senza perdere la gerarchia di base Un set completo di attributi strutturali per lesatta collocazione della Tupla allinterno del documento XML di partenza Un set completo di attributi temporali per una caratterizzazione temporale completa Si è ideata una struttura, che chiameremo Tupla, contenente: Granularità: Intero documento XML temporale Tupla IN GENERALE Intero atto normativo Disposizione Normativa IN AMBITO NORMATIVO Suddivisione in Strutture Tupla (1)
Tupla ( id, ) Ogni vincolo è verificato in fase di interrogazione sui rispettivi attributi STRUCTURAL JOIN: approccio in letteratura che permette la risoluzione dei vincoli strutturali su documenti XML con il modello relazionale, Suddivisione in Strutture Tupla (2)
1) ALGORITMO PER LA LETTURA DELLE TUPLE DAL DB Grazie agli algoritmi ideati ed alla suddivisione effettuata è possibile evitare un gran numero di accesi a disco inutili Le tuple lette soddisfano completamente i vincoli strutturali, testuali e temporali 2) ALGORITMO PER LELABORAZIONE DELLE TUPLE LETTE Si genera uno stack per ogni nodo nella query, rispettando lordine di apparizione Le tuple lette finiscono nel relativo stack e costituiscono le soluzioni finali leggetextcomma T1C1L1 1 SOLUZIONE Algoritmi interni al Temporal XML Query Processor
È stato ideato per avere la certezza di generare risultati in cui COESISTANO tutte le Tuple coinvolte in una soluzione Esempio sul Transaction Time: Legge Comma Text Verificato Non verificato Può avvenire: 1.Al momento della formazione di ogni soluzione (controllo a posteriori) 2.Prima dellinserimento di una tupla negli stack (controllo a priori) Previene loverflow degli stack durante elaborazione verifica delloperatore OVERLAPS in almeno un chronon di ogni dimensione temporale del modello Controllo di consistenza
Prototipo sviluppato in Java utilizzando Berkeley DB come database system PC utilizzato: Athlon XP 2000+, HD EIDE 7200 RPM, 256 MB di RAM con sistema operativo Windows XP E stato realizzato un algoritmo per la generazione pseudo-casuale dei documenti XML temporali basati sul modello adottato DatasetDocumentiMB discoTuple Query sottoposte al sistema (il vincolo strutturale è sempre presente): 1.Q1 e Q2, solo vincoli testuali 2.Q3, solo vincoli temporali 3.Q4 e Q5, vincoli temporali e testuali Il prototipo sviluppato (1)
Scalabilità: Al crescere delle dimensioni del data set usato nei test: I tempi di elaborazione crescono in modo sub-lineare per le query con vincoli testuali, lineare per le altre; rimangono in ogni caso molto contenuti Loccupazione di memoria rimane pressochè costante per tutta la durata dellelaborazione e per tutte le query Il prototipo sviluppato (2)
Stesso modello adottato Stessi documenti (5000 documenti su 120 MB) Stesse query Tempi di risoluzione: Per alcune query i risultati sono comparabili, ma per altre la differenza è di più di un ordine di grandezza (scala logaritmica) Ogni interrogazione del prototipo sviluppato nella presente Tesi richiede una quantità di memoria minima rispetto a quella richiesta nel sistema TeX 3400 ms ms Confronto di efficienza con il sistema TeX
La realizzazione del Temporal XML Query Processor ha permesso di interrogare grandi quantità di documenti XML temporali utilizzando le metodologie messe a disposizione dalla tecnologia relazionale Lelaborazione risulta molto efficiente sia in termini di velocità di elaborazione sia in termini di occupazione di memoria, anche se confrontata con i risultati avuti in altri sistemi. minimo utilizzo di memoria centrale del prototipo sviluppato implementazione di server per rispondere ad interrogazioni su una grande base di dati XML temporale ad elevata multiutenza sistema per linterrogazione di testi normativi via internet INTERNET BROWSER SISTEMA Conclusioni