Strutture Dati
Per forma si intende ogni singola parola, distinta dalle altre esclusivamente in base alla grafia, che può occorrere un qualsiasi numero di volte in un corpus o in un testo.
Una forma può essere sia monorematica che polirematica: in questo secondo caso la natura della forma va esplicitata nel testo mediante opportuni codici.
Il concetto di forma non deve essere confuso con quello di occorrenza, che rappresenta un evento, ovvero una singola comparsa di una forma in un testo.
L'elenco delle forme diverse presenti in un corpus è racchiuso in un archivio detto formario.
In funzione delle impostazioni decise da chi costruisce il corpus testuale, le forme possono essere costituite solo da lettere o anche da cifre arabe.
Il lemma è l'elemento cui viene riportato un insieme di forme che si distinguono fra loro soltanto per l'entrata lessicale (varianti grafiche, con o senza valore di varianti fonetiche) e/o perché sono forme della flessione dello stesso verbo o sostantivo o aggettivo. Corrisponde di regola, ma non necessariamente, ad un'entrata di vocabolario.
Anche nel lemmario non si fa distinzione fra lettere maiuscole e minuscole, mentre è possibile tenere distinti lemmi omografi precisandone le categorie grammaticali; ad ogni lemma è poi associabile una stringa disambiguatrice (detta appunto disambiguatore) da usare in presenza di lemmi omografi aventi anche uguale categoria grammaticale; infine, ad ogni lemma è associabile un breve commento, il quale è un attributo il cui contenuto è regolarmente visualizzato, ma che non contribuisce a definire il lemma o a distinguerlo dagli altri. Affinché in GATTO due lemmi siano riconosciuti come distinti essi devono differire per l'entrata lessicale e/o per la categoria grammaticale: nel caso di due lemmi diversi ma caratterizzati da uguaglianza di entrambi questi elementi è possibile introdurre nel campo disambiguatore di uno di essi o di entrambi stringhe arbitrarie finalizzate a distinguerli. Mentre nel definire un nuovo lemma entrata lessicale e categoria grammaticale vanno obbligatoriamente assegnati, disambiguatore e commento sono attributi facoltativi.
Tutti questi dati possono essere modificati dall'utente, mentre l'inserimento e la cancellazione di lemmi dal lemmario sono operazioni controllate automaticamente da GATTO.
Quando negli ambienti di Lemmatizzazione si associa un lemma ad una specifica occorrenza di una forma, viene creata un'associazione lemma-forma valida in tutto il corpus, che permetterà di risalire alla forma partendo da una ricerca per lemmi e viceversa. Poiché allo stesso lemma verranno probabilmente collegate occorrenze di più forme, effettuando una ricerca (per lemmi) del lemma considerato si potranno localizzare simultaneamente le occorrenze di tutte (o alcune delle) forme collegate con esso; sarà inoltre possibile, volendolo, includere o escludere da tale ricerca le occorrenze specificamente lemmatizzate col lemma in questione, quelle lemmatizzate con altri lemmi, quelle non lemmatizzate.
Così come la prima associazione di un lemma ad un'occorrenza inserisce automaticamente il nuovo lemma nel lemmario del corpus, la rimozione dell'ultima occorrenza lemmatizzata con esso (per modifica della lemmatizzazione o rimozione del testo dal corpus) produce normalmente l'automatica cancellazione del lemma dal lemmario.
Un altro meccanismo di inserimento di lemmi nel lemmario è legato all'acquisizione al corpus di testi già lemmatizzati in precedenza (magari estratti da un altro corpus): in questo caso ogni testo porta con sé i propri lemmi e questi vengono automaticamente inglobati nel lemmario, qualora non già presenti.
L'insieme dei lemmi associati ad una forma nell'ambito di un corpus ne costituisce il dizionario di macchina. Questo dizionario, utilizzato in lemmatizzazione, è gestito in maniera quasi del tutto automatica: ogni voce del dizionario, ovvero ogni associazione forma-lemma, nasce al momento del suo primo abbinamento ad un'occorrenza in un testo qualunque del corpus e viene normalmente rimossa al momento in cui l'ultimo utilizzo di tale associazione risultasse rimosso dal corpus.
Il meccanismo di gestione dinamica del lemmario e del dizionario di macchina adottato in GATTO, ottimale nella maggior parte dei casi, ne rende però difficoltosa l'applicazione ad un corpus diverso da quello sulla base del quale tali archivi sono stati costruiti.
É stata perciò introdotta una nuova categoria di lemmi e collegamenti forma-lemma, detti muti perchè presenti negli archivi senza però essere riferiti ad alcuna occorrenza nel corpus: data una coppia forma-lemma muta, non esiste nel corpus nessuna occorrenza della forma lemmatizzata col lemma; così come non esiste nessuna occorrenza nel corpus lemmatizzata con un lemma muto.
Gli elementi muti sono strumenti che un corpus può ereditare da un altro già lemmatizzato e sfruttare ai fini della propria lemmatizzazione.
Si immagini che in un corpus sia stato definito un certo numero di lemmi relativi ad animali (cane, gatto, lepre, bue, aquila, falco, fringuello, piccione,..). Una ricerca relativa ad occorrenze di forme associate ad un lemma indicante un mammifero potrebbe essere impostata, ad esempio, come ricerca per lemmi di cane, gatto, ecc., con qualche rischio di incompletezza nel caso non si citino tutti i lemmi presenti. Esiste la possibilità di associare una volta per tutte a ciascuno dei primi 4 lemmi dell'esempio un iperlemma, diciamo l'iperlemma mammifero, con un meccanismo analogo a quello con cui si associano i lemmi alle forme.
A questo punto, una ricerca per iperlemmi, a partire dall'iperlemma mammifero, porterebbe agli stessi risultati di una ricerca per lemmi in cui sia stato specificato di cercare tutte le occorrenze relative a cane, gatto, lepre e bue.
Sempre con riferimento all'esempio iniziale, in modo analogo si potrebbe associare l'iperlemma uccello a aquila, falco, fringuello, piccione, con conseguenze analoghe.
Estendendo il concetto, possiamo pensare di introdurre l'iperlemma animale, associandolo non tanto a dei lemmi quanto agli iperlemmi mammifero e uccello. Una ricerca per iperlemmi dell'iperlemma animale porterebbe a localizzare tutte le occorrenze delle forme lemmatizzate con i lemmi a loro volta associati, risalendo questo schema di connessioni (tramite mammifero e uccello), all'iperlemma animale.
Nella terminologia di GATTO mammifero e uccello sono detti iperlemmi di livello 1, in quanto connessi direttamente con dei lemmi; animale è invece un iperlemma di livello 2, in quanto punta a iperlemmi di livello 1. È possibile definire liberamente iperlemmi di livelli superiori, purché esista una catena di connessioni che partendo da essi scenda fino ad individuare uno o più lemmi presenti nel corpus.
Un secondo uso degli iperlemmi consiste nell'associarli direttamente a specifiche occorrenze di forme, durante la lemmatizzazione di queste ultime. Gli iperlemmi utilizzati o creati in questa circostanza sono sempre di livello 1. Corrispondentemente è possibile impostare ricerche per iperlemmi specificando che le occorrenze che si intende localizzare sono solo quelle espressamente associate agli iperlemmi indicati. Come conseguenza, questo secondo tipo di ricerca per iperlemmi permette di limitare i contesti cercati alle occorrenze associate a specifiche coppie lemma-iperlemma.
In conclusione, un iperlemma può avere contemporaneamente connessioni con iperlemmi di livello superiore e con iperlemmi di livello inferiore (o lemmi se è un iperlemma di livello 1). Nell'esempio, mammifero (iperlemma di livello 1) è connesso verso l'alto (cioè al livello 2) con animale e verso il basso con cane, gatto, lepre, bue.
GATTO identifica univocamente un iperlemma mediante 3 attributi: grafia (obbligatoria), disambiguatore (facoltativo), livello (obbligatorio).
Un testo per GATTO corrisponde al contenuto di un file testo. All'interno di GATTO un testo è individuato univocamente da una sigla formata da uno a tre caratteri alfanumerici.
Normalmente un testo coincide con un documento letterario completo. Niente impedisce però di ripartire in più file, e quindi in più testi per GATTO, un'unica opera: si potrebbe ad esempio avere interesse a ripartire in tre file la Commedia, assegnando ad ognuna delle tre cantiche una diversa sigla. Al contrario, si potrebbe ad esempio voler inserire in uno stesso file, trattandola quindi come un unico documento, una raccolta di novelle di uno stesso autore.
Va tenuto presente che ad ogni testo è associato un record di bibliografia, quindi un unico autore, un unico titolo e via dicendo.
Materialmente un testo è contenuto in un file testo scritto in ANSI, da prepararsi usando un editore o un programma di videoscrittura adatto. Eventuali note andranno inserite in un altro file apposito. Una eventuale seconda edizione o traduzione in altra lingua può essere inserita in un terzo file.
Un corpus è l'ambito testuale entro il quale si svolgono le operazioni effettuate con GATTO, siano esse lemmatizzazioni, ricerche, modifiche di dati, ecc. Ogni corpus è individuato da un nome. Si possono avere corpus con nomi diversi nello stesso disco o anche corpus aventi lo stesso nome, posti in tal caso su dischi diversi.
Gli elementi di un corpus sono i testi via via introdotti al suo interno. È possibile raggruppare i testi di un corpus in sottocorpus definiti dinamicamente sulla base dei loro dati bibliografici. Si possono definire contemporaneamente fino a 6 sottocorpus. Uno stesso testo può appartenere a più sottocorpus.
La struttura di un sottocorpus, intesa come lista dei testi costituenti, può essere salvata su file e richiamata in una successiva sessione per ridefinire lo stesso sottocorpus.
Corpus e sottocorpus possono essere formati anche da un solo testo.
Le ricerche possono essere effettuate all'interno del corpus, di un sottocorpus o di una combinazione di più sottocorpus; eventuali duplicati nei risultati verranno rimossi automaticamente.
Un corpus può contenere oltre 16.000 testi e 2 miliardi di occorrenze.
Ad ogni testo incluso in un corpus è associato un pacchetto di informazioni bibliografiche (titolo, autore, edizione, sigla, ecc.) che va inserito in un record di una base di dati apposita, indicata col termine di archivio bibliografico.
Di conseguenza tra le funzionalità di GATTO vi sono la creazione e la cancellazione di archivi bibliografici e l'inserimento, la modifica e la cancellazione di record all'interno di un archivio bibliografico.
All'atto della creazione di un nuovo corpus all'utente viene richiesto di indicare il file contenente l'archivio bibliografico da associare a quel corpus: se tale file al momento non esiste viene creato.
Ad un corpus è associato un unico archivio bibliografico, che alla fine dovrà quindi contenere tutti i record relativi ai testi del corpus; nell'archivio possono essere presenti ulteriori record, relativi a testi non inclusi nel corpus e magari appartenenti a corpus diversi. A seconda degli ambienti GATTO consente di esplorare l'intero archivio bibliografico o di vederne solo la parte costituita dai record associati ai testi del corpus.
Come accennato, uno stesso archivio bibliografico può essere utilizzato da corpus diversi.
Fisicamente un archivio bibliografico è un file, di nome e collocazione scelti dall'utente.