N NORME. red.it

Articoli che si modificano in gruppo: struttura del corpus italiano oltre il tipo di atto

Versione data journalism 2026-04-30
Versione divulgativa Versione data journalism

Una statistica di rete su 950.000 modifiche normative misura un eccesso strutturale rispetto al modello indipendente per tipo. Cosa indica, cosa non indica, e dove vorremmo arrivare.


TL;DR

  • Su 1,14 milioni di articoli normativi vigenti del corpus italiano, abbiamo contato per ciascun tipo di atto quante coppie di articoli condividono almeno due modificanti comuni (statistica SIM(t)).
  • I valori osservati sono molti ordini di grandezza sopra quelli prevedibili da un modello in cui ogni atto sceglie i target in modo indipendente all'interno del proprio tipo (SBM stratificato semplice). La quantificazione precisa del rapporto dipende dalla calibrazione del modello e va presa con prudenza.
  • Lo stesso pattern si vede in tutti i tipi di atto, con magnitudine variabile: alta nei "contenitori tematici compatti" (DPCM, Decreti Ministeriali, Decreto Legislativo, Decreto-Legge), bassa nelle "leggi storiche" (Regio Decreto, Legge ordinaria).
  • Conclusione operativa: il corpus normativo italiano ha struttura che la classificazione formale per tipo di atto non cattura. Quale struttura sia (materie tematiche latenti, atti omnibus, drafting iterativo) è una domanda separata, non risolta da questa misura.

La domanda

Il diritto italiano è organizzato formalmente in tipi di atto: Legge, Decreto Legislativo, Decreto-Legge, Regio Decreto, DPR, ecc. Quando una norma modifica altre norme, questa classificazione guida il modificatore? Cioè: gli articoli modificati assieme da una stessa legge tendono a essere "casualmente sparsi entro il loro tipo", oppure formano gruppi specifici che ricorrono?

Riformulato in termini di teoria delle reti: esiste struttura nel grafo modificante→modificato che non è spiegata dalla sola distribuzione marginale degli archi per tipo di atto?

La metrica: Shared In-Modifier (SIM)

Per ciascun tipo di atto t:

SIM(t) := numero di coppie (v, w) ∈ T⁻¹(t)² (con v ≠ w)
          tali che N⁻(v) ∩ N⁻(w) contiene almeno 2 elementi

dove N⁻(v) è l'insieme dei modificanti di v.

In parole: SIM(t) conta quante coppie di articoli del tipo t sono state modificate da almeno due leggi in comune. È una statistica che dipende dalla struttura specifica degli archi, non solo dai contatori per nodo (in/out degree, tipo, epoca).

Perché esattamente "due modificanti in comune"

Una soglia minima è necessaria perché:

  • soglia 0: non discriminante (ogni coppia ha 0 modificanti in comune o più)
  • soglia 1: rumorosa, un modificante "trasversale" che tocca molti articoli del corpus genera coppie banali
  • soglia ≥ 2: pulita, segnala dipendenza ricorrente

Filtro super-hub

I "taglialeggi" del corpus (D.Lgs. 212/2010, L. 56/2025, ecc.) sono articoli singoli che modificano centinaia di migliaia di altri articoli. Un loro singolo arco genererebbe miliardi di coppie banali. Filtriamo i modificanti con out_degree < 100: il segnale che misuriamo viene da modificanti "ordinari", non da abrogazioni di massa storiche.

Conseguenza: i risultati riguardano la norma viva. Il pattern probabilmente sopravvive anche includendo i taglialeggi, ma con quantificazione diversa, non testato qui.

I dati

Calcolo sul corpus Normattiva (snapshot 29 gen 2026): 1.136.048 articoli vigenti, 952.140 archi modifica.

Tipo di atto \|N_t\| Archi entranti SIM(t) Densità (SIM/N_t²)
DPCM 3.749 1.703 21.446 1,5 × 10⁻³
Decreto Ministeriale 3.225 598 8.130 7,8 × 10⁻⁴
Decreto-Legge Luogot. 6.795 1.831 9.478 2,1 × 10⁻⁴
Decreto-Legge 40.685 25.486 197.513 1,2 × 10⁻⁴
Decreto Legislativo 52.427 34.481 278.480 1,0 × 10⁻⁴
D. Lgs. C.P.S. 7.148 1.481 5.706 1,1 × 10⁻⁴
DECRETO 23.449 5.299 40.326 7,3 × 10⁻⁵
Decreto Luogotenenziale 25.420 4.580 24.137 3,7 × 10⁻⁵
Regio Decreto-Legge 59.582 17.421 83.719 2,4 × 10⁻⁵
DPR 176.865 29.115 262.872 8,4 × 10⁻⁶
LEGGE 244.033 43.076 212.776 3,6 × 10⁻⁶
REGIO DECRETO 479.429 75.252 784.020 3,4 × 10⁻⁶

Il confronto col modello indipendente

Come riferimento di partenza usiamo lo Stochastic Block Model stratificato semplice (SBM): per ogni coppia di tipi (t_u, t_v), ogni arco è generato indipendentemente con probabilità θ_{t_u, t_v}, calibrata a riprodurre la densità di archi osservata. Sotto questo modello, l'aspettativa di SIM(t) si calcola in forma chiusa nell'approssimazione binomiale:

Pr(due nodi v, w hanno modifier u in comune)
     ≈ |V| · θ_in,t²

Per il Decreto Legislativo i numeri tornano così:

  • θ_in,Dlgs ≈ 5,8 × 10⁻⁷
  • Pr(modificante condiviso) ≈ 3,4 × 10⁻¹³ per coppia
  • Numero atteso di coppie con ≥ 2 modificanti: dell'ordine di 0,03
  • Numero osservato: 278.480

Sui dati il valore osservato eccede quello atteso di molti ordini di grandezza. Lo stesso vale qualitativamente per gli altri tipi.

Una nota di precisione importante

Il modello di confronto qui è una versione semplificata di SBM: calibrato su una probabilità marginale uniforme di edge, non sui marginali nodali per nodo. Un SBM più informato (con θ_{t_u, t_v} per coppia di tipi e degree heterogeneity per nodo) prevedrebbe SIM più alti, perché alcuni atti sono molti modificatori di tante norme, e questo aumenta meccanicamente le coppie con shared modifiers.

Quanto si riduce il rapporto osservato/atteso sotto un SBM proper-calibrato? Non lo sappiamo con precisione. Il calcolo richiederebbe simulazione Monte Carlo del modello calibrato. Quello che possiamo dire con sicurezza:

  • Il segno del segnale è netto (osservato atteso) per ogni tipo
  • La magnitudine del divario, in termini quantitativi, dipende dalla calibrazione e va presa con prudenza
  • Il pattern qualitativo della tabella (gerarchia DPCM > D.Lgs. > LEGGE

    RD) sopravvive ragionevolmente a una calibrazione più sofisticata, perché tipi piccoli con molti shared modifiers restano sopra a tipi grandi con pochi

Il pattern qualitativo

Ordinando i tipi per densità SIM/N² emerge una gerarchia di tre fasce.

Fascia alta (10⁻³ – 10⁻⁴): "contenitori tematici compatti" - DPCM, Decreto Ministeriale: piccolo numero di articoli, materie molto omogenee (organizzazione PA, regolamenti tecnici), forte ricorrenza di modificatori - Decreto Legislativo, Decreto-Legge: testi unici settoriali e decreti emergenziali. Articoli che vengono modificati spesso dagli stessi atti (codice ambiente, codice della crisi, decreti COVID)

Fascia media (10⁻⁵): "atti misti" - Regio Decreto-Legge, Decreto, Decreto Luogotenenziale: corpus meno organizzato, ricorrenza dei modificatori presente ma più diluita

Fascia bassa (10⁻⁶): "leggi storiche disperse" - DPR, LEGGE, Regio Decreto: corpus eterogeneo, ogni atto è modificato da insiemi di modificatori più sparsi

Coerenza con i risultati teorici precedenti

Nei paper teorici (in particolare paper 3) avevamo identificato, con una statistica completamente diversa, Δ_intra-type da decomposizione M3-stratified, i tipi che la stratificazione marginale non spiega.

Tipo Δ_intra-type (paper 3) SIM/N² (paper 5)
Decreto Legislativo z = +2,69 1,0 × 10⁻⁴
Decreto-Legge z = −8,52 1,2 × 10⁻⁴
LEGGE z = −6,72 3,6 × 10⁻⁶
Regio Decreto z = +0,76 (n.s.) 3,4 × 10⁻⁶
DPR z = +0,81 (n.s.) 8,4 × 10⁻⁶

I tipi che paper 3 aveva flaggato come "covarianza intra-tipo significativa" (D.Lgs., D.L., LEGGE) sono anche quelli che paper 5 vede con SIM più alto (rispetto a tipi simili come RD/DPR). Convergenza parziale, e va qualificata:

  • Convergenza su magnitudine: i tipi con segnale forte in paper 3 hanno SIM più alta. OK.
  • Non convergenza su direzione: D.Lgs. (paper 3 z=+2,69) e D.L. (paper 3 z=−8,52) hanno segni opposti in paper 3, ma SIM simile (1,0×10⁻⁴ vs 1,2×10⁻⁴). SIM non distingue il segno della covarianza intra-tipo, solo la presenza di struttura.

Quindi le due metriche rilevano lo stesso fenomeno della "non spiegabilità via marginali", ma vedono dimensioni diverse del fenomeno. Non sono due lenti per la stessa immagine; sono due lenti con sovrapposizione parziale del campo visivo.

Cosa il segnale indica e cosa NON indica

Indica

Il pattern osservato è incompatibile con un modello in cui gli archi modificante→modificato sono indipendenti dato il tipo di atto del target. Esiste struttura aggiuntiva nel grafo.

Non indica

L'eccesso di SIM rispetto al modello indipendente è compatibile con più ipotesi non escludenti:

  • Materie tematiche latenti: gruppi di articoli sulla stessa cosa, sparsi su atti diversi, modificati ricorrentemente dagli stessi atti.
  • Atti omnibus: una singola legge che modifica molti articoli in un colpo solo (manovre, decreti emergenziali). Le coppie modificate insieme condividono un evento legislativo, non necessariamente una materia sottostante.
  • Drafting iterativo: certe aree del corpus producono e ricevono modifiche più di altre per ragioni di prassi normativa.
  • Preferential attachment storico: articoli "famosi" attirano modificatori non a caso.

Discriminare fra queste alternative richiede statistiche aggiuntive fuori dalla classe dei contatori (correlazioni di rango, motif locali, autocorrelazione temporale degli archi, fit di modelli generativi espliciti). Paper 4 §6.2 elenca le quattro famiglie minime necessarie. SIM è la prima implementata.

Caveat metodologici

  1. SBM atteso approssimato: usato qui un calcolo binomiale indipendente con probabilità marginale uniforme di edge. Una power analysis rigorosa richiederebbe simulazione esplicita di SBM calibrato + bootstrap.

  2. Stratificazione solo per tipo: un'analisi (T, Y)-condizionata (tipo + epoca) è il prossimo passo naturale.

  3. Filtro out_deg < 100: i risultati riguardano la "norma viva". Sensitivity su cutoff diversi (50, 200, log-binning) non eseguita.

  4. SIM rileva non-indipendenza, non identifica un modello specifico. L'eccesso rispetto al modello indipendente è netto, ma per assegnare il corpus a una classe generativa precisa servono fit parametrici (SBM con attributi, LBM con regimi nascosti).

Cosa fare adesso

Sapere che esiste struttura aggiuntiva è uno; identificarla è un altro. La roadmap dei prossimi mesi è strutturata in tre fasi.

Fase 1: community detection sul grafo

Applicazione di algoritmi Louvain/Leiden al grafo modificante→modificato per produrre una lista esplicita di gruppi:

Esempio di output atteso: "Gruppo #14: 234 articoli, distribuiti su 18 atti tra il 1942 e il 2026, accomunati dalle modifiche fiscali sul reddito d'impresa".

Quanti gruppi emergeranno? Difficile dire senza eseguire, le community detection danno cardinalità molto sensibile alla risoluzione del modello. Un'aspettativa onesta: l'ordine è probabilmente nelle decine, non nelle migliaia, ma il numero preciso lo dirà la fase stessa.

Costo: 2-4 giorni-uomo. Output utile: prima mappa funzionale del corpus.

Fase 2: modularità nel tempo

Stratificazione temporale del calcolo SIM: la struttura modulare osservata oggi esisteva nel 1900? Nei Codici prerepubblicani? È un fenomeno della codificazione 1990-2010 o un tratto strutturale del diritto codificato?

Output: serie storica della densità SIM(t) per finestre temporali (1900, 1946, 1980, 2000, 2025). Risponde alla domanda "modularità innata vs costruita".

Fase 3: cluster nel tempo + centralità tematica

Per ciascun gruppo identificato in fase 1: storia temporale (quando è nato, come si è evoluto), articolo "centro di gravità" via PageRank intra-gruppo, navigazione via UI.

Output: dashboard con timeline gruppi + reference articoli centrali.

Ipotesi pre-registrate (rischiose, da verificare in fase 1-2)

Per disciplina epistemica, fissiamo qui qualche aspettativa falsificabile prima di eseguire le fasi.

  • Ipotesi 1 (circolare, bassa rischiosità): i gruppi top per cardinalità coincidono con i Testi Unici noti, TUF, codice ambiente, codice della crisi, codice antimafia, TUSL. Plausibile dato il pattern di paper 5; conferma debole se vero.
  • Ipotesi 2 (rischiosa, alta informatività): esiste un gruppo "fiscale-IVA" trasversale che unisce articoli del DPR 633/1972, del TUIR (DPR 917/1986), del DPR 600/1973 e di molte manovre. Se vero, identifichiamo un cluster cross-tipo, non spiegabile dalla classificazione formale.
  • Ipotesi 3 (rischiosa): la modularità intra-tipo per Regio Decreto cresce con l'epoca: i RD del 1861-1880 sono articoli sparsi, quelli del 1920-1940 sono raggruppati (codificazione fascista). Se falsa, l'idea che i grandi codici degli anni '30 abbiano "creato" la modularità del corpus va abbandonata.

Le ipotesi sono predizioni, non risultati. Saranno disconfermate? Confermate? Sostituite da qualcosa di sorprendente? La fase 1-2 risponde.

Per chi vuole guardare il codice

L'intera analisi gira in 30 secondi su DuckDB con file Parquet locali. Codice in queries_v2/04_articoli_zombie/r_test\.py. Riproducibilità completa: uv run r_test\.py produce gli stessi numeri della tabella sopra. Su richiesta.


Riferimenti: paper 4 (teorema di limite di identificabilità per la classe S(P)), paper 5 (paper tecnico SIM). Dati: snapshot Normattiva 29 gennaio 2026. Su richiesta.