Università degli Studi di Modena e Reggio Emilia
Facoltà di Ingegneria - Corso di Laurea in Ingegneria Informatica
Interrogazione Efficiente di Documenti XML
Temporali e una sua Applicazione in Ambito
Normativo
Enrico Ronchetti
Relatore:
Correlatori:
Prof. Paolo Tiberio
Dott. Federica Mandreoli
Controrelatore:
Ing. Riccardo Martoglia
Prof. Sonia Bergamaschi
Anno Accademico 2002/2003
La presente Tesi di Laurea è stata svolta all’interno del Progetto
Nazionale MIUR 2001: “La dinamica della norma nel tempo: aspetti
giuridici e informatici”
Obiettivo della Tesi
sviluppare un Temporal XML Query Processor per l’interrogazione
efficiente di grandi quantità di documenti che soddisfano un modello
XML temporale.
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
Dinamica del testo normativo
Testo
normativo
originale
1
nuova
versione
2
nuova
versione
3
tempo
Modifiche :
Ad esempio:
Temporali
Proroga di un termine
Testuali
Sostituzione di una frase
Le modifiche non sono applicate all’intero
documento, ma ad ogni livello della gerarchia
articolato-capo-articolo-comma, ed ognuna
influenza tutti i livelli sottostanti
articolato
capo
articolo
comma
Problema
Risulta molto difficile conoscere l’esatta formulazione di una legge:
1) Memorizzata nel Sistema Informativo nel giorno X
2) Appartenente al Sistema Giuridico Italiano nel giorno Y
3) Applicabile a casi concreti nel giorno Z
4) Come era al momento della sua pubblicazione sulla Gazzetta Ufficiale
Esempio: voglio tutte le leggi in cui nel testo all’interno 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 1981.
Vincoli individuabili:
1) Strutturale
2) Testuale
3) Temporale
Modello XML temporale
DTD pubblicata dal
progetto Norme In Rete
Estensione
temporale
Modello XML temporale
per la descrizione di
testi normativi
mutevoli nel tempo
Le dimensioni temporali supportate:
•Transaction time: rappresenta il tempo in cui il testo normativo è
memorizzato nel database
•Valid time: rappresenta il tempo in cui la norma è in vigore
•Efficacy time: rappresenta il tempo in cui la norma è applicabile
al caso concreto
•Publication time: rappresenta il tempo in cui il testo normativo
viene pubblicato sulla gazzetta ufficiale
Gli
attributi
che individuano
4Informativo
dimensioni
temporali
sono
1)
memorizzata
nel
giorno
3)
Versione
applicabile
adella
casi
concreti
nel
giorno
Znel
2)
appartenente
al Sistema
Giuridico
nel
giorno
Y X Ufficiale
4)Versione
al momento
sua le
pubblicazione
sulla
Gazzetta
all’interno di ogni elemento TA (Temporal Attributes)
Esempio di documento conforme al modello XML temporale
LEGGE
Interrogazione scritta
con XQuery:
ARTICOLO 1
FOR $a IN legge//comma//text()
WHERE contains( $a,
‘importazione AND cereali’)
AND <vincoli temporali>
RETURN $a
VER 1
importazione
di cereali…
…testo X
VER 1
ARTICOLO 2
TA
COMMA 1
TA
VER 2
COMMA 2
TA
importazione
di cereali…
…testo Y
Architetture
USER
STRATUM
XML
ENGINE
Vincoli:
1) strutturali
…le leggi in cui nel testo
all’interno dei commi…
2) testuali
…si parla di importazione di
cereali…
3) temporali
XML
REPOSITORY
Approccio
precedente
…nella versione memorizzata
nel Sistema il giorno 1/1/1980 e in
modo che sia valida ed
applicabile fra il 1979 ed il 1981.
USER
TEMPORAL
XML QUERY
PROCESSOR
XML
REPOSITORY
Approccio in
questa Tesi
1) componenti utilizzati
Differenze: 2) costi di comunicazione fra componenti
3) preprocessing e postprocessing
Suddivisione in Strutture Tupla (1)
Vista la possibilità di:
Si è ideata una struttura, che
chiameremo Tupla, contenente:
Associare i TA ad ogni livello
della gerarchia (anche dove i
TA non sono espressi)
Un set completo di attributi temporali
per una caratterizzazione temporale
completa
Suddividere l’intero documento
in frazioni minori senza perdere
la gerarchia di base
Un set completo di attributi strutturali
per l’esatta collocazione della Tupla
all’interno del documento XML di
partenza
Granularità:
Intero documento XML temporale
Intero atto normativo
Tupla
Disposizione Normativa
IN GENERALE
IN AMBITO NORMATIVO
Suddivisione in Strutture Tupla (2)
STRUCTURAL JOIN: approccio in
letteratura che permette la risoluzione dei
vincoli strutturali su documenti XML con il
modello relazionale
Tupla ( id,
< SET COMPLETO DI
ATTRIBUTI
STRUTTURALI >,
id
attr1
attr2
attr3
< SET COMPLETO DI
ATTRIBUTI
TEMPORALI >,
<TESTO>
)
DB
Ogni vincolo è verificato
in fase di interrogazione
sui rispettivi attributi
Algoritmi interni al Temporal XML Query Processor
1) ALGORITMO PER LA LETTURA DELLE TUPLE DAL DB
USER
TEMPORAL
XML QUERY
PROCESSOR
XML
REPOSITORY
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 L’ELABORAZIONE DELLE TUPLE
LETTE
Si genera uno stack per ogni nodo nella query, rispettando
l’ordine di apparizione
Le tuple lette finiscono nel relativo stack e costituiscono le
soluzioni finali
1 SOLUZIONE
L1
C1
T1
legge
comma
text
Controllo di consistenza
È stato ideato per avere la certezza di generare risultati in cui
COESISTANO tutte le Tuple coinvolte in una soluzione
verifica dell’operatore OVERLAPS in almeno un
chronon di ogni dimensione temporale del modello
Esempio sul
Transaction Time:
Legge
Comma
Text
Può avvenire:
Verificato
Non verificato
1.
Al momento della formazione di ogni soluzione (controllo a
posteriori)
2.
Prima dell’inserimento di una tupla negli stack (controllo a priori)
Previene l’overflow degli
stack durante elaborazione
Il prototipo sviluppato (1)
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
Dataset Documenti MB disco
Tuple
per la generazione pseudo-casuale
1
5000
120
290000
dei documenti XML temporali
2
10000
240
580000
basati sul modello adottato
3
20000
480
1160000
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 (2)
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
•
L’occupazione di memoria rimane pressochè costante per tutta la
durata dell’elaborazione e per tutte le query
1201MB
2 MB
240
480 MB
dimensioni dei data set utilizzati
Confronto di efficienza con il sistema TeX
•
Stesso modello adottato
•
Stessi documenti (5000 documenti su 120 MB)
3400 ms
Stesse query
135000 ms
•
Tempi di risoluzione: Per
alcune query i risultati sono
comparabili, ma per altre la
differenza è di più di un
ordine di grandezza
Ogni interrogazione del
prototipo sviluppato nella
presente Tesi richiede una
quantità di memoria minima
rispetto a quella richiesta nel
sistema TeX
(scala logaritmica)
Conclusioni
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
L’elaborazione 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
sistema per l’interrogazione di testi
normativi via internet
BROWSER
implementazione di server per
rispondere ad interrogazioni su
una grande base di dati XML
temporale ad elevata multiutenza
INTERNET
SISTEMA
Scarica

Presentazione - ISGroup - Università degli studi di Modena e