GIURIDICA ARTIFICIALE
2. La gastiona di dat
2.1. L'applicazione automatica di norma giuridiche
Vi sono numerosi sistemi informatici tradizionali, anche di grosse dimensioni, che compiono elaborazioni che consistono nell'applicazione di norme giuridiche (comprendendo nella disciplina giuridica amche quella di origine negoziale). Nelle pagine seguenti si illustreranno due categorie di sistemi di questo tipo (1) sistemi nei quali il trattamento di aspetti giuridici è ricompreso in applicazioni gestionali, e (2) sistemi che intendono fornire una sorta di"consulenza giuridica" automatica. Si considereranno, infine, le prospettive e i limiti dell'applicazione di norme giuridiche mediante strumenti informatici tradizionali.
2.1.1. Applicazioni gestionali
Alcune importanti applicazioni informatiche di tipo gestionale comprendono l'effettuazione di operazioni regolate dal diritto. Si pensi ai sistemi che hanno per oggetto:
-la determinazione e il pagamento delle retribuzioni, delle pensioni, dei contributi previdenziali;
-la determinazione e la riscossione di determinate categorie di tributi;
-la gestione dei conti bancari o di varie forme di contabilità;
-la tenuta di vari registri (anagrafici, immobiliari, dei beni mobili registrati ecc.).
Di solito, tali sistemi affiancano alla gestione di archivi di dati (che nei sistemi più evoluti sono integrati in una base di dati) l'effettuazione di una serie di elaborazioni che usano quegli archivi: calcoli numerici, redazione di documenti di vario tipo (ad esempio, distinte, ricevute, mandati di pagamento, certificati) ecc. I programmi per queste elaborazioni di regola sono scritti in linguaggi di tipo tradizionale, e in particolare in COBOL, il linguaggio più usato per applicazioni gestionali.
Si tratta di sistemi spesso di grandi dimensioni, che trattano enormi quantità di dati, con elaborazioni talvolta prevalentemente in modalità a lotti* (tipicamente, la gestione degli stipendi, che è effettuata mensilmente), talvolta prevalentemente in modalità interattiva (come nella gestione dei conti bancari).
Sistemi informatici siffatti costituiscono un'elemento insostituibile in tutti i grandi apparati organizzativi, pubblici e privati. Per molte delle applicazioni summenzionate, il passaggio a tecnologie informatiche si configura ormai come una scelta irreversibile.
2.1.2. Sistemi ver consulenze giuridiche
I sistemi che presenteremo in questo paragrafo si propongono di fornire una sorta di consulenza giuridica automatica e, quindi, prestazioni analoghe a quelle delle applicazioni giuridiche dell'intelligenza artificiale7.
Si tratta di programmi realizzati con tecniche informatiche tradizionali. Per quanto riguarda i linguaggi di prograunmazione: di solito anziché il COBOL si usano linguaggi più adatti allo sviluppo di piccole applicazioni, come BASIC, C o PASCAL. Infatti, per lo più, questi prograunmi sono destinati a microelaboratori.
I sistemi che stiamo considerando sono, in genere, interattivi: rivolgono una serie di domande predeterminate all'utente e la risposta a ciascuna di tali domande
6Un elaboratore opera in modalità a lotti (o come anche si dice batch) quando i lavori (un lavoro o job è il programma per svolgere una certa elaborazione, assieme ai dati relativi) vengono eseguiti solo dopo essere stati introdotti completamente nel sistema di calcolo. L'elaboratore memorizza in una lista o coda i diversi lavori che gli sono stati proposti e li esegue uno dopo l'altro, senza che l'utente possa intervenire.
determina la successiva esecuzione del programma e quindi la prosecuzione dell'interazione con l'utente.
Tra i sistemi di tipo algoritmico progettati per dare consulenze giuridiche possiamo menzionare, a titolo di esempio, i seguenti:
-L'Automa infortunistico, sviluppato presso l'Istituto per la documentazione giuridica di Firenze verso la metà degli anni 70. Il programma, scritto in BASIC, aveva per oggetto la determinazione dell'indennizzo nel caso di incidenti stradali. Nel programma erano stati incorporati criteri di origine legislativa e giurisprudenziale. L'utente era chiamato a fornire una serie di informazioni, in base alle quali il sistema procedeva al calcolo dell'indennizzo8.
-I programmi CORPTAX9, CHOOSE“ e SEARCH11, sviluppati da R. Hellawell all'inizio degli anni 80. Si tratta di sistemi realizzati in BASIC che trattano la normativa fiscale. Il sistema pone determinate domande all'utente, questi, in risposta, fornisce dei dati, in base ai quali il sistema provvede alla determinazione dell'importo dovuto.
-I programmi in BASIC per la gestione della normativa fiscale sviluppati da Bellord12.
-Il progetto DataLex13, che si propone di sviluppare un guscio (LES-Legai Expert System) per applicazioni informatico-giuridiche. L'utente deve predisporre ciò che gli autori chiamano reti di decisione (decision nets o
decision networks) che, in sostanza, rappresentano dei
8Cfr FAMELI E., L'automa infortunistico: un esperimento di consulenza
giuridica automatica, in "Informatica e diritto", 1, 1976, pp. 1-50.
9HELLAWELL R., A Computer Program for Legai Planning and Analysis: Taxation of Stock Redemptions, in "Columbia Journal of Transnational
Law", 19, 1980, pp. 1363-1398.
10HELLAWELL R., CHOOSE: A computer program for legal planning and analysis, in "Akron Law Review", 15, 1981, pp. 339-357.
11HELLAWELL R., SEARCH: A Computer Program for Legal Problem Solving, in "Akron Law Review", 15, 1982, pp. 635-653.
12BELLORD N.J., Tax Planning by Computer, in NIBLETT B. (a cura di),
Computer Science and Law: An Advanced Course, Cambridge University
Press, 1979, pp. 173-182.
13GREENLEAF G., MOMBRAY A., TYREE A.L., Expert systems in law: The DATALEX Project, in Proceedings of the First International Conference on Artificial Intelligence and Law, cit., pp. 9-17.
diagrammi di flusso14. Sulla base delle reti di decisione vengono redatti automaticamente programmi nel linguaggio C.
2.1.3. Programmazione tradizionale e applicazione del diritto.
In tutte le applicazioni che abbiamo presentato nei paragrafi precedenti, attività giuridicamente rilevanti sono formalizzate nei termini di una combinazione di operazioni elementari sui dati, mediante un linguaggio di programmazione tradizionale (un linguaggio algoritmico). La conoscenza giuridica non è distinta dal programma che la usa, ma è implicita, incorporata nella prescrizione/descrizione delle operazioni che l'elaboratore deve compiere per raggiungere il risultato voluto. Il programma rappresenta (in termini di operazioni sui dati) un particolare procedimento (o procedura) per adempiere alla legge o per giungere alla determinazione di una qualificazione giuridica.
L'esaune delle applicazioni che abbiauno appena illustrato, sia di quelle "gestionali", sia di quelli di "consulenza giuridica", mostra con chiarezza i limiti che l'informatica tradizionale incontra nel mondo del diritto:
(a) Un prograunma informatico tradizionale è limitato ad un tipo ben determinato di problemi (un prograunma per il calcolo della retribuzioni non potrebbe essere usato, ad esempio, per determinare posizioni previdenziali); nel mondo giuridico si presentano continuaunente nuovi problemi, e i diversi settori del diritto debbono spesso essere correlati per determinare la disciplina da applicare ad un caso concreto.
(b) Ogni programma svolge un'operazione esattamente definita, sia nel suo obiettivo (il calcolo degli stipendi), sia nel suo contesto (la disciplina legislativa e negoziale in vigore in un momento dato); nei sistemi giuridici moderni è stato istituzionalizzato (e disciplinato giuridicamente) il continuo mutaunento della normativa giuridica, così da consentire un rapido adeguamento del diritto alle esigenze sociali. Sono pertanto possibili continue modifiche normative che richiedono corrispondenti trasformazioni del prograunma, con costi e conseguenze spesso imprevedibili15.
14I diagrammi di flusso o diagrammi a blocchi sono un linguaggio grafico per rappresentare algoritmi.
15La crescente complessità dei programmi informatici causa la difficoltà di prevedere il comportamento dei programmi stessi, e di apprezzare l'impatto di modifiche successive. Questa complessità è alla base delle periodiche "crisi del software". I cambiamenti di paradigma
(c) L'elaborazione da compiere deve essere esattamente determinata in tutti i particolari, debbono essere esattamente individuati gli input del sistema, che corrisponderanno di regola ai dati da inserire in un determinato modello o formulario (o alle risposte ad una serie di domande predefinite proposte dall'elaboratore all'utente), e i corrispondenti output. Nel mondo del diritto, accanto a casi completamente standardizzati, si presentano casi nei quali elementi ulteriori realizzano un'eccezione disciplinata in modo diverso. Queste eccezioni possono non essere state contemplate nella progettazione del sistema, in quanto stabilite dalla normativa successiva o da normative settoriali.
(d) Raramente i documenti normativi adottano una formulazione di tipo algoritmico: il passaggio dai documenti originali (meglio, dall'interpretazione attribuita agli stessi) ad un linguaggio di tipo algoritmico comporta una radicale trasformazione. Occorre tradurre i contenuti giuridici nella composizione sequenziale (eventualmente strutturata) di operazioni elementari sui dati.
(e) Questa trasformazione comporta un allontanamento non solo dallo stile di un determinato documento normativo, ma, in generale, dal linguaggio nel quale gli uomini comunicano tra di loro. Ad essa si accompagna una perdita di trasparenza. Diventa estremamente difficile riconoscere, nel testo del programma, gli elementi che esprimono la conoscenza giuridica, da quelli destinati a regolare il processo computazionale. I due aspetti sono fusi in un unico programma, nelle stesse strutture formali.
(f) Il passaggio ad una formulazione di tipo algoritmico comporta inevitabilmente una perdita di astrazione. I programmai di questo tipo sono, come si suol dire deterministici: il programma deve determinare esattamente la sequenza delle operazioni da compiere sui dati. Non sempre, al fine di adempiere a prescrizioni giuridiche o per determinare delle qualificazioni giuridiche, è necessario osservare sequenze di comportamienti esattaunente definite:
-Spesso la legge si limita ad indicare il comportamento al quale il cittadino è obbligato, senza specificare come questi debba procedere per determinare il comportamento cui è tenuto e porlo in essere (ad esempio, per determinare l'imposta dovuta, posso calcolare prima le detrazioni d'imposta, e poi l'imposta o viceversa; per adempiere all'obbligo posso prelevare la somma necessaria dal mio
anche essere interpretati come la risposta scientifico-tecnologica alle crisi del software. Per una considerazione del problema nell'informatica giuridica, cfr. FIEDLER H., BARTHEL T., VOOGD G., Formalisierung im
Recht. Untersuchungen zur formalisierung Recht als Beitrag zur Grundlageforschung juristicher Datenverarbeitung, Westdeutscher Verlag,
conto in banca, chiederla in prestito ad amico, ottenerla vendendo un mio bene etc.). In questi casi, l'imposizione di una sequenza determinata è un'aggiunta non necessaria.
-Anche quando la legge stabilisca un procedimento, questo può comprendere atti necessari, atti eventuali, atti da compiersi in alternativa. Tra alcuni atti c'è un ordine determinato (in quanto il compimento degli uni condiziona la validità degli altri), tra altri non è definito alcun ordine. L'imposizione di una rigida sequenza è, anche in questi casi, una sovrapposizione artificiosa;
Una formalizzazione algoritmica più che una riformulazione del diritto è la precisazione di un metodo particolare per adempiere al diritto, o per determinare una qualificazione giuridica.
(g) Più in generale, per sviluppare un programma algoritmico occorre aver stabilito con precisione lo scopo che ci si ripromette di raggiungere, e l'utente cui il programma è destinato: scopo e tipo di utente concorrono nel determinare quali operazioni si debbamo compiere in base al diritto. Il programma deve tenerne conto e diversi scopi o diversi utenti richiedono un diverso programma, seppure sviluppato a partire dalla medesima normativa. Ad esempio "un enunciato apparentemente semplice come "i richiedenti debbono presentare domanda entro il 1 gennaio", può essere letto in molti modi diversi. Esso indica a un richiedente quamto tempo egli abbia a disposizione per preparare la propria domamda. Aiuta l'amministrazione a determinare se una domamda dovrebbe essere respinta. Potrebbe essere usato da un giurista in argomentazioni circa il significato dei termini 'domamda valida' o di 'presentazione', così come usati in questa norma o in altre norme correlate". Ciascuna di queste letture comporta una diversa trascrizione algoritmica dell'enunciato di cui trattasi16.
I limiti che abbiamo elencato non toccamo nello stesso modo tutte le applicazioni informatico-giuridiche. Allo
stato della tecnologia, i metodi algoritmici (disciplinati nella prograunmazione strutturata) possono essere i più adatti per molte applicazioni standardizzate di tipo gestionale. Infatti questi metodi possono essere sufficienti per quelle applicazioni, mentre l'esigenza di gestire efficientemente grandi quantità di dati e la necessità di colloquiare con altri programmi informatici (in particolare, con i sistemi per la gestione di basi di dati) possono rendere preferibile o necessario il ricorso a strumenti consolidati. Invece, l'uso di tecniche dell'intelligenza artificiale nei sistemi di consultazione giuridica automatica sembra già oggi opportuno o necessario. Come
16SERGOT M.J., The Representation of Law in Computer Programs: A Survey
vedremo nel seguito, queste tecniche consentono di superare, almeno in parte, i limiti indicati nei punti da (a) a (f),
(limiti particolarmente gravi per queste applicazioni), mentre le ragioni che suggeriscono l'uso di metodi consolidati non sono così forti per i sistemi di consulenza giuridica.
2.1.4. La programmazione strutturata come modello del diritto
Nell'informatica giuridica si è dedicata una scarsa attenzione ai sistemi che realizzano forme di applicazione automatica della normativa giuridica in contesti gestionali. Piuttosto che sulle tecniche da usare per sviluppo di questi sistemi, l'attenzione del giurista si è concentrata sulla problematica del loro impatto sociale, in particolare in relazione alla tematica della tutela della riservatezza. Lo sviluppo delle applicazioni informatiche è stato affidato ad altri soggetti: come amministratori, analisti, programmatori, ecc.
Lo scarso interesse del giurista dipende probabilmente dal fatto che tali sistemi gli richiedono solo un input iniziale. La preparazione di un sistema di questo tipo presuppone una determinazione univoca del contesto normativo dello specifico, ristretto problema cui il sistema è destinato, ma la semplicità delle operazioni da automatizzare (prescindendo dalle operazioni di calcolo) rende inutile un ulteriore intervento del giurista. Inoltre, questi sistemi usano i risultati del lavoro giuridico (in senso stretto) piuttosto che sostituirsi allo stesso. Essi svolgono un'attività meramente applicativa che, benché abbia per oggetto norme giuridiche, non ha mai presupposto una specifica educazione giuridica (si pensi, ad esempio, alla redazione di certificati anagrafici, o al calcolo degli stipendi).
Benché le applicazioni gestionali abbiano toccato solo marginalmente il lavoro del giurista, esse hanno invece
inciso profondamente sulle strutture organizzative pubbliche e private e sul rapporto tra cittadini e amministrazioni. L'applicazione (cieca e meccanica) di norme giuridiche già oggi è spesso affidata a sistemi automatici, e lo sarà in misura maggiore nel prossimo futuro. Per queste applicazioni il problema non è tanto decidere se sia possibile e lecita un'applicazione automatica del diritto, ma piuttosto esaminare se sia possibile sviluppare sistemi informatici più flessibili, trasparenti e controllabili, anche grazie alle tecnologie dell'intelligenza artificiale.
La realizzazione di programmi che applicano norme giuridiche ha ispirato, verso a fine degli anni 70, un interessante tentativo di trasferire il metodo della programmazione strutturata alla normativa giuridica. Si
parlava di una "legislazione strutturata", che riprendesse le strutture della programmazione strutturata, così da ottenere anche nel diritto i risultati di semplicità, di chiarezza, di comunicabilità che il metodo della programmazione strutturata intende conseguire17. Questo tentativo si è interrotto quando l'interesse delle ricerche informatico-giuridiche si è spostato verso le applicazioni di intelligenza artificiale.
I risultati ottenuti sono stati assai limitati: nonostante questa problematica abbia suscitato un notevole
interesse, non vi sono state realizzazioni significative. Guardando retrospettivamente è facile rendersi conto delle ragioni di questo insuccesso. La programmazione tradizionale (algoritmica) , non è il modo più naturale per interpretare la normativa giuridica poiché questa solo in rari casi è facilmente esprimibile come una combinazione, seppure strutturata, di operazioni su dati. La sostituzione di una rigida procedura, allo stile dichiarativo delle norme giuridiche (anche di quelle che prescrivono procedimenti) sembra del tutto inadeguata, tranne che in determinati contesti ristretti. Ciò non significa che in qualche caso non possa essere utile rappresentare con un diagramma di flusso il metodo per applicare una certa normativa giuridica (ad esempio, il calcolo delle imposte), o per realizzare un procedimento giuridico18. Quando ci si proponga di ottenere risultati più generali (e non immediatamente finalizzati alla redazione di un programma algoritmico) sembra preferibile ricorrere a metodi diversi e, in particolare, ai formalismi proposti dall'intelligenza artificiale.
Negli anni scorsi si è cercata un'alternativa ai diagrammi di flusso nelle reti di Petri, un formalismo di tipo reticolare, meno legato al funzionamento degli attuali
17Per una considerazione del rapporto tra programmazione strutturata e legislazione, cfr., in particolare, FIEDLER H., Structured Programs as a
Paradigm of Structured Laws, in NIBLETT (a cura di), Computer Science and Law, cit, pp. 137-146; BARTHEL T., Structured Programs as a Paradigm of Structured Laws, in NIBLETT (a cura di) , Computer Science and Law,
1979, pp. 147-156.
18Per alcuni esempi di applicazione del metodo della diagrammazione a blocchi a contesti giuridici cfr. LOSANO M., Informatica per le scienze
sociali, cit., p. 430 ss. Un'interessante applicazione è riportata, in
MERLO B., MICHELI G., Il condono edilizio computerizzato. Pirola, Milano, 1985, i quali ricorrono al metodo dei'diagrammi di flusso per rappresentare le procedure per ottenere il condono edilizio. Per gran parte della legge Merlo e Micheli si limitano ad una rappresentazione schematica delle procedure giuridiche, per il calcolo della somma da pagare per ottenere la sanatoria propongono programmi interattivi in BASIC.
elaboratori (in particolare, consente di rappresentare processi concorrenti), più flessibile e vicino alla logica19. Anche le ricerche in questa direzione sembrano essersi oggi interrotte, poiché sembra preferibile passare direttamente a tecniche di rappresentazione della conoscenza giuridica ancor più evolute e lontane dalla programmazione tradizionale.
2.2. L'automazione d'ufficio coma supporto dall'attività dal