Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoPasqualina Ferrara Modificato 10 anni fa
1
Linguaggi di schema per XML e modelli astratti di documenti Tesi di Laurea di Daniele Gubellini Relatore: Chiar.mo Prof. Fabio Vitali Bologna, 23 marzo 2005
2
L ingegneria dei documenti Le componenti di un documento Le componenti di un documento Contenuto: informazione allo stato puro (la mia data di nascita). Contenuto: informazione allo stato puro (la mia data di nascita). Struttura: risponde alla domanda dovè un dato e conferisce metainformazioni. Struttura: risponde alla domanda dovè un dato e conferisce metainformazioni. Esempio: 01031978 ? Esempio: 01031978 ? Presentazione: formattazione visiva. Presentazione: formattazione visiva. Esempio: 01/03/1978. Esempio: 01/03/1978. Sintassi Sintassi XML, markup descrittivo. XML, markup descrittivo. Vincoli Vincoli Linguaggi di schema: DTD, XML Schema. Linguaggi di schema: DTD, XML Schema.
3
Lobiettivo Identificare gli schemi utili e potenzialmente ricchi di significato Identificare gli schemi utili e potenzialmente ricchi di significato Eliminare i costrutti sintattici non necessari nella costruzione di strutture significative. Eliminare i costrutti sintattici non necessari nella costruzione di strutture significative. Definire un linguaggio di schema minimale che permetta lespressione di tutti e soli gli schemi catalogati. Definire un linguaggio di schema minimale che permetta lespressione di tutti e soli gli schemi catalogati.
4
Content model DTD inutili: esempi Descrizione Descrizione Presenza di alcuni frammenti di content model come (B|C)* in più dichiarazioni. Presenza di alcuni frammenti di content model come (B|C)* in più dichiarazioni. Aggiungendo un elemento K si avrebbe incoerenza semantica? Aggiungendo un elemento K si avrebbe incoerenza semantica? (B|C)* sono logicamente indissolubili o indipendenti? (B|C)* sono logicamente indissolubili o indipendenti? Ripetizione di sequenze. Ripetizione di sequenze. Uneventuale relazione semantica tra A e B non è rafforzata dalla sintassi. Sequenza di elementi non ripetibili ed elementi ripetibili. Sequenza di elementi non ripetibili ed elementi ripetibili. T sembra uninformazione unica che dice qualcosa sulla lista di B. Questo fatto non è rafforzato dalla sintassi. Content model DTD
5
Normalizzazione Documenti ben ingegnerizzati Documenti ben ingegnerizzati Definizione delle dipendenze funzionali: fondamentali per modellare i dati in modo elegante, riutilizzabile e con una semantica precisa e non ambigua. Definizione delle dipendenze funzionali: fondamentali per modellare i dati in modo elegante, riutilizzabile e con una semantica precisa e non ambigua. Normalizzazione: applicata ai contenitori logici che danno profondità e struttura al documento. Normalizzazione: applicata ai contenitori logici che danno profondità e struttura al documento. Esempio: TeiLight, elemento div Esempio: TeiLight, elemento div ((argument|byline|dateline|docAuthor|docDate|epigraph|head|opener| salute|signed|anchor|gap|index|interp|interpGrp|lb|milestone|pb)*,(((div |divGen),(anchor|gap|index|interp|interpGrp|lb|milestone|pb)*)+|(((eg| bibl|biblFull|ab|l|lg|p|sp|figure|cit|q|label|list|listBibl|note|stage|table ),(anchor|gap|index|interp|interpGrp|lb|milestone|pb)*)+,((div|divGen),( anchor|gap|index|interp|interpGrp|lb|milestone|pb)*)*)),((byline|closer| dateline|epigraph|salute|signed|trailer),(anchor|gap|index|interp| interpGrp|lb|milestone|pb)*)*) ((argument|byline|dateline|docAuthor|docDate|epigraph|head|opener| salute|signed|anchor|gap|index|interp|interpGrp|lb|milestone|pb)*,(((div |divGen),(anchor|gap|index|interp|interpGrp|lb|milestone|pb)*)+|(((eg| bibl|biblFull|ab|l|lg|p|sp|figure|cit|q|label|list|listBibl|note|stage|table ),(anchor|gap|index|interp|interpGrp|lb|milestone|pb)*)+,((div|divGen),( anchor|gap|index|interp|interpGrp|lb|milestone|pb)*)*)),((byline|closer| dateline|epigraph|salute|signed|trailer),(anchor|gap|index|interp| interpGrp|lb|milestone|pb)*)*)
6
La soluzione Adozione di Pattern Adozione di Pattern Espressione di strutture utili e potenzialmente ricche di significati. Espressione di strutture utili e potenzialmente ricche di significati. Adozione di wrapper. Adozione di wrapper. Semplificazione della sintassi: DTD-- Semplificazione della sintassi: DTD-- Rendere leciti (esprimibili) solo i Pattern. Rendere leciti (esprimibili) solo i Pattern. Conversione di strutture DTD in DTD--. Conversione di strutture DTD in DTD--.
7
Pattern di design (1/2) Marker BR: Marker BR:<BR/> Record Persona: Record Persona:<Persona> Daniele Daniele Gubellini Gubellini C. Italia 19 C. Italia 19 S.G.Persiceto S.G.Persiceto Blocco Testo: Blocco Testo:<Testo> Questo è un testo con elementi tipografici come grassetto e italico oppure grassetto e italico Questo è un testo con elementi tipografici come grassetto e italico oppure grassetto e italico </Testo> Atomo Giorno: 23 Tabella Persone: Daniele Gubellini C. Italia 19 S.G.Persiceto Mara Serra C. Italia 19 S.G.Persiceto
8
Pattern di design (2/2) Contesto Additivo Contratto: Contesto Additivo Contratto:<Contratto>...... Daniele Gubellini Daniele Gubellini......</Contratto> Firma può apparire ovunque allinterno di Contratto. Firma può apparire ovunque allinterno di Contratto. È possibile limitare ad uno loccorrenza dellelemento Firma. È possibile limitare ad uno loccorrenza dellelemento Firma. Contesto Sottrattivo Nota: Questo è un paragrafo con note. Una nota contiene paragrafi Una nota può contenere altre note Proibisco la presenza di Note allinterno di Note.
9
I wrapper (Studente,(Cellulare|Telefono)*) e (Prof,(Cellulare|Telefono)*) (Studente,(Cellulare|Telefono)*) e (Prof,(Cellulare|Telefono)*) Strutture logicamente indissolubili: Strutture logicamente indissolubili: (Studente,recapitiTelefonici) e (Prof,recapitiTelefonici) dove recapitiTelefonici=(Cellulare|Telefono)* Strutture logicamente separate: Strutture logicamente separate: (Studente,recapitiTelefoniciStudente) e (Prof,recapitiTelefoniciProf) dove recapitiTelefoniciStudente=recapitiTelefoniciProf=(Cellulare|Telefono)* Possibile aggiungere a recapitiTelefoniciProf un TelefonoUfficio. Possibile aggiungere a recapitiTelefoniciProf un TelefonoUfficio. (Domanda,Risposta)* (Domanda,Risposta)* Rafforzare il legame semantico tra Domanda e Risposta: Rafforzare il legame semantico tra Domanda e Risposta: (FAQ*) dove FAQ=(Domanda,Risposta). (Titolo,Capitolo*) (Titolo,Capitolo*) Titolo è riferito alla lista dei capitoli: Titolo è riferito alla lista dei capitoli: (Titolo,Capitoli) dove Capitoli=(Capitolo*).
10
Il metalinguaggio DTD-- Espressione di tutte e sole le strutture dei Pattern. Espressione di tutte e sole le strutture dei Pattern. Sintassi Sintassi Minimalità sintattica: SCHEMA = ISTANZA. Minimalità sintattica: SCHEMA = ISTANZA. Lopzionalità del DTD è meno problematica. Lopzionalità del DTD è meno problematica. Lo schema diventa più espressivo grazie allastrazione dei Pattern. Lo schema diventa più espressivo grazie allastrazione dei Pattern. Sintassi instance based:scrivere uno schema diventa semplice come scrivere unistanza. Sintassi instance based:scrivere uno schema diventa semplice come scrivere unistanza. Literate programming. Literate programming.
11
DTD--: sintassi dei Pattern Marker, Atomo, Record. Marker, Atomo, Record. Tabella Persone: Tabella Persone:<Persone> Nome Nome Cognome Cognome Via e n.civico Via e n.civico Comune Comune </Persone> Contesto Additivo Contratto: Contesto Additivo Contratto:.... Daniele Gubellini Daniele Gubellini....</Contratto> Blocco Testo: Questo è un testo con elementi tipografici come bold e ita. Può contenere anche linee. Contesto Sottrattivo Nota: Questo testo contiene paragrafi e note <Nota dtd:type=T dtd:exclude=Nota />
12
Tool di conversione Da DTD a DTD-- Da DTD a DTD-- Vengono semplificati e convertiti i DTD in sintassi DTD--. Vengono semplificati e convertiti i DTD in sintassi DTD--. Test di affinità con il nuovo modello di design. Test di affinità con il nuovo modello di design. Spunto critico per una rimodellazione dello schema. Spunto critico per una rimodellazione dello schema. Da istanze/schemi a DTD-- Da istanze/schemi a DTD-- Unificazione di istanze e schemi DTD-- in un unico schema. Unificazione di istanze e schemi DTD-- in un unico schema. Schemi (A|B). Schemi (A|B). Da DTD-- a SchemaPath Da DTD-- a SchemaPath Tappa intermedia del processo di validazione. Tappa intermedia del processo di validazione.
13
Conclusioni Design basato su Pattern Design basato su Pattern Abbassa lincertezza sintattica, permette visualizzazioni astratte, forza un design semplice e chiaro, migliora il rapporto tra contenuto e struttura. Abbassa lincertezza sintattica, permette visualizzazioni astratte, forza un design semplice e chiaro, migliora il rapporto tra contenuto e struttura. Favorisce il processo di normalizzazione. Favorisce il processo di normalizzazione. Autoreferenzialità: la minimalità sintattica risolve in parte il problema dellopzionalità del DTD. Autoreferenzialità: la minimalità sintattica risolve in parte il problema dellopzionalità del DTD. Semplifica eventuali processi di conversione. Semplifica eventuali processi di conversione. Sviluppi futuri: nuovi pattern? Sviluppi futuri: nuovi pattern? DTD-- DTD-- Linguaggio di schema semplice, basato su XML, di facile apprendimento. Linguaggio di schema semplice, basato su XML, di facile apprendimento. Sviluppi futuri: co-constraints, tipi di dato per Atomo ecc. Sviluppi futuri: co-constraints, tipi di dato per Atomo ecc.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.