Previous Contents Next

Chapter 8   Conclusioni

Il problema dello sfruttamento delle nuove tecnologie basate su XML per la memorizzazione, l'indicizzazione e la condivisione di documenti matematici è destinato a diventare sempre più rilevante nel prossimo futuro, quando, incentivata dall'introduzione di standard per la visualizzazione e lo scambio di espressioni matematiche, quali MathML ed OpenMath, la comunità scientifica inizierà a mettere in linea sul World Wide Web librerie distribuite di documenti matematici.

Il solo progresso delle tecnologie Web non sarà, però, sufficiente a soddisfare le aspettative degli utenti: al fine di poter verificare la correttezza dei documenti e per permettere di effettuare ricerche complesse all'interno delle librerie, diventa necessario considerare anche la semantica dei documenti matematici; questa è l'argomento di studio della Logica Formale e della Teoria della Dimostrazione, i cui prodotti concreti sono i proof-assistant.

I proof-assistant, utilizzati fino ad ora da gruppi estremamente ristretti di persone, non hanno subito l'evoluzione, trainata dalle nuove tecnologie Web, a cui sono stati soggetti la maggior parte degli applicativi software negli ultimi anni e che ha portato al passaggio dal modello application-centric, in cui l'enfasi è posta sull'applicazione, a quello document-centric, focalizzato sul documento; al contrario, questi strumenti sono cresciuti negli anni in modo disorganizzato, comprendendo sempre più funzionalità ed evolvendo in sistemi sempre più monolitici e refrattari alle modifiche. Un altro aspetto negativo degli attuali proof-assistant è che l'attenzione viene posta esclusivamente sugli aspetti di provabilità dei teoremi, ovvero sulla ricerca delle dimostrazioni, trascurando il prodotto di tale ricerca, che sono le prove stesse.

Lo scopo di questa tesi è quello di studiare l'integrazione di questi due mondi al fine di rendere possibile la creazione di librerie distribuite di conoscenza matematica formalizzata; come effetto collaterale, si ottiene la ristrutturazione in chiave modulare dell'architettura dei proof-assistant. Per raggiungere questo ambizioso obiettivo, è necessario affrontare numerosi problemi, sia teorici che di natura tecnologica, alcuni dei quali privi di soluzioni soddisfacenti.

Concretamente, è stata proposta un'architettura generale comprendente strumenti per la creazione, il mantenimento e lo sfruttamento di una libreria di questo tipo e sono stati progettati e realizzati alcuni di questi strumenti per dimostrare la realizzabilità del progetto e individuarne le problematiche. Fra gli strumenti sviluppati vi sono stati: Durante la progettazione, l'enfasi è stata posta sulla facilità di pubblicazione e accesso ai documenti della libreria e su quelle tematiche che vengono normalmente trascurate negli attuali proof-assistant, quali la visualizzazione delle prove.

Nella forma, il progetto è decisamente originale, anche se è correlato a numerosi altri progetti nei campi del web-publishing, delle digital-library e del proof-reasoning. Il lavoro più affine è il progetto MathWeb, nato contemporaneamente e indipendentemente dal progetto HELM sviluppato all'Università di Bologna e il cui nucleo iniziale è rappresentato dal prodotto di questa tesi. Il prossimo paragrafo è dedicato ad un confronto esaustivo dei due progetti; nel paragrafo 8.2, infine, vengono elencati i possibili sviluppi futuri.

8.1   Confronto fra i progetti HELM e MathWeb

Il progetto MathWeb, coordinato dal Prof. Michael Kohlhase, è nato recentemente come evoluzione del progetto Omega, di cui ha allargato gli obiettivi e le finalità. Omega è un progetto a lungo termine sviluppato presso Universität des Saarlandes (città di Saarbrücken, Germania) dal gruppo del Prof. Jörg Siekmann, attualmente composto da quattordici fra ricercatori e professori, coadiuvati da una decina di studenti. Lo scopo del progetto è lo sviluppo di un sistema in grado di incentivare l'utilizzo dei theorem-prover nello sviluppo e nell'insegnamento della matematica. L'architettura, pesantemente distribuita, prevede numerosi sottosistemi, fra i quali un proof planner (pianificatore della prova), tool per la formulazione di problemi, theorem-prover general-purpose o specializzati in vari domini matematici, interfacce per l'utilizzo di sistemi per la computer-algebra, generatori pseudo-automatici di dimostrazioni per analogia e sofisticati meccanismi di intelligenza artificiale per la presentazione delle prove in linguaggio naturale. Le nuove tematiche affrontate da MathWeb rispetto al progetto Omega sono quelle della memorizzazione delle teorie in linguaggio XML, della pubblicazione on-line di librerie distribuite di documenti matematici e della loro resa in formati standard di presentazione1.

Sebbene gli obiettivi di MathWeb siano molto più ambiziosi di quelli di Helm, diversi aspetti possono essere proficuamente confrontati:
  1. L'individuazione del contenuto informativo delle prove
  2. La presentazione delle prove
  3. Il formato di codifica dei documenti matematici
  4. Il modello di distribuzione
  5. I meccanismi di indicizzazione e ricerca

8.1.1   Il contenuto informativo delle prove

Mentre noi abbiamo individuato nei l-termini il vero contenuto informativo delle dimostrazioni, in Omega non solo la prova, ma anche l'intero processo con la quale è stata ottenuta è rilevante. Pertanto, quello che in Omega viene salvato su disco è l'intero proof-plan, ovvero la storia della dimostrazione, comprendente la sequenza di tattiche applicate e tutte le informazioni rese disponibili dai tool invocati. Poiché Omega, per la risoluzione di alcuni goal o la riduzione di espressioni matematiche, si interfaccia con sistemi esterni, per esempio Maple, non sarebbe possibile per il sistema la costruzione sistematica di un l-termine che abiti la tesi. Pertanto, la scelta di considerare l'intero proof-plan come contenuto informativo è pienamente giustificabile. D'altro canto, i l-termini di CIC, unico sistema logico attualmente supportato da HELM, contengono indubbiamente tutta l'informazione richiesta e questo giustifica la loro identificazione con il contenuto informativo delle prove. La maggiore concisione e pulizia di HELM viene, però, penalizzata durante la fase di presentazione delle prove.

8.1.2   La presentazione delle prove

In Omega, avendo a disposizione l'intero proof-plan, la generazione automatica della descrizione in linguaggio naturale di una prova è sicuramente facilitata rispetto a sistemi in cui il formato delle prove è meno informativo. Indubbiamente, grazie all'utilizzo di tecniche evolute di intelligenza artificiale, i risultati ottenuti in questo campo sono notevoli, specie se confrontati con sistemi analoghi, come il modulo Natural di Coq [CKT95]. In generale, comunque, la tecnologia attuale non sembra, e forse non sarà mai, in grado di generare descrizioni che sembrino veramente naturali per prove di notevole complessità. In HELM il problema viene evitato ricorrendo alle annotazioni informali, grazie alle quali l'utente ha la possibilità di descrivere liberamente le prove formali. Questo approccio è suscettibile di due critiche: la prima è che, in questo modo, non è garantita alcuna corrispondenza fra la prova formale e la sua annotazione informale; la seconda riguarda l'onere per l'utente di annotare ogni prova, compito estremamente complesso se effettuato successivamente alla ricerca della dimostrazione formale. Per quanto riguarda la prima critica, la possibilità di richiamare il proof-checker sulla prova formale ne garantisce la correttezza, mentre la possibilità di deannotare progressivamente il l-termine permette di individuare le discrepanze fra le due descrizioni. In presenza di dimostrazioni complesse, inoltre, la dimostrazione ottenuta automaticamente potrebbe essere cosí  difficile da comprendere da diventare inutile, mentre la leggibilità di quella annotata è sotto il diretto controllo dell'utente. A parte questi casi estremi, comunque, la critica rimane fondata, anche se il feeling dell'autore è che i matematici possano sempre preferire una dimostrazione informale, eventualmente inesatta, ma scritta con l'acume e la sensibilità dell'umano rispetto a quella, sicuramente corretta ma artificiosa, generata automaticamente. Inoltre, un importante punto a favore della scelta di HELM è la possibilità, da parte dei singoli utenti, di riannotare a piacimento le dimostrazioni. Per esempio, ciò che può essere ovvio per l'autore può non esserlo per chi legge la dimostrazione, che può scegliere di deannotare la parte di dimostrazione che non capisce e riannotarla in maniera differente. Questa possibilità, indubbiamente auspicabile, è ovviamente interdetta nei sistemi che generano automaticamente la dimostrazione in linguaggio naturale.

La seconda critica, quella sulla difficoltà di annotare le prove, è invece largamente infondata per due motivi. Il primo è che l'uso delle annotazioni non impedisce la loro generazione tramite strumenti automatici, che possono eventualmente sfruttare anche informazione non contenuta nel l-termine, come la sequenza delle tattiche. In questo senso, possiamo dire che la generazione automatica della presentazione di una prova in linguaggio naturale è solo un caso particolare della scrittura di una annotazione. Inoltre, le annotazioni potrebbero essere generate, automaticamente o manualmente, durante la scrittura delle prove, permettendo una descrizione massimamente fedele al ragionamento effettuato. Il secondo motivo riguarda la possibilità di semplificare la procedura ricorrendo a tool dotati di elaborate interfacce grafiche e in grado di prevenire l'utente suggerendogli la giusta sequenza di annotazione.

8.1.3   Il formato dei documenti matematici

Mentre HELM si affida ad un generico formato XML per i documenti formali ed a MathML per la loro rappresentazione semi-formale, per Omega2 si è scelto un formato proprietario delle prove, che vengono scritte in Allegro Lisp; MathWeb, invece, adotta un'estensione non standard di OpenMath per la rappresentazione dei documenti matematici, chiamata OmDoc. La scelta del formato proprietario per le prove è coerente con la visione distribuita, ma essenzialmente application-centric, di Omega: il gestore del proof-plan, il vero cuore di Omega, può connettersi a diversi tool esterni per la ricerca delle prove; per poter lavorare sulle prove, però, è necessario ricorrere a questo strumento. Pertanto, Omega è suscettibile alle critiche al software application-centric (vedi paragrafo 1.2.2), mentre HELM, che aderisce al paradigma content-centric, ne è immune.

Per quanto riguarda il formato di rappresentazione dei documenti matematici, necessariamente contenenti descrizioni delle prove, la scelta di MathWeb è caduta su OpenMath. Poiché in Omega non vi è una rappresentazione XML delle prove, era necessario per loro trovare un formato che potesse codificare sia la presentazione, che la semantica semi-formale delle espressioni matematiche: l'unico standard che soddisfa queste richieste è OpenMath. Per quanto riguarda HELM, invece, la presenza dei file XML che mantengono il l-termine formale permette di utilizzare MathML content come rappresentazione semi-formale, con in più la possibilità di seguire gli XLink per risalire alla semantica formale. Entrambe le scelte hanno dovuto affrontare problemi analoghi, ovvero la trasformazione dei documenti semi-formali in un opportuno formato di presentazione e il problema della rappresentazione del livello degli oggetti. Per le trasformazioni, entrambi i gruppi di sviluppo hanno optato per la scelta standard di stylesheet XSLT, utilizzando HTML o MathML presentation come formati di output3.

Più interessante è il confronto fra le soluzioni adottate per affrontare il problema che sia MathML che OpenMath sono nati per codificare espressioni e non interi documenti matematici contenenti, per esempio, definizioni e teoremi. La scelta di MathWeb è stata la definizione di un'opportuna estensione di OpenMath, chiamata OMDoc: i documenti OMDoc comprendono non solo oggetti matematici, ma anche i corrispondenti metadati e frammenti di stylesheet XSLT utilizzati per fini presentazionali. I principali elementi XML di OMDoc per descrivere oggetti matematici sono annotazioni informali, definizioni, teoremi, esempi ed esercizi. Attributi vengono utilizzati, per esempio, per classificare ulteriormente teoremi in lemmi, corollari, etc. Per quanto riguarda i metadati, fra i quali sono presenti quelli Dublin Core, è impossibile non criticare la scelta di codificarli non utilizzando lo standard RDF. Complessivamente, è criticabile la scelta di affiancare nello stesso documento dati, metadati e presentazione: poiché, tipicamente, le applicazioni sono interessate esclusivamente ad uno di questi aspetti alla volta, questo le costringe ad un inutile parsing di informazione inutilizzata. Inoltre, in questo modo si rinuncia all'importante separazione del contenuto dalla presentazione, che rappresenta uno degli obiettivi principali dell'introduzione degli standard XML e XSL. Sotto questo aspetto, l'architettura di HELM, che prevede la separazione in file distinti di metadati, notazioni e oggetti, con l'aggiunta di teorie per assemblare e strutturare questi ultimi, risulta essere molto più pulita. Inoltre, in questo modo, è possibile definire teorie distinte basate sugli stessi oggetti senza doverli replicare. Il prezzo da pagare è la perdita dell'unità del documento, che costringe sovente al downloading di numerosi file e all'utilizzo massiccio di XLink. Mentre il secondo punto non rappresenta un vero problema, il primo può essere risolto implementando getter più elaborati, in grado di richiedere il download contemporaneo di diversi file, che possono essere compressi durante la trasmissione (vedi 4.1). Questa soluzione, però, richiede un'attiva collaborazione da parte dei server di distribuzione, contravvenendo al terzo requisito di HELM (vedi paragrafo 1.3.1).

8.1.4   Il modello di distribuzione

Gli obiettivi dei modelli di distribuzione di HELM (vedi capitolo 4) e MathWeb sono profondamente diversi. Brevemente, MathWeb si propone di affrontare il problema dei diritti d'autore sui documenti scientifici presenti in rete. Per questo motivo, viene richiesta l'esistenza in rete di una e una sola copia per ogni documento. È possibile la migrazione della copia: per esempio, quando l'autore pubblica l'articolo, la copia deve migrare dal suo server a quello dell'editore. Per evitare la rottura di collegamenti fra documenti a causa della migrazione delle copie, sono previsti appositi puntatori dalle precedenti locazioni all'attuale. Poiché l'esistenza di una sola copia crea inevitabili colli di bottiglia, vengono proposti meccanismi di caching per aumentare le prestazioni. Infine, è prevista la possibilità di rendere obsoleto un documento (per esempio, a causa di definizioni errate).

Le critiche al modello di MathWeb sono innumerevoli. In primo luogo, l'esistenza di un'unica copia che viene fatta migrare è soggetta a tipiche problematiche di fault-tolerance: la migrazione è rischiosa e il server che mantiene l'unica copia è un ``single point of failure''. Il sistema di puntatori richiede meccanismi di path compression per evitare la creazione di lunghe catene per giungere alla copia cercata e, poiché i documenti possono essere modificati (rendendoli obsoleti), opportune politiche debbono essere implementate per sincronizzare i cache. Durante partizionamenti della rete, la sincronizzazione può essere perduta o, peggio, l'informazione sulla locazione dell'unica copia potrebbe diventare obsoleta, con conseguente impatto, per esempio, sui diritti economici di accesso al documento. Infine, chiunque voglia pubblicare o accedere ad un articolo deve avere a disposizione un host su cui sia installato un server MathWeb. Si confronti quest'ultima osservazione con gli antitetici requisiti di HELM (paragrafo 1.3.1).

Ferme restando le differenze fra gli obiettivi dei due modelli di distribuzione, quello di MathWeb mette in luce due mancanze di HELM. La prima è l'impossibilità di rendere obsoleto un documento. La soluzione più semplice, ma anche scarsamente soddisfacente, sarebbe allestire uno o più server che mantengano la lista dei documenti obsoleti. Il secondo è la mancanza di garanzie sull'esistenza di un documento referenziato da un secondo; in particolare, se costruisco una teoria A basandomi su definizioni e teoremi date in una teoria B, quando l'ultima copia di B viene cancellata tutte le copie di A perdono di significato. Supporre che esista per sempre almeno una copia di ogni documento è quantomeno utopistico. Pertanto, è ragionevole supporre che, se sono interessato ad un documento A di cui esistono poche copie, me ne memorizzi una su disco per evitarne la perdita, mettendola, poi, a diposizione di tutti. Quindi, il requisito di HELM che prevede l'esistenza di più copie di uno stesso documento, tutte identificate dallo stesso nome logico, risolve concretamente il problema. Per inciso, in questo modo avviene una naturale selezione dei documenti sulla base della loro rilevanza: quelli scarsamente referenziati verranno prima o poi cancellati, mentre quelli interessanti aumenteranno la loro diffusione.

8.1.5   I meccanismi di indicizzazione e ricerca

I due progetti differiscono notevolmente anche per quanto riguarda i meccanismi di indicizzazione e ricerca. HELM adotta il tradizionale approccio dei motori di ricerca, che visitano i siti di distribuzione indicizzandone efficacemente i documenti grazie all'utilizzo di metadati descritti nello standard RDF. Comuni browser possono quindi essere utilizzati per contattare i motori di ricerca. MathWeb, al contrario, non prevede motori di ricerca, ma affida l'indicizzazione dei documenti ai server già introdotti dal modello di distribuzione. In questo modo, le query non vengono effettuate ad un singolo server, ma, attraverso un programma apposito, devono essere contattati tutti quelli esistenti. La risoluzione della query diventa quindi un problema distribuito, reso mediamente complesso dalle richieste prestazionali in presenza di un gran numero di server. Questa architettura, abbastanza complessa, non è sicuramente giustificata da problemi di fault tolerance, risolvibili attraverso l'utilizzo di un numero sufficiente di (istanze di) motori di ricerca. Anzi, la caduta di un server impedisce perfino la ricerca sui documenti ivi conservati. In compenso, l'elevata complessità computazionale della risoluzione di query per niente banali, come quelle presentate a pagina 1, necessita di sistemi distribuiti con bilanciamento del carico e ricerche in parallelo, simili a quelli di MathWeb. Nel modello di HELM, questo problema non viene trascurato, ma semplicemente scaricato sull'architettura del motore di ricerca, per la quale si possono adottare soluzioni analoghe a quelle di sistemi come Yahoo o Altavista, che sono in grado di soddisfare migliaia di richieste contemporaneamente.

8.2   Lavori Futuri

Grazie agli ambiziosi obiettivi del progetto, sono possibili numerosi sviluppi del lavoro svolto finora; alcuni sono mirati al miglioramento e al consolidamento di quanto già realizzato e richiedono collaborazione da parte di altri gruppi di ricerca, come il team responsabile dello sviluppo di Coq; altri sono estensioni del sistema al fine di considerare le problematiche che non sono ancora state affrontate, quali l'indicizzazione tramite metadati dei documenti della libreria e i meccanismi di ricerca. Infine, affinché l'intero progetto possa considerarsi avviato con successo, è necessario che si formi una comunità di utenti e che nuovi gruppi di sviluppo integrino nell'architettura generale gli strumenti per la gestione di formalismi logici diversi da CIC. Segue una rassegna dei principali sviluppi possibili:
Architettura generale
Per verificare la validità dell'architettura generale di HELM, è necessario considerare almeno un altro sistema logico, diverso da CIC, e sviluppare per esso i moduli corrispondenti a quelli già implementati per CIC.
Modulo di esportazione da Coq
Al fine di esportare in modo corretto tutta l'informazione necessaria, eliminando la necessità di ricorrere alla successiva fase di riparazione dei file, è necessaria una stretta collaborazione con il team di sviluppo di Coq, già prevista per l'autunno 2000. In tale occasione, si provvederà anche all'adozione di alcune nuove estensioni a CIC, previste per la nuova versione di Coq, fra le quali l'introduzione di un costrutto di naming, che risulterà utile anche per la resa delle prove, e la sostituzione del meccanismo di cottura con un altro più semplice, ma ad esso equivalente.
Getter
Nei due getter già sviluppati potranno essere integrate le rimanenti funzionalità opzionali descritte nel paragrafo 4.1. Inoltre, potrà essere necessario rivedere il meccanismo di sintesi dei documenti a mano a mano che aumenta il numero degli eventuali file sorgenti (oggetto, dei tipi sintetizzati, contenenti annotazioni, etc.).
CIC Proof-checker
Per completare l'implementazione del proof-checker, è necessario considerare la gestione del livello degli universi. Inoltre, una volta aggiornato il meccanismo di esportazione da Coq alla versione 7.0, sarà necessario modificare l'intero proof-checker per utilizzare le nuove estensioni a CIC.
Stylesheet notazionali
Oltre all'aggiornamento degli stylesheet di default dovuto alle nuove estensioni di CIC, rimane da valutare la realizzabilità di un meccanismo per la generazione semi-automatica degli stylesheet forniti dagli utenti.
Meccanismi di annotazione
È necessario superare i problemi tecnologici che rendono quasi inutilizzabile l'attuale prototipo per l'annotazione, al fine di poter intraprendere un periodo di sperimentazione per individuare le problematiche legate all'annotazione e la sua effettiva importanza per la rappresentazione delle prove in linguaggio naturale.
Sviluppo di proof-assistant
Un interessante sviluppo, inizialmente non previsto, consiste nell'implementazione di un proof-assistant modulare basato sul formato XML di rappresentazione dei dati. L'enfasi verrebbe posta sulla naturalezza dei l-termini generati dalle tattiche, al fine di produrre prove facilmente annotabili e simili alle corrispondenti prove cartacee non formalizzate. Inoltre, potrebbe essere investigata la possibilità di annotare il termine durante la ricerca della prova.
Meccanismi di indicizzazione e ricerca
Debbono ancora essere completamente sviluppati, anche se sono già chiare le linee guida da seguire.
Comunicazione dell'informazione fra differenti sistemi logici
Una volta che il progetto sia ben avviato e siano stati sviluppati gli strumenti affinché più sistemi logici possano contribuire alla libreria, si potrà affrontare il problema più profondo sollevato dalla creazione di librerie di documenti matematici codificati in formalismi eterogenei, ovvero quello dell'uso nelle dimostrazioni di definizioni e teoremi dati in un diverso formalismo.

1
Al momento della pubblicazione di questa tesi, la ristrutturazione del progetto Omega in due progetti distinti, Omega e MathWeb, non è ancora terminata e non è del tutto chiaro quale progetto affronterà alcune problematiche. Nel resto del capitolo, la cui prima stesura risale a prima dell'inizio della scissione, i due progetti vengono talvolta identificati.
2
Le caratteristiche di Omega descritte in questo paragrafo sono prese da una serie di documenti trovati sul sito del progetto e ora non più on-line a causa della sua ristrutturazione. Pertanto, le informazioni date potrebbero essere obsolete.
3
MathWeb fornisce anche uno stylesheet verso LATEX. Tale trasformazione può essere ottenuta facilmente applicando in cascata lo stylesheet per ottenere MathML presentation e uno di quelli, disponibili in rete, per passare da questo formato a LATEX; lo stylesheet verso MathML, previsto in MathWeb, non è però ancora stato scritto.

Previous Contents Next