Dinamica del sistemi normativi e calcolo degli eventi

AutoreGiovanni Dallara/Carlo Gattei/Giovanni Sartor
CaricaCIRFID (Università degli Studi di Bologna)/Istituto per la documentazione giuridica del CNR
Pagine65-81

Page 65

@1. Premessa. L'uso della programmazione logica nella redazione delle leggi: il problema della formalizzazione

Come è noto, per programmazione logica si intende:

- In un senso ampio, l'uso della logica simbolica come linguaggio per la rappresentazione della conoscenza, e l'uso di inferenze logiche controllate per la soluzione effettiva di problemi.

- In un senso stretto, l'uso dì un determinato linguaggio logico (le clausole di Horn estese1) per la rappresentazioni della conoscenza, e l'uso del metodo di inferenza della risoluzione come meccanismo per la soluzione di problemi (cfr. Hogger e Kowalski 1987, 287).

La programmazione logica muove dall'assunto che la conoscenza possa essere espressa (dichiarativamente) in linguaggi logici, e che la risposta a problemi determinati possa essere ottenuta mediante procedure inferenziali riconducibili al modello della dimostrazione di teoremi.

In vista della realizzazione di applicazioni informatico-giuridiche, il linguaggio della programmazione logica in senso stretto presenta un particolare interesse, in quanto consente di realizzare rappresentazioni logiche che costituiscono programmi informatici: il linguaggio delle clausole di Horn estese è adottato dal Prolog, un linguaggio di programmazione ormai di larga diffusione, per il quale esistono numerose implementazioni, anche in pacchetti commerciali.

Una normativa giuridica formalizzata in Prolog costituisce già una base di conoscenza che un sistema informatico può utilizzare in grado di rispondere a quesiti giuridici.

Il Prolog offre due tipi di enunciati per rappresentare la conoscenza:

Page 66

- Le regole, che esprimono asserzioni condizionali, e si formulano con enunciati del tipo A se L1 e..e Ln, dove A è una formula atomica e ogni Li è un letterale positivo (una formula atomica) o un letterale negativo (la negazione di una formula atomica). La negazione va interpretata come «negazione per fallimento»: ogni letterale negativo non B si ritiene dimostrato se fallisce ogni tentativo di dimostrare il letterale positivo B. In altri termini, non B va letto come «non risulta che B», anziché come «risulta che non B».

- I fatti, che esprimono asserzioni incondizionate, e si formulano semplicemente con enunciati atomici, seguiti dal punto.

Ad esempio, le seguenti espressioni sono regole

cittadino_italiano(X) se

nato_in_italia(X)

cittadino_italiano(X) se

genitore_di(Y, X) e

cittadino_italiano(Y).

Le seguenti invece, sono fatti

nato(marco, italia)

genitore_di(marco, giovanna)

nato_in(louise, francia)

Il Prolog offre, infine, un terzo tipo di enunciato, la domanda o quesito, da usarsi per interrogare il sistema. Le domande si formulano nella sintassi ?B1 e... e Bn, dove ogni B1 ..., Bn è un letterale.

Ad esempio, dato il programma precedente, la domanda ?cittadino_italiano(X), da leggersi come «Esiste un X che sia cittadino italiano?», o come «Chi è cittadino italiano?», riceve le risposte X = marco e X = giovanna.

La domanda ?cittadino_italiano(louise) riceve, invece, la risposta «no».

Numerosi autori hanno notato la vicinanza tra il linguaggio legislativo e il linguaggio della programmazione logica (cfr. Kowalski 1991). In particolare, come risulta anche dall'esempio precedente, le regole dei programmi logici ben si prestano a formalizzare norme giuridiche: la testa della regola è la conseguenza giuridica, mentre l'antecedente rappresenta la fattispecie condizionante. I fatti rappresentano, in genere fattispecie concrete.

L'unione dei requisiti della espressività e della computabilità spiega il successo del linguaggio delle clausole di Horn in ambito giuridico, dove il Prolog è stato usato in numerosi prototipi e anche in alcune applicazioni operative (cfr., per tutti, Sergot e altri 1986; Sartor 1992).

Page 67

Nell'ambito della attività legislativa, la possibilità di usare il Prolog suggerisce due obiettivi ambiziosi:

  1. La redazione di testi legislativi nel linguaggio della programmazione logica, anziché nel linguaggio naturale. Il testo legislativo sarebbe in tal caso un programma informatico, che potrebbe essere applicato con l'aiuto di un elaboratore, e sarebbe un testo logico, privo di molte ambiguità di significato proprie del linguaggio naturale.

  2. La traduzione dei testi legislativi in programmi logici al fine di valutarne la consistenza, la correttezza, o di simularne l'applicazione.

    Purtroppo tali obiettivi possono essere raggiunti solo in una misura ' assai limitata. Il risultato di cui al punto (a) non può essere ottenuto che in ristretti casi particolari, in quanto i linguaggi di programmazione logica sono linguaggi formali,» le cui capacità espressive sono molto limitate rispetto al linguaggio naturale.

    Anche il secondo obiettivo - cioè la formalizzazione della normativa giuridica a fini di analisi, controllo e simulazione - è raggiungibile solo in parte. Infatti, se ai limiti della capacità espressiva di ogni linguaggio formale si aggiungono gli enormi sforzi che ogni formalizzazione comporta, diventa difficile ipotizzare una rappresentazione logica di larghe porzioni di un corpus legislativo.

    Quanto detto non esclude che, in alcuni casi, la formalizzazione di porzioni di testi giuridici possa risultare molto utile. Bisogna, tuttavia, che l'applicazione dei metodi dell'intelligenza artificiale muova dalla consapevolezza dei limiti intrinseci in questi stessi metodi. Bisogna individuare, in particolare, aspetti o settori del diritto la cui formalizzazione, effettivamente realizzabile, consenta di soddisfare un bisogno sentito dal legislatore o, più in generale, dall'operatore giuridico. Il contributo della programmazione logica può consistere solo in una migliore analisi e precisazione di contenuti giuridici, o può dar luogo a concrete applicazioni informatiche.

    In particolare, sembra ragionevole pensare alle seguenti applicazioni dei linguaggi e delle metodologie di programmazione logica nella legislazione:

  3. Uso dei linguaggi logici a fini puramente analitici, cioè per chiarire la struttura logica di testi normativi complessi e migliorare la loro formulazione. I linguaggi formali consentono di esprimere alcuni contenuti giuridici in modo chiaro e privo di ambiguità. In particolare, i linguaggi di programmazione logica permettono in molti casi di ottenere formulazioni perspicue, sintetiche, rigorose, che possono anche servire da modello per ì testi normativi in linguaggio naturale (cfr. Kowalski 1991).

  4. Realizzazione di sistemi basati sulla conoscenza giuridica. La rap-Page 68presentazione logica delle normative giuridiche conduce, in modo naturale, alla realizzazione di sistemi basati sulla conoscenza. La normativa formalizzata diventa una base di conoscenza che può essere utilizzata da un motore inferenziale di impiego generale. Si ottiene così un sistema informatico in grado di applicare automaticamente tale normativa. La realizzazione di sistemi siffatti è una funzione che spetta all'amministrazione, più che all'organo legislativo, ma anche l'organo legislativo può trarre utili indicazioni dalla simulazione dell'applicazione della legge mediante un sistema basato sulla conoscenza: potrebbero emergere lacune, incongnienze, e contraddizioni del testo legislativo, e il difficile problema della fattibilità delle leggi potrebbe essere studiato, non in astratto, ma in relazione alla simulazione di casi concreti.

  5. Formalizzazione di aspetti limitati del contenuto dei testi giuridici, al fine di fornire un supporto «intelligente» ad applicazioni informatiche tradizionali. Alcune informazioni contenute nei testi giuridici sono facilmente formalizzabili. Una rappresentazione logica consapevolmente limitata a queste informazioni può consentire di ottenere risultati di notevole interesse, sia teorico che applicativo.

    Il presente lavoro si colloca nella direzione indicata sub c): sulla base delle formalizzazioni di un aspetto particolare del contenuto dei testi giuridici ci si propone di ottenere una rappresentazione logica dela dinamica dei testi normativi, che consenta dì realizzare un sistema informatico per la determinazione delle leggi vigenti.

    Lo sviluppo del modello qui proposto parte dalla constatazione che le metanorme che operano l'abrogazione e la modifica di norme giuridiche sono...

Per continuare a leggere

RICHIEDI UNA PROVA

VLEX uses login cookies to provide you with a better browsing experience. If you click on 'Accept' or continue browsing this site we consider that you accept our cookie policy. ACCEPT