"Un modello ad oggetti per l'integrazione di tecniche di apprendimento automatico in un servizio di biblioteca elettronica" F. Esposito D. Malerba G. Semeraro M. Conte Dipartimento di Informatica Universita' di Bari Via E. Orabona, 4 70126 Bari {esposito, malerba, semeraro, conte}@lacam.uniba.it Temi: Acquisizione ed integrazione della conoscenza, Esperienze applicative Secondo una definizione comunemente accettata, un servizio di biblioteca digitale e' un ambiente a tecnologia distribuita che riduce drasticamente le barriere per la creazione, diffusione, manipolazione, memorizzazione, integrazione e riutilizzo dell'informazione da parte di singoli e gruppi (Lesk, 93). Come sistema informativo, una biblioteca virtuale e' un insieme di moduli classificabili come "resource manager" e "application enabler", ove un resource manager e' un programma che costituisce la sola via d'accesso ai dati contenuti in una risorsa protetta e che e' accessibile a piu' sistemi client concorrenti, mentre un application enabler e' un programma che permette ad una classe di utenti di sviluppare applicazioni in modo facile e veloce o di personalizzare applicazioni gia' esistenti. L'architettura di un servizio prototipale di biblioteca elettronica - IDL (Intelligent Digital Library) - in via di sviluppo presso il laboratorio LACAM del Dip. di Informatica integra: i) un "repository", la risorsa protetta contenente la collezione di dati altamente strutturati che costituiscono la biblioteca elettronica ii) uno 'strato' di resource manager, che comprende: ii.a) un DBMS commerciale orientato agli oggetti (ObjectStore della Object Design, Inc.) ii.b) il sottosistema di memorizzazione dei documenti (DLMS - Digital Library Management System), ossia l'insieme dei moduli che permettono l'accesso al repository per inserire, ritrovare, cancellare singoli documenti e/o intere classi di documenti significative per gli utenti finali iii) piu' 'strati' di application enabler, che rendono effettivamente fruibili agli utenti finali una varieta' di funzionalita', quali un query interpreter, un generatore di pagine HTML, un OCR, nonche' tutte quelle funzionalita' legate all'acquisizione automatica dei dati (information capture) e della conoscenza nel repository, quali i sistemi di apprendimento che consentono di generare automaticamente le regole per l'analisi della struttura fisica o di layout di un documento (document analysis), per la classificazione dell'intero documento (document classification), e per l'analisi della sua struttura logica (document understanding). In IDL, il "repository" e' un insieme di oggetti che costituisce nel complesso un'istanza di un modello (ad oggetti) dei documenti. Piu' precisamente, tali oggetti sono un'istanza dello schema concettuale ObjectStore in base al quale i documenti sono memorizzati e rappresentati internamente. Nel document object model, sono rappresentate tanto la struttura di layout di un documento quanto la sua struttura logica. La struttura di layout associa il contenuto di un documento ad una gerarchia di oggetti di layout (sintattici o fisici), come linee di testo, linee orizzontali/verticali, elementi grafici, immagini, colonne e pagine. Le foglie di un albero di layout sono dette "basic blocks" e tipicamente corrispondono ad aree rettangolari che delimitano porzioni di contenuto (ad es., parole) sul supporto di presentazione. I nodi interni dell'albero di layout sono detti "oggetti compositi", dal momento che sono ottenuti raggruppando blocchi basici o oggetti compositi di livello inferiore. La radice dell'albero di layout rappresenta l'intero documento. In documenti a piu' pagine, quali articoli o libri, un oggetto composito puo' rappresentare un insieme di pagine, ove una pagina e' un'area rettangolare che corrisponde ad una unita' sul supporto di presentazione. Tutti gli altri nodi interni sono detti "frame" e corrispondono ad aree rettangolari all'interno di una pagina. Per i nostri scopi, nel document object model abbiamo definito una gerarchia di cinque classi, corrispondenti a livelli distinti di oggetti nell'albero di layout (in aggiunta a "Pagina"), i cui nomi sono "BasicBlock", "LineBlock", "SetOfLineBlock", "FirstFrameBlock" e "SecondFrameBlock". Ogni classe corrisponde ad una rappresentazione interna della struttura di layout di un documento a diversi livelli di granularita' (da quello di grana piu' fine, corrispondente a "BasicBlock", a quello di grana piu' grossa, "SecondFrameBlock") ed ogni oggetto ad un dato livello e' costituito da oggetti di livello inferiore. Tutti gli oggetti ad uno stesso livello possiedono la stessa struttura di base, dato che sono istanze della classe "Block", di cui le cinque classi dette sopra sono sottoclassi. La struttura logica e' il risultato di un processo di suddivisione ripetuta del contenuto di un documento in parti sempre piu' piccole, sulla base del 'significato percepibile da un essere umano' del contenuto stesso. In generale, tale struttura associa il contenuto del documento ad una gerarchia di oggetti logici (semantici), quali titolo,autori, abstract, paragrafi, note a pie' di pagina, ecc. Anche nella struttura logica e' possibile distinguere oggetti logici di base, che compaiono al fondo dell'albero logico, dagli oggetti logici compositi, che costituiscono i nodi interni dell'albero logico. Ovviamente, i tipi di oggetti logici presenti in un documento dipendono fortemente dal tipo del documento stesso (la classe in cui l'utente finale fa ricadere il documento) e dall'applicazione particolare in cui si intende utilizzare il servizio di biblioteca digitale. Ad esempio, per una lettera commerciale, ha senso parlare dei tipi logici 'mittente', 'destinatario', 'data', 'logo', 'numero di riferimento', 'corpo' e 'firma', mentre per un articolo scientifico tali tipi logici risultano privi di significato ed acquistano rilevanza tipi logici quali 'titolo', 'autori', 'affiliazione', 'parole chiave', 'abstract', 'sottotitolo', 'paragrafo', 'capoverso', 'intestazione', 'nota a pie' di pagina' e 'didascalia'. Questa dipendenza non e' vera per gli oggetti di layout, vale dire che la struttura di layout non varia ne' con il tipo di documento trattato ne' con il tipo di applicazione. L'informazione sul tipo di documento e' memorizzata in una porzione apposita del document object model. Piu' in dettaglio, ciascuna classe-utente di documenti nella biblioteca digitale e' definita come un'istanza della classe "DocClass". Di fatto, definire le classi-utente di documenti come istanze di una classe, "DocClass", di meta-livello rispetto alle classi rilevanti per l'applicazione, ci consente di ottenere una maggiore flessibilita' quando si renda necessario aggiornare una particolare biblioteca digitale per aggiungere/cancellare classi di documenti attraverso i metodi "InsertClass", "DeleteClass" della classe "DigitalLibrary" nel modello ad oggetti. Inoltre, come affermato in precedenza, ad ogni classe-utente di documenti risulta associato un insieme di tipi di oggetti logici significativi, detti 'etichette logiche', per cui l'aggiunta di una nuova classe-utente di documenti richiede l'introduzione di un insieme di nuove etichette logiche. Questo viene realizzato attraverso la creazione di una nuova istanza della classe "Attribute" per ogni nuova etichetta logica. Anche "Attribute", alla stregua di "DocClass", e' una classe di meta-livello, creata per gestire gli oggetti significativi a livello utente, che cambiano dinamicamente, ad un livello di atrazione adeguato.