Assegnazione di nomi uniformi a documenti giuridici

1. Introduzione

La circolare AIPA/CR/35 “Assegnazione di nomi uniformi a documenti giuridici” emanata dall’Autorità per l’informatica nella pubblica amministrazione ha lo scopo di divulgare a tutte le amministrazioni pubbliche i risultati prodotti all’interno del progetto "Norme in rete", indicando i benefici derivanti dall’adozione di una modalità standardizzata per l'identificazione dei documenti giuridici accessibili attraverso la rete internet sui siti istituzionali.
L’adozione dei nomi uniformi consente la realizzazione di sistemi automatici per costruire la rete dei collegamenti tra i documenti e contribuisce ad elevare la qualità dei servizi offerti dal progetto, a beneficio sia degli utenti finali che potranno usufruire di funzionalità di navigazione più estese, sia delle amministrazioni pubbliche che potranno migliorare la qualità delle funzioni offerte sui propri siti riducendo l’impegno redazionale manuale.
La creazione di funzionalità di navigazione ipertestuale tra riferimenti normativi richiede interventi redazionali che avvengono generalmente attraverso due fasi: il riconoscimento di un riferimento all’interno di un testo in linguaggio naturale e l’associazione a tale riferimento all’indirizzo fisico della pagina web su cui è pubblicato il testo del provvedimento che è citato.
Questi interventi si svolgono attraverso la seguente sequenza di operazioni:
  • individuazione della porzione di testo che contiene il riferimento normativo;
  • reperimento dell’indirizzo fisico del documento corrispondente;
  • inserimento all’interno del documento che contiene il riferimento, secondo la sintassi del linguaggio HTML, dell’indirizzo fisico del documento riferito.
L’adozione delle convenzioni qui proposte e l'assegnazione del nome uniforme creano lo strumento fondamentale per tali funzionalità, rendendo più efficiente e flessibile il processo di realizzazione dell’ipertesto distribuito delle norme che si è convenuto di realizzare nell’ambito del progetto "Norme in rete".
Nel seguito del documento vengono definite le regole di composizione dei nomi uniformi ed illustrati i principali criteri di applicazione. Le amministrazioni e le istituzioni che aderiscono al progetto dovranno adottare lo standard proposto e le necessarie misure tecniche e organizzative, per consentire la realizzazione delle funzionalità previste, anche usufruendo del supporto offerto dal progetto.
Le regole introdotte per l’attribuzione dei nomi (denominati URN, Uniform Resource Name) sono conformi agli standard dell'IETF (Internet Engineering Task Force) definiti dallo specifico gruppo di lavoro (URN Working Group).
I criteri di applicazione tendono a privilegiare la conformità alla prassi di denominazione corrente. L’armonizzazione degli aspetti interpretativi nell’applicazione delle regole di assegnazione dei nomi richiede l’avvio di un processo di coordinamento e normalizzazione, che sarà governato da un apposito Comitato tecnico interistituzionale e porterà, tra l'altro, alla realizzazione di un elenco pubblico che costituisca il riferimento ufficiale per i nomi uniformi.

 

2. Convenzioni adottate

  • Caratteri maiuscoli e minuscoli: si conviene di adottare sempre caratteri minuscoli (es. "Ministero" viene riportato come "ministero").
  • Caratteri nazionali e segni diacritici: i caratteri nazionali e i segni diacritici devono essere riportati ai caratteri base (es. "sanità" viene riportata come "sanita").
  • Sostituzione di spazi, connettivi e punteggiatura: sono eliminati tutti i connettivi linguistici (articoli, preposizioni semplici e articolate, congiunzioni, ecc.), la punteggiatura e i caratteri speciali come apostrofo, trattino, virgolette, ecc. Le parole significative rimanenti sono legate fra loro dal punto (".") in sostituzione dello spazio: (es. "Ministero delle attività produttive” viene riportato come “ministero.attivita.produttive”).
  • Espansione delle abbreviazioni: le diciture sono riportate per esteso e pertanto si devono espandere le abbreviazioni di qualunque tipo presenti nell'indicazione delle istituzioni, delle strutture o dei provvedimenti (ad esempio, "Min." viene riportato come "ministero").
  • Espansione delle sigle: le sigle vengono sostituite con le corrispondenti diciture estese (es. "CNEL" viene riportato come "consiglio.nazionale.economia.lavoro").
  • Formato delle date: le date sono riportate sempre in forma numerica e nel formato: aaaa-mm-gg (es. "2 settembre 99" viene riportata come "1999-09-02").
  • Numeri ordinali: gli eventuali numeri ordinali presenti negli elementi sono sempre riportati in numeri arabi, indipendentemente dalla grafia che assumono: numero romano, aggettivo, numero arabo con simbolo in apice, ecc. (IV, terzo, 1°, 2^, ecc.). (es. "Sezione IV" viene riportato come "sezione.4").
  • Caratteri riservati: vengono elencati nel seguito i caratteri riservati nella costruzione dei nomi uniformi dello spazio dei nomi riservato a "Norme in rete", denominato "nir”, con la specificazione del significato che assumono in tale contesto:
    • ":" separatore degli elementi principali del nome;
    • "@" separatore della versione;
    • ";" separatore che segnala l'introduzione di un livello gerarchicamente inferiore - o comunque di una specificità - dell'elemento precedente;
    • "+" separatore delle ripetizioni di interi elementi principali (es. autorità multiple);
    • "," separatore delle ripetizioni di singole componenti degli elementi principali, allo stesso livello di specificità (es. numeri multipli).

Nella composizione dei nomi uniformi non vengono utilizzati i caratteri riservati nella formazione dei nomi delle localizzazioni fisiche (URL): "%","/", "?","#".

3. Sintassi dei nomi uniformi dello spazio "nir"

La sintassi dei nomi uniformi è definita attraverso regole, rappresentate con il formalismo di Backus Naur, brevemente illustrato in Allegato 1.

Il nome uniforme deve essere univoco – deve cioè identificare un solo provvedimento – ed autoesplicativo.
Le informazioni necessarie per identificare univocamente i provvedimenti giuridici sono essenzialmente: l'autorità emittente, il tipo di provvedimento, gli estremi (data e numero) e l’eventuale annesso.
È inoltre necessario distinguere le eventuali versioni successive del documento, a seguito delle modifiche che possono intervenire nel tempo.
A un documento possono essere assegnati più nomi uniformi (alias) per quei provvedimenti che, pur nella loro unicità, risultano referenziati nella prassi sotto diversi profili, come ad esempio il contenuto specifico e la forma di promulgazione (es. Testo unico promulgato attraverso DPR).
Ciascun nome uniforme si compone di due parti: una intestazione, che specifica che si tratta di un nome costruito secondo lo standard URN e che ha validità nell’ambito dello spazio dei nomi di "Norme in rete", e di una parte che costituisce lo specifico nome uniforme.
La struttura generale è quindi:
<URN> ::= "urn:" <NID> ":" <NSS>
dove: NID denota lo spazio dei nomi, che in questo caso assume il valore"nir" , e NSS denota un nome specifico.
Pertanto la struttura generale di un nome uniforme nello spazio dei nomi di "Norme in rete" sarà:
<URN> ::= "urn:nir:" <NSS-nir>

3.1. Definizione di uno specifico nome uniforme

Ciascun nome specifico è composto dall’elemento <documento> e l’eventuale indicazione della versione:
<NSS-nir> ::= <documento> ["@" <versione>]
L'elemento <documento> si costruisce con la concatenazione degli elementi indicati nella seguente regola, con l’eventuale presenza dell’elemento <annesso> se si tratta di un allegato:
<documento> ::= <autorità> ":" <provvedimento> ":" <estremi> [":" <annesso>]
I tre elementi fondamentali obbligatori che costituiscono ciascun nome uniforme (autorità, provvedimento ed estremi) e i due elementi opzionali (annesso e versione), vengono di seguito definiti ed illustrati con esempi.

3.2. Elemento <autorità>

L’elemento <autorità> deve consentire l’identificazione dell’autorità a cui nella prassi si riconduce il provvedimento. In generale questa coincide con l’autorità emittente, ma ci sono casi in cui rappresenta l’istituzione presso la quale l’atto viene registrato (ad esempio: i disegni di legge vengono identificati dal ramo del Parlamento al quale vengono presentati piuttosto che attraverso i firmatari) oppure l'istituzione regolamentata dal provvedimento (ad esempio: lo statuto di un ente).
L’elemento <autorità> può essere costituito da una o più istituzioni, di cui in alcuni casi può essere necessario fornire ulteriori specificazioni, secondo le modalità espresse dalle regole seguenti:
<autorità> ::= <soggetto> *["+" <soggetto>]
<soggetto> ::= (<istituzione> *[";" <organo>] [";" <funzione>]) | <carica >
<istituzione> ::= 1*<carattere-ammesso>
<organo> ::= 1*<carattere-ammesso>
<funzione> ::= 1*<carattere-ammesso>
<carica >::=1*<carattere-ammesso>
Per i provvedimenti che hanno più autorità emittenti, queste vengono tutte indicate. (Ad esempio: "ministero.giustizia+ministero.finanze").
In alcuni casi la denominazione dell’autorità coincide con quella della carica istituzionale (ad esempio per gli atti emessi dal presidente del consiglio dei ministri o da ministri senza portafoglio, come ad esempio il ministro della funzione pubblica, le denominazioni sono rispettivamente presidente.consiglio.ministri e ministro.funzione.pubblica).
Se l'organo all'interno dell'autorità emittente è univocamente determinato (es. consiglio, per le leggi regionali) di norma non viene indicato. Nei casi in cui si renda necessario, l'indicazione dell'organo all'interno dell'autorità emittente viene effettuata secondo l'ordine gerarchico dal generale al particolare, partendo dall'istituzione, seguendo i vari livelli della struttura (giunta, dipartimento, ecc.) e terminando con la funzione relativa (presidente, direttore, capo, ecc.).
Ad esempio: "ministero.economia.finanze;dipartimento.politiche.fiscali;dirigente".
In generale nei casi in cui non è sufficiente l’indicazione della sola istituzione o della sola carica, va privilegiata l’indicazione della funzione quando deriva da un incarico elettivo o rappresentativo (ad esempio: regione.lazio;assessore.ambiente) mentre va privilegiata l’indicazione dell’organo quando rappresenta una struttura organizzativa di cui è univocamente determinata la funzione direttiva ( ad esempio: ministero.giustizia;direzione.generale).

3.3. Elemento <provvedimento>

L’elemento <provvedimento> contiene la indicazione del tipo di provvedimento (legge, decreto.legislativo, circolare, decreto, ecc.) e di eventuali ulteriori specificazioni che consentono di rappresentare con il nome uniforme anche le denominazioni di uso corrente diffuse nella prassi:
<provvedimento> ::= <tipo> *[";" <specificazione>]
<tipo> ::= 1*<carattere-ammesso>
<specificazione> ::= 1*<carattere-ammesso>
Quando il combinato autorità-provvedimento identifica chiaramente la tipologia del provvedimento, questa non viene ulteriormente specificata attraverso attributi che si riferiscono all'autorità emittente (es. "regione.lazio:legge" e non "regione.lazio:legge.regionale").
Nei casi diffusi nella prassi in cui il riferimento a provvedimenti è espresso attraverso l'oggetto o la materia, oppure con denotazioni di uso corrente che si collegano al promotore o all'argomento, il tipo di provvedimento può essere seguito da uno o più elementi <specificazione>: es. "regolamento;contabilita" o "legge;merloni".
Nei casi in cui il riferimento a provvedimenti può avvenire attraverso differenti riferimenti normativi, ad esempio quello dell’atto che li ha introdotti nell’ordinamento o quello della loro qualifica normativa, al nome uniforme che rappresenta formalmente il provvedimento viene associato un alias che tiene conto della sua qualifica, e che conserva inalterati autorità ed estremi (es. "stato:decreto.legislativo:1992-07-24;358" e "stato:testo.unico;appalti.pubblici:1992-07-24;358").
Ad esempio i testi unici, gli statuti ed i regolamenti sono generalmente introdotti nell’ordinamento con un provvedimento di adozione o emanazione (nel quale sono incorporati o al quale sono allegati), ma nella prassi sono referenziati direttamente; pertanto in questi casi è sempre raccomandata la generazione di un alias.

3.4. Elemento <estremi>

Gli estremi del provvedimento sono costituiti di norma dalla data di emissione e dal numero di identificazione (inserimento in raccolta, registro, protocollo, ecc.). Esistono comunque diverse fattispecie, che le regole di generazione dell’elemento estremi devono prevedere, come di seguito illustrato:
<estremi> ::= <date> ";" <numeri>
<date> ::= <data> *["," <data>]
<numeri> ::= (<id-documento> *["," <id-documento>]) | <numero-nir>
<id-documento> ::= 1*(<carattere-ammesso> | <altro>)
<data> ::= <anno> "-" <mese> "-" <giorno>
<anno> ::= 4<cifra>
<mese> ::= 2<cifra>
<giorno> ::= 2<cifra>
<numero-nir> ::= "nir-" 1*<cifra>
Nei casi in cui gli estremi comprendono data e numero, l’elemento assumerà, ad esempio, la forma: "2000-12-06;126".
Alcuni provvedimenti sono identificati da più date, che vengono tutte riportate. Ad esempio, il provvedimento del Garante per la protezione dei dati personali del 30 dicembre 1999 - 13 gennaio 2000, n. 1/P/2000 ha come nome uniforme:
"garante.protezione.dati.personali:provvedimento:1999-12-30,2000-01-13; 1-p-2000".
Ad alcuni provvedimenti non è associato un numero di riferimento univoco, e possono esistere più provvedimenti dello stesso tipo, emessi nello stesso giorno dalla stessa autorità.
Poiché un nome uniforme deve identificare univocamente ciascuno di questi, il campo <numeri> deve comunque contenere un elemento discriminante, che può essere un qualunque identificativo utilizzato internamente all'ente (es. protocollo), anche se non pubblicizzato. Nell’ipotesi che l'autorità non abbia alcun identificativo interno, deve essere creato un apposito numero distintivo, ad uso del sistema dei nomi; per renderlo chiaramente distinguibile, tale numero è preceduto dalla stringa "nir-": ad esempio, "ministero.finanze:decreto:1999-12-20;nir-3".
L'assegnazione di tale numero distintivo è a cura dell'autorità emittente del documento; nel caso di autorità multiple l'attribuzione del numero convenzionale compete ad una sola di queste e, salvo diversi accordi fra i soggetti, alla istituzione con il ruolo di maggior rilievo (ad esempio, la proponente).
Alcuni provvedimenti sono invece identificati da più numeri (ad esempio, provvedimenti giurisprudenziali per riunificazione di cause giudiziarie). In questo caso si riportano nel campo <numeri> tutti gli identificativi, come nell’esempio che segue: "2000-06-12;c-10-97,c-11-97,c-12-97".
I caratteri non ammessi (es. "/") o riservati (es. ":") non possono essere presenti all'interno dell'<id-documento>, e pertanto vanno convertiti in "-".

3.5. Elemento <annesso>

Nei casi in cui l'annesso venga considerato come documento distinto, a questo viene assegnato un distinto nome uniforme, formato dal nome uniforme del documento al quale è allegato e da una desinenza identificativa dell'annesso stesso, al quale possono essere aggiunte una o più ulteriori specificazioni
<annesso> ::= <id-annesso> *[";" <specificazione>]
<id-annesso> ::= 1*<carattere-ammesso>
Ad esempio: "stato:legge:1982-12-31;979:allegato.a;sostanze.nocive.ambiente.marino".
I caratteri non ammessi (es. "/") o riservati (es. ":") non possono essere presenti all'interno dell'<id-annesso>, e pertanto vanno convertiti in "-".

3.6. Elemento <versione>

Un atto che abbia subito modifiche presenta più versioni del testo aggiornato, ciascuna caratterizzata dall'intervallo temporale in cui tale testo è da considerarsi di riferimento. Ogni versione di un atto aggiornato viene identificata attraverso una data, quella di emissione dell'ultimo provvedimento modificativo considerato; i documenti redazionali che, in maniera dinamica, contengono in un unico oggetto tutta la storia delle diverse vigenze nel tempo, sono identificati con la stringa "multivigente". La rappresentazione di questa regola nel formalismo adottato è:
<versione> ::= <data-provvedimento-modifica> | "multivigente"
<data-provvedimento-modifica> ::= <data>
L’arco temporale di riferimento di una versione termina con l'inizio dell’arco temporale di quella successiva.
La data di emissione del provvedimento modificativo, pur non rappresentando l'inizio della vigenza del testo aggiornato, ha il vantaggio di essere derivabile dai soli dati formali (es. il nome "stato:regio.decreto:1941-01-30;12@1998-02-19" identifica il testo aggiornato del "Regio decreto del 30 gennaio 1941, n. 12" con le modifiche introdotte dal "Decreto legislativo del 19 febbraio1998, n. 51", senza alcuna indicazione della sua effettiva entrata in vigore).

3.7. Caratteri ammessi

I simboli terminali del formalismo Backus Naur rappresentano qui i caratteri ammessi, nel rispetto delle convenzioni adottate:
<carattere-ammesso> ::= <minuscola> | <cifra> | "."
<minuscola> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" |"j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" |"s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
<cifra> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
Adottando il medesimo formalismo possiamo definire i caratteri riservati e gli altri separatori come segue:
<riservato> ::= "#" | ":" | "@" | ";" | "," | "+"
<altro> ::= "(" | ")" | "=" | "$" | "-" | "_" | "!" | "*" | "'"

4. Modalità di associazione dell’URN a documenti e conclusioni

Per creare l’ipertesto delle norme nell’ambito del progetto "Norme in rete", è necessario che i nomi uniformi generati secondo le indicazioni fornite in precedenza siano associati ai corrispondenti documenti in funzione del formato con cui sono rappresentati.
Nel caso di documenti pubblicati in HTML l’associazione avviene attraverso il tag <META name = “nir.urn” content =nome.uniforme>, dove nome.uniforme rappresenta la stringa costruita secondo le regole esposte.
Nel caso di documenti per cui si è attuata la marcatura in XML, l’associazione avviene attraverso l’elemento URN, appartenente all’insieme delle metainformazioni associate al documento, il quale deve contenere il nome uniforme secondo il formato: <URN>nome.uniforme </URN>, dove anche qui nome.uniforme rappresenta la stringa costruita secondo le regole esposte.
Nel caso in cui il sistema di gestione documentale adottato dall’amministrazione non consenta l’associazione diretta del nome uniforme all’interno del testo del documento, dovranno essere definite modalità specifiche.
Allegato 1

La rappresentazione utilizzata per descrivere i nomi: il formalismo di Backus Naur

Il formalismo utilizzato per illustrare le regole di generazione dei nomi uniformi è quello di Backus Naur. Esso consente di formalizzare la definizione di un linguaggio attraverso la rappresentazione delle regole grammaticali su cui è basato, adottando alcune convenzioni.
Le regole della grammatica permettono la sostituzione di un simbolo con uno o più altri simboli, ed assumono la forma: simbolo ::= sequenza di simboli
I simboli possono essere di due tipologie:
  • non terminali, quando compaiono almeno una volta in una regola a sinistra del simbolo ::= (cioè possono generare nuovi simboli, da cui il significato del termine);
  • terminali, quando compaiono solo a destra del simbolo ::= nelle regole (cioè non possono essere usati per generare altri simboli e quindi sono parte di una parola del linguaggio).
I simboli non terminali sono racchiusi tra parentesi angolari < >. I simboli terminali sono racchiusi da una coppia di virgolette “ “.
Nella parte destra di una regola, se si vuole esprimere il fatto che due simboli possono essere usati in alternativa, questi vanno separati dal simbolo |.
Per esempio la grammatica:
Regola 1 <parola> ::= <lettera> <lettera>
Regola 2 <lettera> ::= “A”|”B”|”C”
genera tutte le parole di due lettere, ove le lettere possono essere A, B o C.
Infatti, applicando la Regola 1, il simbolo non terminale <parola> genera l’insieme dei simboli <lettera> <lettera>; ciascuno di essi può essere poi sostituito, applicando la Regola 2, con i simboli terminali A, B o C.
Quando nella parte destra di una regola uno o più simboli possono essere opzionalmente inclusi o meno nel corso della sostituzione, vanno racchiusi tra parentesi quadre [ ]. Un'espressione davanti ad un elemento, o ad un gruppo di elementi, indica un fattore di ripetizione, con i seguenti formati:
  • n significa n volte;
  • n* significa n o più volte;
  • * significa zero o più volte.
La grammatica:
Regola 1 <parola>::= 2<lettera>
Regola 2 <lettera> ::= “A”|”B”|”C”
è equivalente alla precedente.
La grammatica:
Regola 1 <parola> ::= <lettera> [<lettera>]
Regola 2 <lettera> ::= “A”|”B”|”C”
genera le parole di una e due lettere, ove le lettere possono essere A, B o C.