INDICE GENERALE Prefazione CAPITOLO 1. Linguaggi naturali e artificiali 1.1 Tipi di linguaggi vii 1 1 1.1.1 Sorgente e destinazione 2 1.1.2 Supporti e realizzazione 3 1.2 Apprendimento del linguaggio e inferenza grammaticale 6 1.3 Argomenti e obiettivi del libro 7 1.4 Le stringhe e le frasi 9 1.5 Linguaggi infiniti 1.5.1 Parole e lessico 1.6 Operazioni elementari sulle stringhe 11 12 13 1.6.1 Riflessione e simmetria 15 1.6.2 Ripetizioni ed elevamento a potenza 17 1.6.3 Posizioni delle stringhe 18 1.7 Operazioni sui linguaggi 1.7.1 Notazioni insiemistiche 1.8 Operazioni collettive sulle stringhe 19 20 24 1.8.1 Linguaggio universale complemento e differenza 25 1.8.2 Concatenamento di linguaggi 26 1.8.3 Elevamento a potenza di un linguaggio 27 1.8.4 Passaggio al limite e linguaggi infiniti 28 1.8.5 Linguaggio universale e proprietà della stella 30 1.9 Linguaggi non linguistici 32 iv Indice generale CAPITOLO 2. La famiglia dei linguaggi regolari 2.1 Panoramica 2.2 Espressioni regolari 2.2.1 Contro la proliferazione delle parentesi 2.3 La famiglia dei linguaggi regolari 2.3.1 Altre utili notazioni per le espressioni regolari 2.3.2 Famiglie di linguaggi 2.4 Descrizione verbale e formalizzazione 2.4.1 Regole di traduzione 2.4.2 Definizioni ex negativo 2.4.3 Divide et impera 2.4.4 Divisione in problemi non disgiunti 2.5 Le liste: un paradigma onnipresente 2.5.1 Liste astratte 2.6 Sintassi concreta e astrazioni linguistiche 2.7 Trasformazioni alfabetiche 2.7.1 Isomorfismi alfabetici 2.7.2 Trasformazioni irreversibili 2.7.3 Cancellature e proiezioni 2.7.4 Omomorfismo del linguaggio 2.8 Livelli gerarchici e precedenze 2.8.1 Documenti a più livelli e testi marcati 2.8.2 Gerarchie nei linguaggi aritmetici e logici CAPITOLO 3. Automi 3.1 Definizioni operative e automi 3.2 Automi e riconoscimento del linguaggio 3.2.1 Rappresentazione grafica dell’automa 3.2.2 Funzione di transizione 3.2.3 Scoperta degli errori 3.2.4 Ruolo degli stati iniziale e finali 3.3 Stati equivalenti e automa minimo 3.4 La famiglia dei linguaggi a stati finiti 3.4.1 Linguaggi finiti, infiniti e universali 3.4.2 Riconoscitore del complemento 3.5 Indeterminismo 3.5.1 Transizioni indeterministiche 3.5.2 Unione di due linguaggi c 88-08-07869-8 35 35 35 38 40 40 43 46 49 51 53 56 56 57 59 62 63 65 68 69 70 72 73 75 75 77 80 81 83 85 90 93 93 95 97 97 100 c 88-08-07869-8 Indice generale v 3.5.3 Linguaggio speculare 102 3.5.4 Concisione dell’indeterminismo 104 3.5.5 Concatenamento, croce e stella 106 3.6 Dalla formula all’automa: traduzione sintattica 113 3.7 Dalla formula all’automa: metodo di McNaughton e Yamada 115 3.8 Ritorno al determinismo 117 3.8.1 Complessità del calcolo 125 3.9 Limiti degli automi finiti 127 CAPITOLO 4. Grammatiche 131 4.1 Origine delle grammatiche formali 131 4.2 Definizioni ricorsive 132 4.2.1 Definizione ricorsiva dei palindromi 4.3 Grammatiche libere 133 134 4.3.1 Grammatica e linguaggio generato 137 4.3.2 Alberi sintattici e derivazioni 139 4.4 Classificazione delle regole 143 4.5 Espressioni regolari e grammatiche 144 4.5.1 Dalla formula regolare alla grammatica 144 4.5.2 Una traduzione guidata dalla sintassi 146 4.5.3 Operazioni sui linguaggi liberi 148 4.5.4 Grafi sintattici e grammatiche EBNF 150 4.6 Patologia delle grammatiche 153 4.7 Ambiguità 155 4.7.1 Ambiguità di associazione nelle liste 157 4.7.2 Ambiguità di codifica 158 4.7.3 Ambiguità di decomposizione 160 4.7.4 Ambiguità del linguaggio 163 4.8 Equivalenza e adeguatezza strutturale 164 4.9 Liste gerarchiche e livelli di precedenza 166 4.9.1 Espressioni con operatori a precedenza 168 4.9.2 Suddivisioni di un libro 171 4.10 Parentesi e strutture chiuse 174 4.10.1 Funzioni e relazioni 177 4.10.2 Notazioni infisse e polacche 180 4.11 Le grammatiche degli automi 184 4.11.1 Dall’automa alla grammatica 185 4.11.2 Dalla grammatica all’automa 187 Indice generale vi c 88-08-07869-8 4.11.3 Equazioni linguistiche 4.12 Cenni all’analisi sintattica 4.12.1 Indeterminismo nei linguaggi liberi 4.13 Livelli metalinguistici 188 190 194 197 4.13.1 XML e i documenti della Rete 4.14 Limiti delle grammatiche libere 202 206 CAPITOLO 5. Logica e formalizzazione della lingua 5.1 Calcolo delle proposizioni e algebra di Boole 5.1.1 Dagli operatori aritmetici a quelli logici 5.1.2 Una funzione logica: la disgiunzione 5.1.3 Funzioni elementari e tabelle della verità 5.2 Formule logiche e precedenze tra connettivi 5.2.1 Interpretazione semantica 5.2.2 Costruzione della tabella della verità 5.3 5.4 5.5 5.6 Identità e trasformazioni delle proposizioni Una tecnica di dimostrazione Dalla tabella della verità alla sua formula Calcolo dei predicati 5.6.1 Quantificatori e variabili individuali 5.6.2 Relazioni a tre e più argomenti 5.6.3 Funzioni e relazioni 5.6.4 Insiemi e predicati caratteristici 5.7 Sintassi del calcolo dei predicati 5.8 Scambi tra quantificatori 5.9 Ambito dei quantificatori 5.10 Lingua e logica 5.10.1 Dalla logica all’italiano 5.10.2 Dall’italiano alla logica 5.11 Limiti della logica e dei linguaggi formali Bibliografia Indice analitico 209 210 211 211 213 219 221 227 232 235 241 243 244 250 251 251 253 256 257 258 259 260 263 267 269 PREFAZIONE Questo libro si distingue dai classici testi sui linguaggi formali perché non richiede preparazione matematica, al di là delle conoscenze della scuola superiore. Da dove viene l’idea del libro. Quando mi fu proposto di insegnare i linguaggi formali nella appena costituita facoltà di scienze della comunicazione della Università della Svizzera italiana, fui francamente sorpreso. Come era possibile trasformare un corso normalmente tenuto per gli studenti di ingegneria e informatica in modo da renderlo adatto a giovani dalla formazione tutt’altro che matematica e ingegneristica? Le scienze della comunicazione alle quali questo libro è rivolto presentano una ricca combinazione di aspetti umanistici uniti ad una significativa formazione nelle tecnologie dell’informazione. Gli allievi non saranno però dei futuri tecnologi, né hanno la preparazione matematica e l’abitudine all’uso dei modelli quantitativi che gli studenti di ingegneria e informatica acquisiscono con lo studio delle scienze esatte, della fisica e delle sue applicazioni all’elettronica. È apparso allora necessario impostare l’esposizione in modo nuovo, mirato a questi studi(1) . La realtà sulla quale opera l’esperto di scienze della comunicazione non è quella fisica con i suoi modelli matematici, ma è un mondo di testi e di ipertesti, di documenti e di immagini, di giacimenti culturali e di informazioni richieste e fornite, attraverso tanti ruoli e modalità di fruizione. La capacità di modellare con precisione tali fenomeni comunicativi, nella misura in cui è possibile ricorrere a metodi formali, deve dunque appoggiarsi sulle teorizzazioni rivolte allo studio del linguaggio e del ragionamento: la teoria dei linguaggi formali e la logica. Queste discipline caratterizzano del resto anche gli studi di informatica delle facoltà tecnologiche, dove però a questi argomenti si giunge attraverso una solida base di analisi matematica e di algebra, mentre negli studi di scienze della comunicazione non c’è ragione di dare tanto spazio alla matematica: la linguistica ne prende in qualche senso il ruolo propedeutico, e l’informatica nel suo ruolo operativo fornisce evidenti esempi dell’uso dei linguaggi formali. ................... (1) Il manifesto di questo progetto didattico è apparso in [6]. viii Prefazione c 88-08-07869-8 I linguaggi formali per le scienze della comunicazione È noto che la teoria dei linguaggi formali è emersa come disciplina scientifica verso la metà del ’900, grazie alla sorprendente confluenza degli studi, fino ad allora separati, di linguistica, logica-matematica e informatica (ante litteram). Come padri fondatori emblematici della disciplina si possono assumere il linguista Noam Chomsky, il logico Stephen Kleene e gli informatici che progettarono i primi linguaggi artificiali di programmazione (in particolare John Backus). Staccatasi dalla linguistica e dalla logica, nel mezzo secolo trascorso la disciplina si è affermata come uno dei pilastri dell’informatica, permettendo lo sviluppo sempre più accurato e sistematico di innumerevoli linguaggi artificiali rivolti a tante e svariate esigenze: la programmazione, le basi dei dati, l’intelligenza artificiale, la rappresentazione delle conoscenze, la preparazione dei documenti e degli ipertesti, il controllo dei robot, i protocolli di comunicazione delle reti, i linguaggi iconici e grafici, ecc. I linguaggi artificiali di interesse per i nostri scopi non sono Pascal, C o Java, bensı̀ i linguaggi (come XML) per la rappresentazione dei saperi della Rete (Internet). Ma la valenza di questo libro non è quella operativa: saper programmare in questo o quel linguaggio artificiale. La capacità che speriamo di trasferire al lettore e allo studente è quella modellistica, cioè il saper riportare i fenomeni comunicativi a modelli rigorosi e semplici. Ne conseguono due indicazioni: • I modelli dei linguaggi formali e degli automi sono il nucleo teorico-matematico che insieme alla logica caratterizzano le scienze della comunicazione, assai meglio delle matematiche tradizionali (algebra lineare, analisi matematica e geometria analitica). • Dal punto di vista del piano degli studi universitari è più efficace collocare l’insegnamento nel primo anno, in modo da impartire agli allievi le basi della formalizzazione e del ragionamento astratto che gioveranno nei corsi successivi. Tuttavia è opportuna la precedenza di un corso di linguistica e di uno di informatica (meglio se orientato all’uso della Rete). Contenuti e obiettivi Volendo schematizzare l’esposizione, focalizziamo i punti di vista centrali dello studio. Essi sono: la formalizzazione del linguaggio (e della comunicazione in senso lato), la trasformazione ed elaborazione dei linguaggi (e dei media in senso lato), il ruolo della logica. Formalizzazione del linguaggio L’approccio sintattico mira a definire con precisione le frasi di un linguaggio, e fornisce una gamma di approssimazioni al concetto di correttezza grammaticale. Per mezzo dei concetti di stringa come sequenza di simboli, di linguaggio formale e di grammatica generativa si modellano situazioni familiari (ad es. la struttura a capitoli di un libro) o si riprecisano i modelli, di solito meno formali, esposti in altre materie: un esempio può essere la teoria dell’argomentazione con i suoi modelli grammaticali e logici [7,3]. I prerequisiti matematici necessari alla comprensione sono esposti, pur se probabilmente già posseduti dal lettore: la teoria elementare degli insiemi, delle relazioni e la c 88-08-07869-8 Prefazione ix logica proposizionale (algebra di Boole). I metodi formali studiati sono le espressioni regolari, gli automi finiti, le grammatiche chomskiane libere dal contesto (o BNF ) e i rudimenti della logica delle proposizioni e dei predicati del primo ordine. L’esperienza didattica ci sembra dimostrare che gli allievi vivono con interesse la propria crescente capacità di modellare situazioni che non avrebbero saputo descrivere con precisione in altro modo. Attraverso tale esercizio si sviluppa anche la loro capacità di esprimere con precisione in italiano le regole di correttezza formale di un semplice fenomeno o artefatto linguistico, comunicativo o comportamentale. La struttura gerarchica delle grammatiche insegna all’allievo la strategia divide et impera per decomporre un problema complesso in sottoproblemi più semplici, la base di ogni buon metodo di progetto. Inoltre la teoria dei linguaggi rivisita e formalizza certe nozioni apprese in un corso di linguistica generale: la ambiguità e la idoneità strutturale. Lo studio della idoneità strutturale di una definizione porta a capire che la descrizione più semplice non sempre è adeguata e che la complessità del modello riflette quella del fenomeno modellato. Entra cosı̀ in gioco uno dei punti di vista fondamentali della teoria della complessità, quello descrittivo. L’attenzione portata alle proprietà strutturali rende l’allievo consapevole degli equivoci che nascono quando la sorgente e la destinazione di un messaggio sono formalizzate in modo inconsistente o ingannevole. Tali concetti hanno significativi contatti con lo studio dei codici (nel senso della teoria dell’informazione di Shannon), che alcuni possono già conoscere o desiderare di approfondire [12]. Infine la teoria dei linguaggi formali non cessa di meravigliare i neofiti, cosı̀ come stupı̀ il mondo scientifico cinquant’anni fa, quando essa mostra la convergenza di tre modelli formali tanto diversi quanto le espressioni regolari di Kleene, le grammatiche di Chomsky e gli automi a stati finiti: un elegante risultato matematico con un piccolo apparato formale, ricco di ricadute applicative. Trasformazione e rappresentazione dei linguaggi Attraverso l’osservazione di semplici linguaggi concreti (annuario telefonico, documenti HTML, composizione dei vagoni di un treno, passi di un comportamento non linguistico, stanze di una canzone . . . ) emerge la consapevolezza che le strutture sintattiche essenziali sono pochissime: le liste, le liste gerarchiche, le strutture a parentesi o incassate, e poche altre. La grande varietà dei linguaggi è dunque solo apparente e superficiale, un effetto della glassa sintattica (syntactic sugar) con cui vengono ricoperti i paradigmi sintattici fondamentali. Questa capacità di astrazione dai dettagli (della sintassi concreta) rappresenta uno strumento concettuale importante da molti punti di vista. Innanzitutto essa permette una grande economia concettuale nello studio dei linguaggi, un po’ come il latino facilita lo studio delle lingue neolatine. Un esempio è dato dai termini funzionali, che si incontrano in molti linguaggi informatici come Java o Pascal , nel calcolo dei predicati, o nella ingegneria dei saperi. Le rappresentazioni con parentesi, con operatori infissi e le notazioni polacche (postfisse e prefisse) ben illustrano le varie forme in cui un testo è rappresentabile senza perdita di informazione. D’altro lato l’astrazione dalla forma esteriore del documento sta alla base della buona comunicazione dei documenti nella Rete, dove il contenuto di un documento è x Prefazione c 88-08-07869-8 logicamente separato dalla sua presentazione a video. Ci si ricollega in tale modo ai concetti dell’informatica, come i linguaggi della famiglia XML per la marcatura dei documenti. Quest’ultimo sistema offre anche un esempio concreto della distinzione tra metalinguaggio e linguaggio, uno dei capisaldi della logica. Ma soprattutto nasce di qui la distinzione tra forma e contenuto, tra sintassi e semantica, che impregna ogni fenomeno comunicativo. Le trasformazioni sintattiche servono dunque a filtrare o a evidenziare le tante letture che possono darsi allo stesso testo. Il significato di una frase viene visto come la sua traduzione in un secondo linguaggio, mediante una trasformazione guidata dalla sintassi ovvero una interpretazione semantica. Studiando le trasformazioni dirette e inverse (presenti ad es. nei rebus e nelle traslitterazioni) si percepiscono le proprietà necessarie a permettere la ricostruzione del messaggio originale. L’allievo comprende in questo modo quali siano le tecniche utilizzate per realizzare gli analizzatori sintattici e i tanti strumenti software che trasformano i documenti. La comprensione potrebbe essere rafforzata dalla partecipazione ad esercitazioni di laboratorio rivolte alla costruzione automatica dell’analizzatore di un microlinguaggio usando un generatore (parser generator). Ma per sviluppare a fondo la capacità progettuale e operativa occorrerebbe un secondo livello di approfondimento della materia. Gli aspetti algoritmici sono dunque solo accennati. Tuttavia non sono completamente assenti i concetti di indeterminismo e di trasformazione deterministica, di risorse di memoria e di tempo, ossia gli elementi fondamentali della scienza della complessità algoritmica. Perché formalizzare? Da una prospettiva pratica nasce la domanda: perché si deve formalizzare un linguaggio? I linguaggi artificiali devono essere formalizzati completamente, nella sintassi e nella semantica, per poter servire efficacemente come canale di comunicazione in modo da tutti condiviso. Una definizione non formale non è sufficiente per determinare tutti gli usi del linguaggio, se questo permette una varietà molto grande di frasi. Senza una definizione formale da tutti accettata come standard, una frase potrebbe avere diverse interpretazioni, come talvolta accade per i linguaggi della Rete. In altri campi, diversi da quello dei linguaggi tecnici dell’informatica, può bastare una formalizzazione parziale a scopo classificatorio e descrittivo. In tale direzione si collocano in particolare gli sforzi di formalizzazione presenti nelle discipline retoriche e semeiotiche. La logica come linguaggio formale Sappiamo tutti che la logica matematica è fondamentale per gli studi di informatica, ma il ragionamento logico è estremamente importante anche per le scienze della comunicazione. Limitiamoci a citare alcuni campi che ci sembrano motivanti per il ricorso che vi si fa alla logica: linguistica generale, semeiotica, teoria dell’argomentazione, teoria della comunicazione di massa, tipologia dei testi e tecniche espressive; oltre che ovviamente i campi tecnologico-informatici: ingegneria delle conoscenze, ingegneria del software e basi di dati. Questo libro però non è un testo di logica (ci vorrebbe ben altro spazio per presentarla in modo ragionevolmente com- c 88-08-07869-8 Prefazione xi pleto), ma soltanto una occasione per introdurre in poche pagine le basi di questa disciplina. La logica è indubbiamente il più antico tentativo di formalizzare una parte del linguaggio naturale, cioè l’insieme degli enunciati che godono della proprietà di essere veri o falsi. Non è quindi difficile presentare il calcolo proposizionale e la logica dei predicati del primo ordine come esempi di linguaggi definiti tramite una sintassi formale. La traduzione dall’italiano alla logica e viceversa permette di palesare certe ambiguità interpretative celate dal linguaggio naturale. Resta quasi completamente escluso da questo approccio lo studio, ben più impegnativo, del ragionamento logico, ossia delle inferenze e delle dimostrazioni. Considerata l’importanza della comunicazione visiva e multimediale, ci siamo interrogati sulla possibilità di esporre i modelli formali rivolti alla descrizione dei linguaggi non testuali, quali i linguaggi iconici, le immagini a due dimensioni, e quelle interazioni uomo-macchina riconducibili a metafore grafiche del comportamento (come i sistemi a finestre). Sfogliando i programmi dei corsi di comunicazione visiva e di analisi dei messaggi multimediali si incontrano infatti riferimenti ai modelli formali della teoria dei linguaggi, dalle grammatiche generative agli automi riconoscitori. Al momento tuttavia abbiamo preferito concentrare l’attenzione sui linguaggi puramente testuali, piuttosto che allargare il quadro includendovi altri modelli formali, come le grammatiche iconiche per la descrizione delle immagini bidimensionali. Chi si interessa alla comunicazione visiva troverà in questo libro i concetti di base ma non gli sviluppi specialistici. La matematica delle parole e non dei numeri Da un dibattito riguardo alla matematica nei nostri studi(2) , citiamo: Le basi teoriche (qui intendendosi le teorie formali) possono essere considerate con riguardo alla comunicazione in generale e specialmente alla comunicazione tramite la IT (Information Technology). Infatti sempre più spesso l’interazione tra individui o organizzazioni è mediata dall’informatica e dalla telematica. Naturalmente non bastano le conoscenze teoriche per un impiego effettivo della IT, ma occorre anche il possesso di specifiche abilità operative: ma questo non è l’argomento della presente discussione. Le buone teorie costituiscono lo strumento mentale per dominare la complessità dei sistemi di IT, nonché per ridurre la incessante fatica di appropriarsi degli aggiornamenti di una tecnologia in continua evoluzione. In una scienza cosı̀ dinamica gli stessi modelli teorici sono soggetti a mutamenti e ampliamenti: basti pensare al recentissimo sviluppo della teoria della complessità del calcolo con le sue fondamentali applicazioni alla sicurezza della comunicazione. In un corso universitario conviene però scegliere i concetti teorici più classici e consolidati dall’esperienza, procedendo a periodiche verifiche della loro attualità e adeguatezza. ( . . . ) Per consolidarsi e affermarsi, gli studi in scienze della comunicazione, dopo la promettente fase di avviamento, devono offrire agli allievi una formazione matematica più sistematica e ripetibile. Ciò premesso, quanto ora ripeteremo potrà apparire ad altri come l’effetto di una infatuazione per la nostra materia, ma vogliamo lo stesso esporci a questo rischio. ................... (2) Promosso da Luigi Dadda, professore di informatica, già rettore del Politecnico di Milano e cofondatore della laurea in scienze della comunicazione della Università della Svizzera italiana. xii Prefazione c 88-08-07869-8 Di quali argomenti matematici e formali può avvantaggiarsi lo studioso della comunicazione? Certo l’analisi matematica, argomento centrale per altri studi (come l’economia e l’ingegneria) ha un posto secondario e quasi trascurabile nel nostro caso, cosı̀ come il calcolo numerico. Invero riguardo all’apparato matematico analitico rivolto alla fisica basta la conoscenza elementare, che ogni diplomato del liceo dovrebbe possedere. Sulla importanza della logica-matematica abbiamo già preso posizione, anche se resta abbastanza aperta la scelta degli argomenti e dell’approccio espositivo, che certo non può essere quello dei corsi rivolti a filosofi, matematici o informatici. Accanto e forse prima della logica, materia ben più difficile, pensiamo che la teoria matematica dei linguaggi formali debba costituire la base teorica caratterizzante gli studi di scienze della comunicazione. I linguaggi formali sviluppano infatti l’attitudine al ragionamento astratto, la capacità di descrivere rigorosamente un messaggio, lo spirito di osservazione che coglie le analogie strutturali e le differenze tra i documenti, la capacità di decomporre una descrizione complessa in parti più semplici. I limiti del ragionamento logico e della formalizzazione, se chiaramente enunciati nell’insegnamento, renderanno i nostri laureati consapevoli della differenza tra pensiero e comunicazione, tra lingua naturale e linguaggio artificiale, evitando il pericolo della cieca idolatria tecnologica. Se la nostra esperienza didattica ha valore, riteniamo che anche gli allievi più umanisti, nonostante il loro frequente e ostentato pregiudizio antimatematico, recepiranno con interesse un corso, seppure matematico, avente come oggetto le parole e i testi, le strutture linguistiche e i significati. Nello sviluppare il presente progetto didattico abbiamo incontrato una difficoltà pratica: l’assenza di libri di testo adatti alle nostre finalità e ai nostri lettori, sia nella scelta degli argomenti, sia per il livello espositivo. Infatti non conosciamo libri sui linguaggi formali proponibili, se non con una faticosa opera di ritaglio e di arricchimento espositivo. Questa è la ragione che ci ha spinto a raccogliere in un volume il materiale presentato in classe. Una serie di problemi e di esercizi è disponibile in Rete all’indirizzo web dell’autore, che si trova all’interno del sito www.elet.polimi.it. In conclusione ci auguriamo che il dibattito sulle basi teoriche e formali delle scienze della comunicazione possa proseguire e allargarsi. Ringraziamenti Questo progetto non avrebbe potuto nascere senza la lungimirante visione di Luigi Dadda sulla posizione delle tecnologie della comunicazione nell’ambito degli studi umanistici sulla comunicazione. Ringraziamenti a: Matteo Pradella per i suggerimenti espositivi e la partecipazione alla sperimentazione didattica; Marco Colombetti per tanti confronti sui ruoli della logica e dei linguaggi formali; Alessandra Cherubini e Roberto Vanzetto. Riconosco di aver preso esempi e ispirazione dagli appunti del corso di linguistica di Eddo Rigotti, raccolti a cura di Sara Cigada. Infine la lettura da parte dello studente liceale Olivier è servita come un primo test sulla idoneità di queste materie ad essere insegnate al livello della scuola superiore. Milano e Lugano, Settembre 2001.