Presentazione del DTD di NormeInRete Fabio Vitali Università di Bologna & IAT-CNR 31 ottobre 2000 Introduzione Si descrivono le caratteristiche della struttura formale dei documenti normativi come generata dal gruppo di lavoro DTD di NormeInRete. XML, DTD, XML-Schema XML e i documenti normativi Una visione di insieme del DTD Prescrizioni fuori dal DTD Conclusioni 2 Fabio Vitali Cos’è XML (1) Extensible Markup Language (W3C - 1998) 3 Permette di arricchire i documenti elettronici di informazioni per stampa, catalogazione, strutturazione, ecc. Derivato da SGML, prende a prestito da HTML la facilità di applicazione. Permette di specificare non l’aspetto tipografico del documento ma le strutture caratteristiche e il valore semantico degli elementi di un documento. Fabio Vitali Cos’è XML (2) Sono caratteristiche costitutive del linguaggio di markup: Elementi: <nota>Qui va il testo di una nota</nota> <new /> Attributi <a href=“http:www.w3.org”>W3C</a> Entità Qui c'è un'entità diventa: Qui c’è un’entità 4 Fabio Vitali Cosa sono i DTD Document Type Definition Un blocco facoltativo di documento XML in cui si specificano vincoli di coerenza strutturale relativi ad una classe di documenti XML 5 Element catalog: lista degli elementi definiti per il documento Content model: modelli di contenimento per gli elementi definiti Entity catalog: lista delle entità Attribute catalog: lista degli attributi definiti, con valori possibili. Validare un documento significa verificare che la specifica istanza segue le regole definite per la sua classe. Fabio Vitali Cosa sono gli schemi XML-Schema (W3C, in corso di approvazione) I DTD forniscono regole di correttezza sulle strutture dei documenti della classe, non sui contenuti. XML-Schema è uno standard in via di definizione che permette di porre vincoli sia strutturali che di contenuto. Ad esempio: 6 Permette di imporre una numerazione consecutiva agli elementi Permette di richiedere la presenza di certi elementi indipendentemente dal loro ordine Permette di specificare una sintassi obbligata agli attributi E’ ancora in corso di approvazione, e non è ancora affidabile per esprimere vincoli su classi di documenti XML. Fabio Vitali I documenti normativi ed XML (1) Esiste una prassi consolidata nella strutturazione ed organizzazione di testi normativi Si è anche assistito ad una formalizzazione delle regole di buona normazione 7 Manuale Rescigno (‘Regole e suggerimenti per la redazione di testi normativi’, 1991) Circolare del Presidente del Senato della Repubblica, del Presidente della Camera dei Deputati e del Presidente del Consiglio dei Ministri datato 24 febbraio 1986 Si forniscono regole di ortografia, lessico, sintassi, stile e struttura per la stesura di testi normativi. Fabio Vitali I documenti normativi ed XML (2) XML può fornire ausili nella esplicazione delle regole e nella verifica della buona normazione relativamente alla struttura: Infatti i documenti normativi: 8 Hanno una struttura evidente e sistematica (l’articolato) Prevedono elementi obbligatori e facoltativi (es. articolazione numerata, numerazione dei commi,ecc.) Impongono vincoli di contenimento tra gli elementi del documento (ad esempio è assurdo un comma che contenga articoli). Quindi XML permette di esprimere, attraverso un DTD, delle regole di verifica della buona forma di un documento normativo. Fabio Vitali Il DTD di NormeInRete 9 DTD strict e DTD loose Classi di documenti Organizzazione del DTD Elementi normativi Elementi testuali e tabellari Metainformazioni Fabio Vitali DTD strict e DTD loose Le direttive del manuale Rescigno permettono di porre vincoli rilevanti sui documenti normativi. Tuttavia il DTD deve considerare anche documenti scritti prima del manuale Rescigno o indipendentemente da esso. Esistono quindi due DTD: DTD strict, o rigido, in cui vengono imposte regole di normazione di maggiore rigidezza DTD loose, o flessibile, in cui vengono specificate regole minimali di struttura, soprattutto relativamente alla numerazione delle strutture e al loro contenimento. DTD strict e loose sono tuttavia compatibili tra loro. 10 Fabio Vitali Classi di documenti Entrambi i DTD identificano tre grandi categorie di documenti: 11 Articolato senza preambolo, formato da un’intestazione, una formula iniziale, un articolato (composto di libro, parte, titolo, capo, sezione, paragrafo - ma solo per il DTD loose - articolo e commi), una formula finale, una conclusione e degli annessi eventuali. Articolato con preambolo, che aggiunge alla precedente un preambolo Semi-articolato, che vede ogni elemento dei precedenti come possibile ma facoltativo, e permette in qualunque posizione di inserire elementi arbitrari (come capoversi o strutture gerarchiche diverse), fino all’estremo di documenti completamente privi di qualunque struttura riconducibile alla prassi di normazione. Fabio Vitali Organizzazione del DTD isolat1.pen globali.dtd norme.dtd isolat2.pen isogrk3.pen testo.dtd isodia.pen meta.dtd isonum.pen isopub.pen isotech.pen nirstrict.dtd <?xml version='1.0' ?> <!DOCTYPE dprNN SYSTEM "nirstrict.dtd"> <dprNN> ... </dprNN> 12 Fabio Vitali nirloose.dtd Elementi normativi Struttura del documento: intestazione, formula iniziale, preambolo facoltativo, articolato, formula finale, conclusione e annessi eventuali. Articolato libro, parte, titolo, capo, sezione, paragrafo (DTD loose) articolo e commi. Commi Corpo oppure elenco, che può contenere corpi o elenchi (alternativamente lettere e numeri). Annessi Plurimi, con elenco facoltativo e pre-annesso, contiene o semplici blocchi di testo o tabelle o anche interi documenti, interni o esterni. Elementi semanticamente rilevanti 13 Riferimenti, date, luoghi, soggetti, enti, atti. Fabio Vitali Elementi testuali e tabellari Strutture generiche denominabili Gerarchia, contenitore, paragrafo, elemento inline, ecc. Strutture tipograficamente rilevanti Paragrafi, corsivi, grassetti, acapo, ecc. Di ispirazione HTML (ma con delle differenze). Strutture speciali Tabelle (di derivazione HTML) Modulistica Fogli di stile 14 Per effetti tipografici sofisticati associati definitivamente al testo, si possono usare stili CSS (Cascading Style Sheet), associati a qualunque elemento del documento. Fabio Vitali Meta-informazioni Il DTD identifica varie locazioni dove è possibile specificare meta-informazioni associate al testo: In un documento separato (collegato con un URI) In testa al documento (collegato con riferimenti interni) Presso l’elemento associato Si forniscono alcune categorie iniziali di metainformazioni: 15 Dublin Core: informazioni “biblioteconomiche” sul documento Commenti: testo libero a nota del documento Redazionale: commenti alla specifica edizione del documento Lavori preparatori: testo libero di organizzazione dei testi precedenti alla norma Disposizioni: sistema di analisi strutturale del contenuto della norma Fabio Vitali Prescrizioni fuori dal DTD Normalizzazione degli attributi per date, luoghi, ecc. <data norm="19991012h0000"> alla mezzanotte del 12 ottobre 1999 </data> Normalizzazione degli identificatori di struttura numero 5 della lettera c dell'articolo 142 ter <en id="art0142c-let0003a-num0005a"> <corpo> ... </corpo> </en> 16 Fabio Vitali Problemi aperti Identificatori di struttura per elementi particolari: 17 Come chiamare gli articoli prima del primo? Come chiamare gli articoli posti tra il bis e il ter? Gestione di vigore ed efficacia Gestione di meccanismi di specifica delle variazioni nei testi consolidati Elenco completo delle meta-informazioni rilevanti Status degli annessi (solo esterni o misti, a scelta?) ... Fabio Vitali Conclusioni Il DTD proposto è immediatamente usabile per la marcatura di documenti normativi “standard”. Non prevediamo problemi per tutti i documenti che seguono regole “ragionevoli” di normazione, sia presenti che passate. Sono sicuramente possibili miglioramenti soprattutto per quel che riguarda documenti strutturalmente “difficili” o con molte eccezioni. Il discorso della vigenza (e di conseguenza dei testi coordinati) va affrontato con molta cura. 18 Fabio Vitali