Skip to topic | Skip to bottom
Home

NIR
NIR.StandardXSDr1.5 - 20 Apr 2009 - 02:12 - FabioVitalitopic end

Start of topic | Skip to actions

Lo schema di Norme In rete

  • architettura dei documenti di definizione
  • elementi di struttura
  • elementi semanticamente significativi
  • Metadati
  • metadati generali “oggettivi”
  • ciclo di vita
  • metadati “autoriali”
  • metadati delle disposizioni

Introduzione

I DTD di NormeInRete definiscono alcuni tipi di documento a carattere normativo. Per ogni tipo di documento (ad esempio legge ordinaria, legge costituzionale, decreto-legge,ecc.) viene specificato sia uno schema descrittivo, particolarmente flessibile, che si adegua alle strutture dei documenti normativi creati fino ad oggi, sia uno prescrittivo, più rigido, che verifica l'adesione dei vari documenti alle regole di "buona scrittura" dei documenti normativi come specificato nella circolare 20 aprile 2001, n. 1.1.26/10888/9.92 "Regole e raccomandazioni per la formulazione tecnica dei testi legislativi". Ad essi si aggiunge un terzo DTD, che descrive solo le strutture più semplici, uniformi e frequenti, pensato per permetterne un rapido apprendimento ed un facile utilizzo. Le differenze tra i tre schemi (da qui in poi chiamati rispettivamente flessibile, completo e base) sono poche e parametrizzate: gli elementi sono gli stessi e hanno sostanzialmente le stesse regole di validità, ma lo schema completo impone la verifica di alcune regole supplementari che nello schema flessibile sono assenti, mentre nello schema base manca del tutto il supporto per casi particolari o rari. Per costruzione, dunque, tutti i documenti validi secondo lo schema base o lo schema completo sono anche validi secondo lo schema flessibile.

In pratica, si utilizzerà lo schema base a scopo divulgativo, nell'apprendimento, e ogni volta che la struttura del documento sia particolarmente semplice e priva di complessità; si userà invece lo schema completo in condizioni di normazione, o legal drafting, ossia per la creazione di nuove norme su cui si vuole che la succitata circolare abbia effetto; infine, si ricorrerà allo schema flessibile per la descrizione di documenti che presentino una qualunque complessità o difformità dalle regole della circolare del 2001, e quindi ovunque le regole esposte nello schema completo siano considerate troppo restrittive. A parte poche differenze comunque, non esistono variazioni tra gli schemi completo e flessibile e la descrizione seguente ignorerà ove non necessario l'esistenza di due classi diverse di documenti.

Architettura degli schemi

Lo schema di NormeInRete si compone di otto moduli di schema. Questi sono disponibili sia in formato XML Schema sia DTD, e sono sostanzialmente equivalenti in termini di vocabolario e regole di validità. A ciascuno dei nomi di file seguenti va aggiunto il prefisso ".dtd" per indicare lo schema in formato DTD, o ".xsd" per indicarlo in formato XML Schema.

  1. nirlight: definizione completa del DTD base.
  2. nirstrict: definizioni specifiche per documenti NIR con sintassi completa
  3. nirloose.dtd: definizioni specifiche per documenti NIR con sintassi flessibile
  4. globali.dtd: elementi ed attributi generici e condivisi dai moduli completo e flessibile
  5. norme.dtd: elementi specifici per parti normative strutturate condivisi dai moduli completo e flessibile
  6. testo.dtd: elementi specifici per parti testuali e non strutturate condivisi dai moduli completo e flessibile
  7. meta.dtd: elementi specifici per la descrizione di meta-informazioni condivisi dai moduli completo e flessibile
  8. proprietario.dtd: elementi specifici all'applicazione, esterni allo standard NIR condivisi dai moduli completo e flessibile

Sebbene l'uso di UTF-8 come codifica caratteri renda l'uso di entità carattere un'abitudine obsoleta e ingiustificata, Norme In Rete fornisce comunque sette file di entità per la gestione di caratteri speciali per ISO Latin 1:

  1. ISOlat1.pen: "ISO 8879-1986//ENTITIES Added Latin 1//EN//XML"
  2. ISOlat2.pen: "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
  3. ISOgrk3.pen: "ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
  4. ISOdia.pen: "ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
  5. ISOnum.pen: "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
  6. ISOpub.pen: "ISO 8879:1986//ENTITIES Publishing//EN//XML"
  7. ISOtech.pen: "ISO 8879:1986//ENTITIES General Technical//EN//XML"

Gli schemi descrivono tipi di documento come legge ordinaria, legge costituzionale, decreto-legge, decreto legislativo, decreto ministeriale numerato, regio decreto, dpr numerato, dpcm numerato, legge regionale, atto di authority, dpr non numerato, decreto ministeriale non numerato, dpcm non numerato, articolato, semi-articolato ed un tipo di documento senza una struttura predefinita, chiamato genericamente documentoNIR. Ovviamente vi sono molte similarità nelle strutture di questi documenti, tant'è vero che, sebbene con nomi diversi, esistono di fatto solo due classi di documenti normativi:

  1. il documento articolato completo
  2. il documento semi-articolato
In tutti i casi la dichiarazione di tipo è simile, richiamando sempre e solo uno dei due moduli nirloose o nirstrict, a seconda del tipo di verifiche che si vogliono effettuare. Ad esempio, per marcare una legge ordinaria si dovrà preparare il documento come segue:

<?xml version='1.0' ?>
<!DOCTYPE NIR SYSTEM "nirloose.dtd">
<NIR xmlns="http://www.normeinrete.it/nir/2.2">
   <leggeordinaria>
    ... 
   </leggeordinaria>
</NIR>
mentre un dpr non numerato si preparerà come segue:
<?xml version='1.0' ?>
<!DOCTYPE NIR SYSTEM "nirstrict.dtd">
<NIR xmlns="http://www.normeinrete.it/nir/2.2">
   <dprNN>
     ... 
   </dprNN>
</NIR>

Norme In Rete richieda una corretta qualificazione degli elementi XML dei documenti. A tal fine definisce due NameSpace? riservati agli elementi dei documenti di Norme In Rete. L'uso della corretta dichiarazione di namespace XML permette ai software di comprendere la versione del linguaggio utilizzata e dunque di attivare le opportune procedure di utilizzo, visualizzazione, ecc.

Il namespace definito è, nel caso dei documenti normativi, http://www.normeinrete.it/nir/2.2, mentre nel caso di meta-informazioni di tipo dispositivo, corrisponde a http://www.normeinrete.it/nir/disposizioni/2.2.

Il file nirlight.dtd

Il modulo nirlight.dtd costituisce un'unità a se stante, che descrive nella sua interezza il modello semplificato di documenti NIR. Questo significa che, a parte i documenti delle entità carattere, non sono necessari documenti accessori per la marcatura dei documenti normativi con questo DTD. Il DTD base rappresenta una radicale semplificazione del DTD flessibile, pensata soprattutto per agevolare e velocizzare le attività di marcatura nei casi privi di particolarità. La semplificazione avviene escludendo la maggior parte delle eccezioni e degli elementi facoltativi presenti nel DTD flessibile. Ovviamente questo ha un prezzo in generalità: infatti, mentre il DTD flessibile ha ambizioni di completezza (tutti i documenti normativi debbono essere marcabili correttamente con il DTD flessibile), esistono sicuramente documenti normativi che non sono descrivibili con il DTD base. Tra le scelte che caratterizzano il DTD base, sicuramente vanno ricordate: • la semplificazione degli elementi testuali: i cosiddetti content model misti (ovvero quelli in cui è possibile inserire sia testo che elementi inline) sono qui limitatissimi: oltre al testo, è possibile specificare soltanto l'esistenza di riferimenti e modifiche. • la rigidità degli elementi strutturati: la gerarchia dell'articolato è rigida e priva di eccezioni. Rubriche e numeri possono solo contenere testo. • L'eliminazione della maggior parte degli elementi facoltativi, soprattutto nelle metainformazioni. • L'obbligo di specificare come risorse esterne tutti gli annessi. Maggiori informazioni possono essere riscontrate nei commenti interni al DTD stesso. Va notato che a partire dalla versione del 1 novembre 2003 il DTD base allenta alcune (poche) regole la cui violazione impediva l'uso del DTD base in un grande numero di situazioni. L'effetto pratico, tuttavia, è che a partire da questa versione il DTD base non è più un sottoinsieme delle regole del DTD completo, ma del DTD flessibile.

I file nirloose.dtd e nirstrict.dtd

I due documenti "nirloose.dtd" e "nirstrict.dtd" sono estremamente simili e sono divisi in sezioni ben distinguibili. Dapprima vengono definite delle entità che costituiscono le differenze tra il DTD flessibile e quello completo, quindi vengono organizzate le inclusioni degli altri documenti (sia i DTD che le entità carattere) ed infine vengono elencate le classi di documenti definibili da questo gruppo di DTD.

Entità specifiche

Le differenze tra DTD si concentrano, al momento, nell'articolato. Di fatti in questa sezione vengono definiti (in maniera diversa tra i due moduli) i content model di articolato, libro, parte, titolo, capo, sezione, paragrafo, articolo e comma.

Rigore nella gerarchia

Nel DTD completo il content model di questi elementi segue la Circolare 20 aprile 2001, n. 1.1.26/10888/9.92 "Regole e raccomandazioni per la formulazione tecnica dei testi legislativi" (d'ora in poi denominata "Circolare"). Come stabilito nella Circolare, infatti, gli elementi strutturali sono, nell'ordine, libro, parte, titolo, capo e articolo. Inoltre il capo può ulteriormente essere diviso in sezioni. Le sezioni rompono dunque la simmetria dei contenimenti, perché possono solo comparire dentro a capi. Questo viene reso nel DTD. Il content model del DTD completo impone che un documento iniziante con elementi di un dato livello gerarchico debba poi continuare con elementi dello stesso livello. Viceversa, sebbene anche nel DTD flessibile questi elementi vengano presentati nello stesso ordine, in qualsiasi punto può essere inserito qualunque elemento della gerarchia, permettendo ad un documento normativo, ad esempio, di iniziare con alcuni articoli e proseguire diviso in parti o titoli. Il DTD flessibile permette inoltre l'inserimento di elementi di partizione non previsti usando l'elemento generico "partizione", e di elementi contenitore (al cui interno possono stare paragrafi ed altri elementi inconsueti), utilizzando l'elemento generico "contenitore".

Elemento paragrafo

Nel DTD completo, non essendo previsto dalla Circolare, il livello gerarchico 'paragrafo' non esiste. Tuttavia, alcune norme, tra cui i codici civile e penale, il codice di procedura civile e varie leggi (es. n. 87 del 1953 sulla Corte costituzionale o n. 633 del 1941 sul diritto d'autore) presentano il livello di paragrafo, compreso tra quello di sezione e quello di articolo. Il DTD flessibile, dunque, prevede anche questo elemento e lo inserisce nella posizione corretta della gerarchia.

Facoltatività di numero e rubrica

Nel DTD flessibile sia il numero che la rubrica di ogni elemento sono facoltativi, mentre nel DTD completo il numero diventa obbligatorio, anche se la rubrica resta facoltativa. Va inoltre specificato che l'elemento num può essere inserito in documenti che seguano il DTD base o flessibile anche se vuoto. Diventa dunque arbitrario, per questi tipi di documento, la soppressione dell'elemento num o il suo inserimento anche vuoto.

Elemento meta

Ad ogni livello della gerarchia è possibile (ma non obbligatorio) inserire un elemento 'inlinemeta' dove registrare meta-informazioni sulla parte così individuata, ivi compresi interventi redazionali, note ed altre informazioni rilevanti. Sebbene non vi siano differenze tra DTD completo e flessibile, questa osservazione è stata inserita qui per ovvie ragioni di opportunità.

Entità esterne: caratteri e DTD accessori

In questa sezione (identica nei due moduli) vengono definiti e inclusi gli altri moduli che costituiscono il DTD completo: ISOlat1.pen, ISOlat2.pen, ISOgrk3.pen, ISOdia.pen, ISOnum.pen, ISOpub.pen, ISOtech.pen, globali.dtd, norme.dtd, testo.dtd, table.dtd e meta.dtd.

Definizione degli elementi tipo-documento possibili

In questa sezione, identica nei due moduli, vengono definiti gli elementi tipo-documento (ovvero le classi di documenti) definibili con questi DTD, e la relativa lista di attributi. Le effettive descrizioni dei content model e degli attributi (attraverso apposite entità) sono in norme.dtd ed in global.dtd. I DTD di NormeInrete? definiscono dunque i seguenti tipi di documenti: legge ordinaria, legge costituzionale, decreto-legge, decreto legislativo, decreto ministeriale numerato, regio decreto, dpr numerato, dpcm numerato, legge regionale, atto di authority, dpr non numerato, decreto ministeriale non numerato, dpcm non numerato, articolato, semi-articolato ed un tipo di documento senza una struttura predefinita, chiamato genericamente documentoNIR. L'elemento radice è l'elemento NIR, che deve essere usato per ogni tipo di documento. Al suo interno è possibile scegliere uno dei possibili tipi di documento. Ogni elemento di tipo-documento ha assegnato uno dei due content model possibili per i documenti NIR: docarticolato e semi-articolato (in cui tutti gli elementi dell'articolato sono facoltativi ma possibili, e oltre agli elementi dell'articolato si possono trovare elementi testuali arbitrari, come blocchi di testo non strutturati gerarchicamente o gerarchie non standard). Attraverso l'attributo 'tipo' si specifica il tipo di intervento redazionale a cui è stato sottoposto. A questo proposito, si veda la sezione 4.2 Vigenza. I valori possibili sono 'originale', se il documento è esattamente nella forma in cui è stato pubblicato dalla fonte ufficiale del tipo di documento, vigente, se contiene tutte le modifiche dalla versione originale ad uno specifico momento nel tempo, o multi-vigente, se contiene, differenziate per tipo e data, le modifiche relative a due o più documenti di modifica sul documento. In nessun caso si potrà usare il valore 'originale' per documenti che sono stati rimaneggiati nel contenuto durante la fase di redazione del documento stesso. Tutti gli elementi condividono i blocchi di attributi definiti 'globalireq' e 'namespace'. Come meglio descritto nella sezione dedicata al modulo globali.dtd, dove questi blocchi di attributi sono effettivamente posti, il blocco 'globalireq' contiene gli attributi comuni alla maggior parte degli elementi del DTD (come stile, lingua e vigenza) più un ID obbligatorio ed univoco utile per la corretta identificazione dell'elemento. Il blocco 'namespace', invece, contiene le definizioni di namespace XML necessarie per la corretta attribuzione degli elementi e degli attributi presenti nei documenti NIR. La maggior parte dei tipi di elementi radice descrivono ovviamente i documenti con il nome corrispondente. Tuttavia, sono anche definiti tre tipi di documento dal nome generico: 'DocArticolato', 'SemiArticolato' e 'DocumentoNIR'. Questi servono per descrivere in maniera appropriata documenti che non rientrano in una delle categorie descritte, e che possono o meno avere strutture riconducibili a quelle dei documenti normativi. E' ovviamente possibile (e anzi doveroso) estendere la lista delle classi di documenti descritti da questo DTD ed includere quei documenti che sono e saranno di notevole importanza nella nostra legislazione. Tuttavia esisteranno inevitabilmente classi di documenti la cui presenza nel nostro ordinamento è del tutto episodica e per le quali non vale la pena estendere esplicitamente il DTD. Gli elementi generici succitati permetteranno di descrivere e strutturare correttamente anche tali documenti. L'attributo nome, come meglio spiegato nella sezione dedicata al modulo globali.dtd, permette di qualificare in modo appropriato queste classi senza creare un nuovo elemento ad hoc.

Il file globali.dtd

Il modulo globali.dtd contiene la definizione di entità usate in tutti i documenti. Tre sono gli scopi principali di questo modulo: definire attributi e blocchi di attributi comuni a molti elementi, definire content model condivisi da molti elementi, e definire elementi generici che possano, dopo opportuna denominazione, essere usati per tutti gli scopi strutturali che al momento non sono prevedibili.

Entità: attributi comuni agli elementi del DTD

In questa sezione si definiscono attributi singoli e gruppi di attributi. NAMESPACE - In questo gruppo si definiscono i tre namespace usati dagli elementi del DTD NormeInRete? (meta-informazioni a parte): il NameSpace? proprio diNormeInRete (a proposito del quale si veda sopra), il NameSpace? di XLink (per gli attributi con caratteristiche ipertestuali dei documenti NIR) e il NameSpace? di HTML 4 per gli attributi di stile, lingua e classe utilizzati per gli stili CSS. Questi attributi debbono essere presenti negli elementi radice che li utilizzano. Inoltre si fornisce in questa maniera un prefisso definitivo agli elementi dei vari NameSpace?, aumentando notevolmente la chiarezza e soprattutto permettendo ad elementi di NameSpace? diversi di essere valutati e validati attraverso l'uso di DTD. Nel modulo meta.dtd è definito un ulteriore NameSpace? relativo agli elementi di analisi delle disposizioni dei documenti normativi. LINK - Al fine di rendere immediatamente il DTD NormeInRete? compatibile con il futuro standard XLink, la definizione degli attributi con caratteristiche ipertestuali avviene usando la forma più semplice degli XLink, ossia attraverso l'uso di un NameSpace? apposito, un attributo xlink:type con valore fissato a simple, e la destinazione del link con l'attributo xlink:href. NOME - Come chiarito più avanti, nella sezione dedicata agli elementi generici del modulo testo.dtd, l'attributo "nome" viene usato per dare un nome significativo a parti dei documenti che, in mancanza di elementi specifici, vengono descritti con un elemento generico. CSS - In questo gruppo si definiscono tre attributi, due dei quali direttamente ereditati da HTML. Per questa ragione si è assegnato loro un NameSpace? proprio, appunto quello di HTML 4.0. Il primo e più semplice è l'attributo xml:lang, previsto nella specifica XML e che qui diventa predefinito, che permette di specificare la lingua in cui viene espresso un elemento del documento. I valori possibili sono i codici di due lettere di [RFC1766] ("Tags for the Identification of Languages", H. Alvestrand, March 1995, http://www.ietf.org/rfc/rfc1766.txt). Per coerenza, si suppone che il valore dell'attributo css:lang venga ereditato da tutti gli elementi contenuti nell'elemento che lo definisce. Gli attributi h:style e h:class servono per associare stili CSS ad elementi del documento NIR. Lo standard CSS ("Cascading Style Sheets, level 2", B. Bos, H. W. Lie, C. Lilley, and I. Jacobs, 12 May 1998, http://www.w3.org/TR/1998/REC-CSS2-19980512) permette di definire semantiche di presentazione di buon livello e facilmente utilizzabili sia in stampa che su video. In generale si suppone che gli elementi dei documenti NIR abbiano una semantica di presentazione standard, che permetta di porre in evidenza, ad esempio, titoli e numeri di parti e sezioni, ecc. Tuttavia, può capitare che a volte alcune parti del testo richiedano una semantica di presentazione ad hoc (ad esempio, il legislatore può aver messo alcune parole in grassetto). Quando dunque alcune parti dei documenti debbono avere una presentazione particolare, e tuttavia mancano elementi specifici che rendano il significato soggiacente a questa presentazione particolare, sarà opportuno associare a tali parti uno stile CSS specifico. Lo stile può essere posto internamente o esternamente. Nel primo caso, nella sintassi CSS, esso verrà posto come valore dell'attributo h:style. Nel secondo caso l'attributo id verrà usato per identificare il singolo elemento a cui associare lo stile in questione, mentre l'attributo h:class verrà adoperato per esprimere l'appartenenza dell'elemento ad una classe cui lo stile CSS viene associato. IDREQ e IDFAC - Molti elementi del DTD di NormeInRete? ammettono un attributo che identifichi in maniera univoca l'elemento. In tutti i casi di elementi fondamentali per la struttura, l'id è obbligatorio. In altri casi, è data possibilità al redattore di specificare o meno un identificativo. GLOBALIREQ e GLOBALIFAC - Queste sono le entità che vengono effettivamente utilizzati nella definizione degli attributi degli elementi del DTD di NormeInRete?. Essi comprendono gli attributi di vigenza, gli attributi di stile e l'attributo di identificazione (rispettivamente obbligatorio e facoltativo).

La vigenza dei documenti

Gli attributi dell'entità vigenza permettono di controllare e specificare la gestione del consolidamento e dell'esclusione selettiva di parti del documento normativo per ragioni redazionali. Secondo l'attributo 'tipo' dell'elemento radice, infatti, i documenti NIR possono essere o 'originali' (il loro contenuto rispecchia il documento pubblicato nella forma originale dalla fonte ufficiale del tipo di documenti) oppure soggetti a lavoro redazionale per aggiornarne o filtrarne il contenuto. Solo nel primo caso è possibile usare il valore 'originale' per l'attributo 'tipo' dell'elemento NIR. Tra i documenti con intervento redazionale, possiamo distinguere i documenti in 'vigenti' e 'multi-vigenti'. Un documento 'vigente' è un documento normativo in cui la redazione, in base a tecniche e analisi esterne alla competenza di questo gruppo di lavoro, ha realizzato un documento consolidato ad una data specificata senza necessariamente indicare nel documento quali cambiamenti siano stati effettuati a partire dal testo originale. Il documento permette dunque di stabilire il contenuto per un'unico periodo di vigenza, che viene indicata nelle meta-informazioni del documento stesso. Un documento 'multi-vigente', invece, presenta contenuti attribuibili a più periodi di vigenza successivi, ed in particolare può presentare versioni multiple dello stesso frammento (ad esempio, più versioni di un articolo o di un comma), ciascuna attribuibile ad un periodo di vigenza diverso. La specifica del contenuto multi-vigente avviene in due fasi: nella prima fase, all'interno del blocco delle meta-informazioni, si indicano nell'elemento 'vigenza' le date rilevanti per ogni cambiamento di contenuto del documento; ad ogni vigenza è associato un identificativo univoco, la data di inizio rilevanza e l'indicazione del riferimento passivo al provvedimento che impone la modifica del contenuto. Nella seconda fase, si associano le varie parti di testo modificato alle vigenze così specificate. Per ogni elemento che è stato modificato, si indicheranno allora, dove appropriato, la data di inizio vigenza, di fine vigenza, di inizio sospensione, di fine sospensione, indicando sempre l'identificativo dell'elemento vigenza appropriato. La mancanza di inizio sospensione o di fine vigenza indicano che il testo è vigente alla data ultima di vigenza del documento (ad esempio, ad oggi). La mancanza di inizio vigenza indica che il testo proviene direttamente dalla prima vigenza indicata (vale a dire, dal testo originale della norma). Attraverso l'attributo 'status' verrà giustificata l'assenza di una parte del testo per ragioni redazionali (ad esempio, di filtro o di irrilevanza per il lettore). Se la redazione decide dunque di non riportare nel documento una parte del testo, gli elementi relativi dovranno essere comunque usati, ma attraverso l'attributo facoltativo 'status' (con il valore 'abrogato' o 'omissis' a seconda della situazione). In tutti i casi, gli attributi status, inizio, fine, iniziosospensione e finesospensione possono essere associati a qualunque parte del documento, dai singoli commi ad intere partizioni. Nel caso si debbano indicare valori di vigenza di singole parole o di brevi frasi all'interno di una partizione, si suggerisce di circondare il testo da un elemento 'span' con gli attributi di vigenza appropriati.

Entità: content model comuni ai vari tipi di elementi

Gli elementi dei DTD completo e flessibile di NIR appartengono a cinque livelli di strutturazione diversa, corrispondenti ad altrettanti diversi tipi di content model: ELEMENTI VUOTI. Sono elementi privi di contenuto testuale. Rappresentano "posizioni" all'interno del documento, oggetti non ulteriormente suddivisibili. In sintassi XML sono corrispondenti al solo tag di apertura. Ad esempio, '
' ELEMENTI INLINE. Detti anche PhraseLevel? nella nomenclatura HTML, sono elementi che stanno all'interno dei blocchi (i.e. paragrafi) e identificano parti di testo aventi una giustificazione semantica, strutturale o tipografica del testo. Ad esempio '' per il corsivo oppure '' per un riferimento ad un testo normativo. ELEMENTI DI BLOCCO. Detti anche ParaLevel? nella nomenclatura HTML, sono elementi che separano il testo in blocchi a sequenza verticale, come i paragrafi. Ad esempio '

' ELEMENTI CONTENITORE. Sono elementi che definiscono al loro interno elementi speciali, o che modificano il senso ed il comportamento di elementi definiti anche altrove. Questi sono cioè elementi privi di una particolare visualizzazione predefinita, ma che definiscono un contesto all'interno dei quali sono possibili elementi che al di fuori non sono definiti. Ad esempio '

', che permette di definire tabelle composte di righe e celle, o '', che permette di definire elementi strutturati come articolo o libro. ELEMENTI SPECIALI. Sono elementi utilizzabili solo all'interno di determinati contesti (alcuni elementi contenitore) che li giustificano e li permettono. Ad esempio '' è definito solo all'interno di '
', e '' è definito solo all'interno di ''. Poiché si vuole ottenere di specificare in maniera semplice il content model degli elementi del DTD, sono state create alcune entità, che permettono di raccogliere insieme gli elementi vuoti, gli elementi inline, gli elementi blocco e gli elementi contenitore definiti nei vari moduli da cui è composto il DTD: elementi generici e testuali (in testo.dtd), ed elementi specifici delle norme (in norme.dtd). Queste entità vengono poi raccolte in entità globali usate per i content model effettivi degli elementi: • el_inline comprende #PCDATA (cioè testo) più gli elementi inline e gli elementi vuoti, ovvero tutti gli elementi che possono apparire all'interno di un blocco; • inline rappresenta una selezione ripetibile di elementi el_inline, ovvero il content model standard per gli elementi inline e blocchi; Si sono separate le due definizioni perché, stante le limitazioni nell'uso di PCDATA nei content model, elementi che definiscano ulteriori elementi al loro interno (come form e mod) possono comunque essere definiti tranquillamente. • blocchi rappresenta una selezione ripetibile di elementi blocco, ovvero il content model standard di elementi contenitore. • strutture rappresenta una selezione ripetibile di elementi strutturalmente rilevanti. • PhraseLevel? e ParaLevel? sono la nomenclatura standard HTML per, rispettivamente, inline e blocchi, e sono definite perché usate in nella tabella. Il DTD base, invece, prevede una lista molto più semplice di elementi inline, ed una differenziazione tra quelli utilizzabili all'interno degli articolati e quelli utilizzabili nelle parti testuali (come preamboli, allegati, note).

Nota del redattore

L'elemento ndr è stato inserito per permettere alla redazione di inserire un riferimento ad una nota (il cui testo è posto nelle meta-informazioni). L'attributo 'num' specifica l'attributo id della nota, mentre l'attributo 'value' specifica il valore del riferimento da visualizzare all'interno del documento. A partire dalla versione del 1 novembre 2003 l'attributo value viene sostituito da un vero e proprio content model dell'elemento, all'interno del quale è possibile specificare ogni testo redazionale si voglia mostrare fianco a fianco del testo normativo. L'attributo value risulta dunque inutile ed è deprecato nei nuovi documenti.

Elementi generici

Gli elementi generici sono introdotti per descrivere parti di testo che, pur non essendo considerate nel DTD, hanno comunque una rilevanza particolare. L'attributo 'nome' permette di assegnare un nome significativo a questi elementi senza modificare il DTD. Si può addirittura intendere che qualunque elemento dotato di un nome specifico possa essere considerato equivalente al corrispondente elemento generico con un apposito valore per l'attributo 'nome'. Così, ad esempio, le dizioni e debbono essere considerate equivalenti. Analogamente è equivalente di e è equivalente di , ecc. L'uso di elementi generici è particolarmente utile nel caso si voglia attribuire ad una parte del documento un attributo specifico anche se essa non corrisponde a nessuna suddivisione ufficiale della gerarchia. Ad esempio, se il legislatore ha posto in grassetto alcune parole all'interno del corpo di un comma, sarà possibile circondare queste parole con l'elemento (o in modo equivalente con l'elemento o ancora più semplicemente con l'elemento ). Nel caso di un testo consolidato, due parole abrogate a partire dal giorno 5/10/98 possono essere circondate da un elemento . Gli elementi generici sono allora: vuoto, inlinea, blocco, e contenitore. Inoltre è definita una gerarchia aperta di elementi a nove livelli, che permette di specificare strutture gerarchiche arbitrarie o appartenenti a normative non standard o con eccezioni rispetto alla strutturazione della Circolare. Tutti gli elementi della gerarchia hanno un numero ed un titolo facoltativo, e richiedono un id obbligatorio. Similmente si può trattare degli elementi DocArticolato?, Semiarticolato e DocumentoNIR?, elementi generici usati per descrivere interi documenti dei rispettivi tipi.

Il file testo.dtd

Nel modulo testo.dtd trovano posto le definizioni degli elementi con semantica non legata alla normazione, ma comunque utili nella strutturazione dei documenti di NormeInRete?.In esso si ridefiniscono, con opportune variazioni, elementi tratti da HTML.

Elementi con content model EMPTY

• br : ritorno a capo obbligato, senza divisione in blocchi • hr : linea orizzontale, separatore di sezioni • input: elemento di inserimento dati all'interno di un form (vedi oltre)

Elementi di tipo inline

• b : elementi visualizzati in grassetto • i : elementi visualizzati in corsivo • u : elementi visualizzati sottolineati • sub : elementi visualizzati come pedice • sup : elementi visualizzati come apice • span : elemento generico HTML di tipo inline • a : link ipertestuale generico, senza connotazioni legate alle norme

Elementi di tipo blocco e form

• p : paragrafo standard • div : elemento generico HTML di tipo blocco • form : elemento che introduce un modulo completabile dall'utente

Specifica di tabelle

Per la specifica di tabelle con un linguaggio di markup esistono due modelli di particolare diffusione, la cui conoscenza è sufficientemente diffusa da garantire l'esistenza di appositi strumenti di creazione e visualizzazione per le tabelle così descritte: • Il modello di tabelle CALS (identificativo pubblico "-//USA-DOD//DTD Table Model 951010//EN") usato all'interno dell'iniziativa CALS del Ministero della Difesa USA, • Il modello di tabelle HTML4, descritto in un'apposita sezione del DTD di HTML versione 4.0 (identificativo pubblico "-//W3C//DTD HTML 4.0 Strict//EN"), come proposto dal World Wide Web Comittee. Entrambi sono modelli SGML di tabelle, di cui non esiste, al momento, una versione XML ufficiale. Tuttavia di entrambi esistono versioni XML ufficiose sufficientemente dettagliate e rispettose da poterne permettere un uso affidabile. Per ragioni di semplicità, diffusione e facilità di uso, si è scelto il modello HTML4. Il modulo qui fornito è una versione semplificata ma fedele del modulo tabelle del DTD di HTML espresso in SGML.

Il file norme.dtd

Nel modulo norme.dtd vengono raccolti tutti gli elementi con semantica connessa agli atti normativi. Questo modulo, che è il cuore del DTD di NormeInRete?, permette di descrivere testi di natura normativa identificandone appropriatamente gli elementi costituenti. Due sono state le scelte programmatiche di fondo: l'adesione alla Circolare e la sussidiarietà dei vincoli del DTD alle scelte del legislatore. Quest'ultimo aspetto in particolare significa adeguare i permessi del DTD a ciò che è stato effettivamente inserito nei documenti reali, senza imporre vincoli - per quanto ragionevoli - su documenti che ormai non possono più essere modificati. Ad esempio, ciò significa non imporre una numerazione automatica delle parti gerarchiche, bensì accettare qualunque valore (anche eventualmente sbagliato) sia stato ufficialmente pubblicato. Ovviamente sarebbe stato possibile, nel DTD prescrittivo, fornire una regola di numerazione automatica, ma questo avrebbe reso i documenti scritti secondo questo DTD incoerenti con quelli scritti secondo il DTD descrittivo, più flessibile, e ciò avrebbe creato una distinzione inaccettabile ed ingiustificata tra i documenti marcati secondo i due DTD. Il modulo norme.dtd introduce due categorie di elementi ben distinti ed analogamente importanti: gli elementi della struttura dell'atto normativo, e gli elementi inline con semantica rilevante ai fini della normazione. La prima categoria comprende quegli elementi che costituiscono l'ossatura di un documento normativo, come l'intestazione, la conclusione, e tutti gli elementi dell'articolato. Nella seconda, invece, comprendiamo gli elementi volti ad identificare quelle parti del testo normativo che hanno un significato ritenuto semanticamente rilevante indipendentemente dalla loro posizione all'interno del documento normativo (ad esempio in rubriche, corpi dei commi, annessi, ecc.). Tra questi vi sono, ad esempio, i riferimenti, le specificazioni di atti, soggetti, enti, date e luoghi.

Entità: attributi comuni

Sono qui poste tre definizioni di attributi usati in vari elementi del modulo. Essi sono 'norm', per esprimere un valore normalizzato di data e/o ora, 'luogo' per fornire un eventuale identificativo a luoghi geografici di particolare rilevanza, e 'codice' per fornire un codice identificativo ad organizzazioni o ruoli citati nel testo. In tutti e tre i casi i valori (descritti dettagliatamente nel seguito) servono per fornire un valore standardizzato utilizzabile in maniera sicura in ricerche, collezioni e confronti.

Strutture fondamentali dei documenti normativi

In questa sezione vengono descritti i due tipi di documenti con struttura di atto normativo previsti dal DTD di NormeInRete?: l'articolato e il semi-articolato. Il tipo articolato si applica a quei documenti che hanno la struttura esatta di documento normativo, con intestazione, formula di approvazione, articolato, formula finale, conclusione, eventuali annessi. Con il tipo semi-articolato si intende invece descrivere quei documenti che, come i precedenti, hanno una sovrastruttura di documento normativo (con intestazione, forse una formula di approvazione, forse un preambolo, ecc.), ma che o sono privi di una sezione di articolato propriamente detta, oppure hanno una sezione di articolato sufficientemente diversa da quelle descritte negli altri tipi, così da dover essere descritta in maniera specifica e senza vincoli preimposti. In questo caso, tutti gli elementi di tipo normativo sono possibili ma facoltativi, per comprendere il maggior numero possibile di varietà.

Elementi dell'intestazione

Seguendo la Circolare, ogni documento normativo possiede un'intestazione composta da un tipo di documento, una data, un numero d'ordine, ed un titolo.

Formula iniziale e finale

In conformità al principio di sussidiarietà espresso in precedenza, le formule di rito iniziali e finali, sebbene obbligate e ripetute tra tutti i documenti di uno stesso tipo, sono comunque previste ed appositamente marcate. Esse sono divise in blocchi (ad esempio elementi "p" o "div").

Elementi dell'articolato

Come già descritto in precedenza, l'articolato si compone di libro, parte, titolo, capo, sezione, paragrafo ed articolo secondo i content model specificati dei DTD completo e flessibile. Ogni elemento della gerarchia ha o può avere ulteriormente una rubrica testuale ed un numero d'ordine; inoltre esso ha i soliti attributi ed in particolare un identificatore obbligato.

Elementi sotto l'articolo

Un articolo è composto di commi, che contengono o un corpo di testo o un elenco di elementi lettera. Il DTD prevede due tipi di elenchi, quelli composti di elementi lettera (el) e quelli composti di elementi numero (en). Questi tipi sono annidabili. La circolare del 2001 prevede che si inizi, dentro al comma, con elementi lettera, e si prosegua con elementi numero. Questo vincolo è imposto nel DTD completo, ma rilassato nei DTD base e flessibile, a fronte dell'alto numero di norme dove questo ordine è ignorato. Ogni elenco è introdotto da un elemento alinea obbligatorio e seguito da un elemento coda facoltativo. Gli elementi di un elenco sono dotati degli attributi soliti, ma l'identificatore è facoltativo.

Decorazioni

Articoli e commi presentano un'ulteriore caratteristica, chiamata genericamente decorazione. E' noto infatti che, soprattutto nei testi unici, esiste l'abitudine di specificare nei pressi della rubrica l'origine normativa dell'articolo stesso. La recente disciplina dei testi unici misti, poi, prevede la specificazione del valore legislativo, regolamentare, o misto, dell'articolo o del comma. All'interno della decorazione (facoltativa) vanno poste informazioni aggiuntive rispetto alla rubrica dell'articolo o al corpo del comma, ed il rango (legislativo o regolamentare) dell'articolo o del comma medesimo.

Elementi della conclusione

Una conclusione è composta da un elemento dataeluogo e dalle sottoscrizioni. L'elemento dataeluogo comprende quella parte della conclusione in cui si specificano la data e il luogo in cui viene firmato il documento. Gli attributi norm e luogo permettono di fornire valori normalizzati di queste informazioni. Il blocco di sottoscrizioni è composto da zero o più sottoscriventi e da un elemento visto. Per sottoscrizioni e visto, piuttosto che fornire la tipologia dei possibili sottoscriventi, inevitabilmente sterminata, si è preferito permettere blocchi di testo arbitrari, con il sottinteso che tutti i nomi e tutti i ruoli vengano adeguatamente inseriti all'interno di appositi elementi 'soggetto'.

Elementi degli annessi

Un documento normativo può contenere una tipologia molto ampia di annessi, da semplici elementi testuali, a complesse tabelle, ad interi documenti strutturati. Inoltre deve essere possibile decidere liberamente di porre il corpo dell'annesso all'interno del documento ospite, oppure esternamente, in un documento autonomo. Dunque la parte degli annessi è divisa in un uno o più elementi annesso, eventualmente preceduti da un elenco di annessi, a sua volta composto di blocchi di testo. Ogni elemento annesso è o un riferimento esterno ad un documento autonomo, oppure un documento completo tra quelli precedentemente definiti. L'annesso, in qualunque forma venga posto rispetto al documento ospite, può comunque essere preceduto da una testata che fornisce gli elementi di giunzione tra i due documenti. Questi sono la denominazione dell'annesso (il modo in cui il documento ospite introduce l'annesso, ad esempio "Allegato A"), il titolo proprio dell'annesso, ed il pre-annesso. Tutti questi elementi possono contenere al loro interno blocchi di testo e sono facoltativi. La scelta di usare un riferimento esterno o di includere l'annesso nel corpo del documento principale deve restare assolutamente equivalente per i fini della marcatura NIR, ed essere giustificata unicamente da ragioni di comodità. Fanno eccezione a questa regola quegli annessi che per loro natura non possono essere codificati in XML, come immagini, schemi tecnici, ecc., i quali debbono necessariamente essere posti all'esterno del documento, e quegli annessi che, avendo valore di documento autonomo, debbono possedere un proprio URN e ricevere riferimenti espliciti in maniera autonoma dal documento annettente. Altrimenti, la scelta deve essere guidata da criteri di comodità e ragionevolezza. In linea generale, può essere suggerito di sicuramente includere nel documento quegli annessi che per dimensioni o rilevanza non meritano lo status di documento autonomo (brevi testi, semplici tabelle, ecc.), e porre esternamente invece gli annessi più lunghi e strutturati.

Elementi inline e speciali

Il DTD di NormeInRete? definisce alcuni elementi inline come dotati di un preciso significato la cui marcatura è utile per applicazioni sofisticate di ricerca o rielaborazione dei documenti stessi. Questi elementi possono apparire ovunque nel testo di un documento normativo, e anche indipendentemente dalla presenza di un articolato o di altre sovra-strutture imposte. Gli elementi inline di questo tipo sono: • rif: un riferimento esplicito ad un altro testo. L'attributo xlink:href permette di fornire l'identificativo del documento riferito. Si usi a questo proposito l'URN più specifico. Identificare queste parti è obbligatorio. Ad esempio (Decreto Legislativo 28 dicembre 2001, n. 467, art. 1, comma 1): 1. Agli effetti dell'applicazione del presente decreto si applicano le definizioni elencate nell' articolo 1, comma 2, della legge 31 dicembre 1996, n. 675. • mrif: un riferimento esplicito multiplo ovvero a più parti di uno stesso provvedimento. In questo caso gli elementi rif precisati al suo interno sono da intendersi appartenenti al riferimento multiplo. Ad esempio (Decreto Legislativo 28 dicembre 2001, n. 467, art. 3, comma 4): 4. Le disposizioni di cui all'articolo 7, commi 3, 4, 5, 5-bis, 5-ter, 5-quater e 5-quinquies, 13, comma 1, lettera b) e 28, comma 7, della legge 31 dicembre 1996, n. 675 sono abrogate a decorrere dalla data di entrata in vigore delle modifiche apportate al regolamento di cui all' articolo 33, comma 3, della medesima legge in applicazione del comma 1 del presente articolo. • mod, virgolette : un riferimento modificativo complesso. Esso contiene testo qualunque, uno o più riferimenti, zero o più riferimenti a testo esistente o da sostituire (dette anche novelle). L'elemento "virgolette" serve per identificare parti di testo, solitamente tra virgolette, che identificano le parti di testo esistente o le novelle da sostituirvi. L'attributo "tipo" permette di determinare se le virgolette contengono una struttura o alcune parole. Identificare queste parti è obbligatorio. Ad esempio (Decreto Legislativo 28 dicembre 2001, n. 467, art. 5, comma 1 e articolo 8 comma 2): 1. Nell' articolo 12, comma 1, lettera b), della legge 31 dicembre 1996, n. 675, le parole: per l'acquisizione di informative precontrattuali attivate sono sostituite dalle seguenti: per l'esecuzione di misure precontrattuali adottate. 1. Nell'articolo 22 della legge 31 dicembre 1996, n. 675, il comma 4 e' sostituito dal seguente: 4. I dati personali indicati al comma 1 possono essere oggetto di trattamento previa autorizzazione del Garante: a) qualora il trattamento sia effettuato da associazioni, enti od organismi senza scopo di lucro, anche non riconosciuti, a carattere politico, filosofico, religioso o sindacale, ivi compresi partiti e movimenti politici, confessioni e comunita' religiose, ... ...

Gli elempi precedenti ci mostrano due dettagli importanti nella gestione dei riferimenti modificativi: da una parte, che i virgolettati mantengono la numerazione e gli identificativi che avrebbero all'interno del documento di provenienza. Dall'altra, che il ruolo degli elementi virgolettati (testo sostituendo, testo sostitutivo, ecc.) non viene precisato nell'elemento mod. Al contrario, visto il numero e la compelssità di casi che si possono presentare, si è preferito porre questo tipo di informazione nella sezione delle disposizioni delle metainformazioni, dove è possibile descrivere con precisione un'ampia gamma di casi possibili. • def: la definizione di un termine usato frequentemente nel documento. Questo permette la creazione di link automatici alla definizione di un termine particolarmente rilevante all'interno di un documento normativo. Identificare queste parti di documento è facoltativo. • atto, soggetto, ente, importo: elementi da usare per esplicitare atti, soggetti, enti ed importi citati nel documento. L'attributo codice permette di specificare in maniera non ambigua l'atto, il soggetto o l'ente identificato facendo riferimento ad una lista ufficiale di valori leciti. Identificare queste parti di documento è facoltativo. • data, luogo: elementi usati per esplicitare quelle parti del testo normativo che fanno riferimento ad una data o ad un luogo preciso. L'attributo norm serve per esprimere un valore normalizzato (e quindi utilizzabile in maniera sicura per ricerche e confronti) della data o del luogo in questione. Inoltre l'elemento data va usato per date presenti in senso proprio nel documento, e non laddove la data sia elemento specificante un riferimento ad altro documento. Nella prossima sezione viene fornita la sintassi per questo tipo di valori. Identificare queste parti di documento è facoltativo.

Sintassi dei valori di alcuni attributi rilevanti

In questa sezione si forniscono le sintassi imposte ai valori di alcuni attributi rilevanti per il DTD di NormeInRete?. Sebbene la specifica di queste sintassi non sia posta all'interno del DTD, essa ha comunque valore prescrittivo per questi documenti. NormeInRete? impone valori agli attributi xlink:href, id, norm e codice.

xlink:href

Con l'attributo xlink:href si specificano le destinazioni di riferimenti ed altri elementi di natura ipertestuale. Il valore di un attributo xlink:href deve essere necessariamente un URI. Se la destinazione è un documento di natura normativa, si richiede l'uso di un URN, secondo la sintassi definita dal gruppo di lavoro degli URN di NormeInRete?. La indicazione di locazioni interne ad un documento di natura normativa passa attraverso l'uso della sintassi "hash" degli URI, aggiungendo all'URN del documento il carattere "#" e una specificazione della locazione interna. Questa specificazione può essere o un XPointer che individua la locazione prescelta, oppure, preferibilmente, l'identificativo se esistente dell'elemento desiderato. Questo identificativo è posto come valore dell'attributo 'id', specificato di seguito.

id

Nell'attributo id si fornisce un valore che identifica univocamente l'elemento all'interno del documento normativo. Questo permette l'immediata identificazione dell'elemento per link ipertestuali, riferimenti di meta-informazioni, ecc. Un id è composto da uno o più blocchi di lunghezza variabile, ciascuno ad individuare con dettaglio crescente il percorso identificativo dell'elemento, separati dal carattere '-'. Ogni blocco è composto da una sigla di tre lettere minuscole (il tipo di elemento), un numero (il numero d'ordine dell'elemento), ed eventualmente la specificazione aggiuntiva (come bis, ter, ecc.). La sigla è scelta ove possibile dal seguente elenco: tipo di componente nome elemento sigla libro libro lib parte parte prt titolo titolo tit capo capo cap sezione sezione sez paragrafo paragrafo prg articolo articolo art comma comma com lettera el let numero en num annesso annesso ann preambolo preambolo pre riferimenti rif, a rif riferimento modificativo mod mod virgolettato virgolette vir redazionali nota, avvertenza, altro n vigenza vigenza v relazioni originale, attiva, passiva, giurisprudenza ro, ra, rp, rg elementi vuoti br, hr, input inl elementi inline b,i,u,sub,... inl elementi blocco p, div, form, ... blc elementi generici vuoto, inlinea, gerarchia, l1, ..., l9 le prime tre lettere dell'attributo 'nome' se non uguali ad altra sigla. Il numero è ove possibile il numero d'ordine esplicito dell'elemento, e altrimenti il numero d'ordine assoluto dell'elemento all'interno degli elementi con la stessa sigla (ad esempio, il terzo elemento inline del documento: "inl3"). Il numero va posto in cifre. La specificazione aggiuntiva va posta solo quando il numero d'ordine dell'elemento gerarchico presenta elementi aggiuntivi (bis, ter, ecc.). Ad esempio: elemento valore dell'attributo 'id' articolo 12 art12 terza sezione del capo IV del II libro lib2-cap4-sez3 numero 5 della lettera c dell'articolo 142 ter art142ter-let3-num5 terzo paragrafo del primo annesso ann1-blc3 Nel caso in cui la numerazione aggiuntiva sia posta prima del numero 1, si prevede una numerazione preceduta dallo zero: 01, 02, ecc. In questo caso la parte numerica sarà analogamente composta da tanti zeri quanti sono quelli posti nel documento. Ad esempio: articolo 02 art02 Nel caso di situazioni non descritte dalla presente discussione, sarà possibile creare un identificativo arbitrario, purché abbia le seguenti caratteristiche: che sia unico all'interno del documento; che sia composto di uno o più blocchi gerarchici separati da '-'; che segua ove possibile lo schema lll9999agg: tre lettere, un numero in cifre, una stringa eventuale aggiuntiva. Una discussione a parte va fatta per le strutture poste all'interno dell'elemento virgolette. Questo elemento contiene brevi testi o intere strutture utilizzate per riferimenti modificativi. Anche all'interno degli eleemnti virgolette il testo modificato va correttamente strutturato secondo le regole dei DTD NormeInRete?. Tuttavia può ben presentarsi il caso in cui un riferimento modificativo contenga per intero una struttura (ad esempio l'articolo 10 del documento da modificare) il cui id è già utilizzato all'interno del documento modificante secondo la struttura propria del documento. Questo impedisce l'uso di id semplici, secondo le regole qui riportate, per strutture poste all'interno di elementi virgolette. Per questo motivo si impone l'uso di un prefisso per tutti questi elementi, corrispondente all'id dell'elemento virgolette stesso. Dunque se il primo elemento virgolette della terza modifica di un elemento (avente cioé id "mod3-vir1" contiene l'intero articolo 10 del documento da modificare, questo avrà come id "mod3-vir1-art10". I testi coordinati dovranno di conseguenza eliminare il prefisso dell'id quando genereranno il testo modificato dalla norma in questione. Nei rarissimi casi in cui l'id della struttura destinataria della modifica non sia nota in anticipo, è possibile che l'id posto dentro all'elemento virgolette contenga una sequenza di tre punti interrogativi ("???") a sostituzione di quelle parti che non sono ancora note. All'atto della generazione del testo coordinato questi riferimenti, ovviamente, dovranno essere risolti completamente.

norm

L'attributo norm fornisce un valore normalizzato agli elementi di tipo data (data, dataeluogo, dataDoc). Poiché vi può essere grande variabilità nel modo di esprimere una data in un documento normativo, il valore normalizzato fornisce una sintassi stabile e prevedibile utilizzabile nelle ricerche ed in ogni applicazione in cui la conoscenza esatta della data sia importante. Il valore normalizzato dovrà essere una stringa di 8 caratteri (AAAAMMGG), in cui, da sinistra a destra, 4 caratteri indicano l'anno, 2 il mese e 2 il giorno. Se nel testo viene anche precisata un'ora o un momento preciso, questi dovranno essere specificati con una stringa aggiuntiva di lunghezza variabile (hHHMM[SS[FFF]] dove la parentesi quadra indica facoltatività), in cui da sinistra a destra sono poste una lettera "h" minuscola, due cifre per l'ora, due cifre per i minuti, due cifre facoltative per i secondi e tre cifre ulteriormente facoltative per la eventuale frazione di secondo. Ad esempio: alla mezzanotte del 12 ottobre 1999

codice

L'attributo codice fornisce un valore normalizzato ad atti, soggetti ed enti citati nei documenti normativi. Poiché vi può essere grande variabilità nel modo in cui essi sono chiamati, l'attributo codice fornisce un meccanismo stabile e prevedibile da usare in ricerche ed altre applicazioni. I valori assegnabili all'attributo codice vanno specificati in apposite tabelle, che associno in maniera stabile e prevedibile un codice arbitrario ad ogni atto, soggetto od ente ritenuto interessante. L'estensione di queste tabelle, per quanto atto importante e ineluttabile, è ovviamente al di fuori della competenza di questo gruppo di lavoro.

Il file meta.dtd

Nel file meta.dtd vengono descritte le tipologie previste di metainformazioni associabili ai documenti ed alle parti di documento descritte con il DTD di NormeInRete?. In realtà le metainformazioni spalancano infinite possibilità di valore aggiunto, di cui per il momento solo alcune sono suggerite in questo documento, e si prevede di lasciare ampio spazio ad ulteriori approfondimenti. Va notato che il DTD non suggerisce che le metainformazioni debbano essere poste all'interno del documento, né che debba esistere un unico blocco di metainformazioni per ogni documento. Esso fornisce una sintassi ed un'organizzazione delle meta-informazioni e, indipendentemente, indica le posizioni standard nel documento dove inserire tali meta-informazioni, nel caso si fosse deciso di porle internamente. Il DTD di NormeInRete? individua due tipi di metainformazioni: le meta-informazioni di documento (elemento 'meta') e le metainformazioni locali all'interno del documento (elemento 'inlinemeta'). Nell'elemento 'meta' vanno poste le metainformazioni di descrizione e quelle relative ai lavori preparatori, oltre alle meta-informazioni redazionali, proprietarie e delle disposizioni. Il DTD di NormeInRete? permette di descrivere le seguenti tipologie di meta-informazioni: • Descrittori: sono alcune metainformazioni fondamentali per descrivere il documento in questione. Tra queste ricordiamo la pubblicazione ufficiale del documento, l'urn a cui associare il documento, il o gli eventuali alias (altre forme testuali con cui il documento è noto), le vigenze in caso di documento con una multivigenza, eventuali relazioni con altri documenti normativi, e una lista di parole chiave per descrivere il documento. • lavori preparatori: in questa sezione è possibile includere, a testo libero, informazioni e documenti connessi con la fase preparatoria del testo • proprietario: uno schema libero di meta-informazioni relative ad un'applicazione proprietaria. • redazionale: in questa sezione la redazione che si occupa di pubblicare un documento ha la possibilità di inserire informazioni libere sulla pubblicazione medesima • disposizioni: in questa sezione si possono inserire disposizioni caratterizzanti o analitiche per descrivere il contenuto normativo di un documento. Per una giustificazione dell'utilità, ed una breve analisi delle caratteristiche sintattiche delle disposizioni, si veda la sezione 10. 9.1 Sulle disposizioni nel DTD di NormeInRete? Nello studio di fattibilità del progetto "Accesso alle norme in rete" (pubblicato nel n. 1/2000 della rivista "Informatica e diritto") si pone in luce una distinzione fondamentale tra struttura formale (un articolato organizzato in libri, parti, titoli, capi, sezioni, articoli, commi, con precise regole di contenimento e forma) e struttura funzionale (una serie di "disposizioni", ovvero atti linguistici indipendenti che costituiscono il contenuto profondo e descrivono le funzioni regolative del testo). Se è facile e per lo più non ambiguo identificare la struttura formale del documento normativo, più difficile è analizzare l'aspetto funzionale o semantico delle sue varie parti. Difatti, mentre per l'analisi formale del documento ricorriamo a pochi, semplici ed evidenti concetti come la gerarchia, la sequenza, la rubricazione ecc., per l'analisi del contenuto del precetto normativo dobbiamo inevitabilmente affrontare un lungo ed incerto percorso sul significato normativo del documento. L'esperienza dimostra che rari sono i dubbi nel marcare correttamente libri, parti, titoli, capi, sezioni, articoli e commi, o le loro rubriche. Non solo: queste parti possono essere identificate a prescindere dal contenuto del documento, il più delle volte attraverso una mera analisi tipografica, che non richiede una comprensione approfondita del significato normativo. Più incerto può essere invece stabilire se un comma prescriva, ad esempio, un obbligo, un diritto o un dovere. Per far ciò, è ovviamente sempre necessario leggere e analizzare il testo, formulando se del caso interpretazioni sofisticate del medesimo. Inoltre, accade talvolta che si produca una sovrapposizione dai confini imprecisi fra la struttura formale e quella funzionale del documento normativo. L'effetto più evidente di questa incompatibilità di fondo tra le due strutturazioni è che diventa rischioso e complesso farle coesistere sullo stesso testo. E' inevitabile quindi che una delle due debba sovrastare l'altra, rimanendo associata "stabilmente" al testo del documento. La non ambiguità della struttura formale ci fa scegliere quest'ultima rispetto alla struttura funzionale, portando al DTD già visto, che è impostato sull'articolato e le partizioni gerarchiche esteriori. Il problema di associare la struttura funzionale al testo va a questo punto affrontato con cautela. Vari sono i problemi, alcuni semplicemente sintattici, altri più sottilmente organizzativi ed interpretativi. In primo luogo, è necessario trovare una soluzione che sia corretta secondo la sintassi XML. Come già detto, due gerarchie indipendenti e sovrapposte sullo stesso documento sono del tutto inaccettabili dalla sintassi di questo linguaggio, oltre a rendere il markup estremamente complesso da interpretare. In secondo luogo la difficoltà e l'ambiguità intrinseche nella classificazione delle disposizioni di un testo normativo suggeriscono di scindere la realizzazione della strutturazione formale da quella della strutturazione funzionale: la prima è un'operazione meramente di compilazione, seppur accurata, realizzabile da addetti con un minimo di competenza tecnica, mentre la seconda richiede personale di formazione giuridica avanzata. Una prima ipotesi di lavoro affrontata dal gruppo "Norme In Rete" è stata quella di creare un attributo 'disp' associabile ad ogni partizione elementare del documento, in modo da avere forme del tipo: 3 E' fatto obbligo… Purtroppo, anche se la buona tecnica legislativa suggerisce di organizzare in maniera coerente le due strutture, funzionale e formale, in modo da avere un'equivalenza tra disposizioni normative e partizioni elementari del testo (si tratti di articoli, commi o lettere), le eccezioni sono frequenti, e spesso non dovute soltanto ad una tecnica legislativa imperfetta, bensì anche a non superabili ragioni di merito. Si aggiunga che molte disposizioni hanno una struttura complessa, difficilmente riducibile ad una mera etichetta. Ciò significa che il valore dell'attributo 'disp' potrebbe cogliere solo parzialmente tale complessità della disposizione, e molto rimarrebbe ancora da interpretare da parte del lettore. Ancora: inserire un attributo specificante la disposizione impone che il testo venga analizzato funzionalmente nel medesimo momento in cui viene considerato formalmente, sebbene queste due operazioni richiedano, come si è visto, professionalità diverse. Infine, poiché difficilmente si potrà avere univocità di analisi, l'inserimento di queste informazioni direttamente nel testo comporterebbe l'esistenza di un'analisi funzionale "ufficiale". Alla luce di tutti questi motivi, per descrivere le disposizioni di un testo normativo è stata preferita una soluzione diversa, basata sulle meta-informazioni. Invece di attributi approssimativamente associati alle partizioni formali del documento, si è deciso di inserire uno o più elenchi di elementi analitici in un elemento apposito dentro a 'metainformazioni', facendoli riferire alle parti del testo che essi descrivono. Questa soluzione permette di scindere completamente l'aspetto formale dall'aspetto funzionale. Dato che ogni parte del testo è indirizzabile, le si possono associare disposizioni senza nessun vincolo. A queste disposizioni è possibile dare una struttura interna, il che permette di esprimere proprietà ben più complesse di un'etichetta. Inoltre, possono esserci molteplici voci per la stessa partizione di testo, permettendo la convivenza di interpretazioni contrastanti dello stesso frammento. Ancora, è possibile inserire queste interpretazioni in un secondo tempo rispetto all'analisi formale del testo, poiché quest'ultimo non viene modificato dall'analisi funzionale. Da ultimo, una disposizione particolarmente complessa che copra parti diverse e non contigue del documento può essere descritta con tutta facilità. E' opportuno aggiungere che, sotto il profilo dell'organizzazione del lavoro, la suddivisione in due diverse fasi permette di soddisfare un'esigenza di tempestività, in quanto rende possibile l'immissione immediata dei documenti nei loro profili formali, in attesa di inserire quelli, più impegnativi, di tipo funzionale Poiché a questo punto la disposizione è posta al di fuori del testo del documento, diventa importante individuare esattamente il o i capoversi a cui questo tipo di informazione fa riferimento. La identificabilità dei singoli elementi del testo, ed eventualmente un uso accorto di un XPointer, permettono di generare un'espressione che indichi inequivocabilmente le parti in questione. E' dunque necessario che all'interno dell'elemento analitico vengano specificate una o più locazioni nel testo. Ciò viene ottenuto attraverso l'uso dell'elemento 'loc', che conterrà come attributo l' id di un elemento del testo. Ad esempio, usando una sintassi semplice e intuitiva, esprimeremo come segue il fatto che nei capoversi 5 e 9 del preambolo sono riportati due richiami al parere dell'Autorità per le telecomunicazioni: Questo semplice accorgimento ci permette di identificare anche locazioni multiple e non contigue nel testo, e di usarle per la medesima meta-informazione. Si possono ipotizzare due categorie distinte e indipendenti di elementi funzionali esprimibili in un documento normativo. Da una parte le disposizioni propriamente dette, tipizzate nei lavori di Carlo Biagioli, che analizzano il contenuto normativo di un documento. Dall'altra, elementi analitici per lo più appartenenti al preambolo di quei tipi di documenti che lo contemplano, e che descrivono formulaicamente una serie di informazioni di contesto del documento (chiamati per il momento "elementi caratterizzanti"). Biagioli fornisce una nomenclatura delle disposizioni, dividendole in disposizioni della parte introduttiva (finalità del testo, ambito di applicazione, istituzione di enti, definizioni di termini), disposizioni direttive generiche (competenza, potere, diritto, dovere), disposizioni direttive specifiche (obbligo, divieto, permesso, procedura), disposizioni rimediali (sanzione, riparazione), disposizioni finali (finanziarie, transitorie) e disposizioni modificative (eccezione, abrogazione, sostituzione, integrazione, vigenza, proroga, reviviscenza, sospensione, retroattività, ultrattività, estensione, deroga). Fra gli elementi caratterizzanti prescelti, che non esauriscono ovviamente tutti quelli teoricamente possibili, troviamo invece i criteri di necessità ed urgenza, la delega, i pareri, le proposte, i considerata, i visto, le norme di attuazione di direttiva europea e le specificazioni di copertura finanziaria. Ciascuno di questi elementi possiede una struttura interna che descrive nei dettagli il tipo di elemento descritto.

Usare il DTD NormeInRete?

Criteri di uso del DTD NormeInRete?

Il DTD NormeInRete? è organizzato affinché sia facile descrivere ed organizzare in maniera completa alcuni tipi di testi normativi, elencati all'inizio di questo documento. Si è inoltre cercato di rendere possibile la formalizzazione di un numero molto più ampio di documenti, di struttura simile ai testi normativi previsti, o che possano essere trovati come allegati a testi normativi previsti. Per questo motivo, il DTD prevede un numero molto ampio di strutture ed elementi, molti dei quali non necessariamente comuni nei testi normativi. Scopo di questa sezione è fornire una prima guida d'uso al DTD, descrivendo alcuni casi comuni e la loro conversione in XML con questo DTD, e fornendo un elenco di requisiti minimi di compatibilità per i documenti così convertiti. Come per molti tipi di documenti XML, sono di particolare importanza due criteri d'uso: • Minimalità e specificità del markup: E' opportuno inserire solo i tag strettamente necessari, ed in ogni caso scegliere sempre quelli più specifici al ruolo ed alla posizione del testo che deve essere descritto. Il DTD offre in molti casi varie soluzioni diverse per descrivere lo stesso tipo di testo. In generale, tuttavia, esiste una soluzione più specifica delle altre, che per questo motivo è più appropriata e preferibile. • Indipendenza ed irrilevanza della presentazione. La trasformazione in XML di testi a stampa comporta sempre la tentazione di trasferire sul documento elettronico le scelte tipografiche fatte nel documento a stampa, come grassetti, corsivi, capoversi, etc. In effetti il DTD NIR offre la possibilità di descrivere in maniera abbastanza sofisticata le caratteristiche presentazionali dei documenti. Tuttavia è opportuno ricordarsi che in generale le caratteristiche presentazionali di un frammento di documento normativo dipendono direttamente dalla sua caratterizzazione semantica, e che verranno specificate in fase di presentazione attraverso fogli di stile. Per questo motivo, le caratteristiche presentazionali delle parti di un documento NIR vanno precisate solo quando sono eccezioni rispetto alla normalità, ovvero quando appaiono sui documenti a stampa in maniera asistematica e non giustificata dalla caratterizzazione semantica delle parti stesse. Ad esempio, nella maggior parte dei testi normativi il corpo di un comma è composto di un solo capoverso. In questi casi, dunque, la caratterizzazione semantica (essere un comma) sussume e contiene la caratterizzazione tipografica (essere un capoverso) rendendo inutile ed eccessivo l'uso di tag presentazionali (ad esempio, il tag 'p' o il tag 'div') intorno al corpo di un comma. Analogamente, le rubriche degli articoli sono tipicamente visualizzate in grassetto o in corsivo in quanto rubriche di articoli. Anche qui la caratterizzazione tipografica è già contenuta nella caratterizzazione semantica, e non deve essere riportata nel documento. Sarà invece opportuno inserire tag tipografici nelle (rare) situazioni in cui la caratterizzazione tipografica eccede o è indipendente da quella semantica, ad esempio quando il corpo di un comma è diviso in capoversi, oppure quando, per specifica scelta del legislatore, appare all'interno di un testo una parola evidenziata in grassetto o in corsivo. Il DTD NIR introduce alcuni elementi cosiddetti "generici", come "vuoto", "inlinea", "blocco", "gerarchia", "contenitore", e "documentoNIR". Essi forniscono, nelle intenzioni del working group, quelle caratteristiche di flessibilità che permettono al DTD di poter essere usato anche per documenti normativi non esplicitamente elencati e dalle caratteristiche strutturali più o meno difformi da quelle previste esplicitamente. Gli elementi generici sono infatti elementi destinati ad essere usati per situazioni la cui semantica è ben precisa ma non esplicitamente prevista dal DTD. Un altro criterio d'uso importante, allora, è il seguente: • Differenza tra tag presentazionali e tag generici. I tag presentazionali (come "div", "p", "b", "i", ecc.) hanno lo scopo di fornire un'indicazione tipografica non giustificata strutturalmente o semanticamente. Viceversa i tag generici hanno lo scopo di fornire un'indicazione strutturale o semantica non altrimenti presente nel DTD. Come già detto, sono candidati naturali per i tag presentazionali casi come capoversi multipli all'interno del corpo di un comma, o parole evidenziate (in grassetto o in corsivo) all'interno di un testo solitamente non evidenziato. Viceversa, sono candidati naturali per i tag generici strutture gerarchiche esplicitamente denominate e diverse da quelle previste (libro, parte, titolo, capo, sezione, paragrafo, articolo, comma) oppure tipi di documenti non esplicitamente previsti dal DTD (come Legge, Decreto Legge, Dpr, ecc.). In quest'ultimo caso, l'attributo "nome" permette di specificare il nome caratterizzante semanticamente la parte di documento.

Strutture fondamentali e opzionali dei documenti

Il DTD NormeInRete? fornisce un elenco particolarmente ricco di caratteristiche identificabili sul documento normativo: caratteristiche strutturali, caratteristiche semantiche, caratteristiche tipografiche, metainformazioni, ecc. La organizzazione di una norma secondo i dettami più specifici e dettagliati del DTD, dunque, richiede molto tempo ed una notevole competenza tecnica non solo informatica, ma anche e soprattutto giuridica. Per questo motivo si è reputato opportuno indicare un livello minimale di conformità nei documenti XML, ed un livello ottimale. Affinché un documento possa essere considerato corretto secondo i criteri di Norme In Rete, dunque, esso deve quantomeno soddisfare il livello minimale di conformità. Sono dunque caratteristiche da identificare necessariamente per un documento minimamente conforme le seguenti: • L'intestazione in tutte le sue parti • L'articolato nella sua specificità massima, inclusi i commi, gli alinea, le lettere ed i numeri dove appropriato • La distinzione quantomeno in paragrafi delle formule iniziali e finali • La corretta elencazione e il giusto collegamento agli annessi • le meta-informazioni della sezione "descrittori" • l'identificazione di tutti i riferimenti ad altri documenti normativi • la specifica degli ID per tutti gli elementi in cui esso è richiesto e per tutti gli elementi generici aventi un ruolo strutturale. Caratteristiche che costituiscono invece un livello di conformità ottimale sono le seguenti: • la specifica degli ID per tutti gli elementi in cui essi sono previsti, anche se facoltativi • l'identificazione di tutte le parti semanticamente rilevanti descritte dai tag "def", "atto", "soggetto", "ente", "data", "luogo", "importo", "mod" • Le meta-informazioni della sezione "lavoripreparatori" Le metainformazioni complicano ulteriormente il panorama della conformità: in generale, a parte quelle descrittive, esse rappresentano un contributo redazionale e dunque non ufficiale di caratterizzazione e descrizione del documento. Per questo motivo, non solo non sono obbligatorie, dipendendo dalla volontà e capacità della redazione, ma in linea di principio non possono nemmeno essere considerate univoche, né ufficiali. Il DTD di NormeInRete?, dunque, suggerisce che le informazioni delle sezioni "redazionale", "proprietario" e "disposizioni" vengano fornite indipendentemente, e possibilmente in una risorsa esterna al documento stesso, con ciò permettendo la coesistenza di blocchi di meta-informazioni di tipo e provenienza diversi.

-- FabioVitali - 09 Feb 2009

  • Set ALLOWTOPICVIEW =
  • Set ALLOWTOPICCHANGE =

to top

You are here: NIR > LineeGuidaMarcaturaNIR > StandardXSD

to top

Copyright © Fabio Vitali 2013 Last update of StandardXSD on 20 Apr 2009 - 02:12 by FabioVitali