In modo stupefacente, e molto spesso, una delle cose che più mi sonosentito chiedere da chi cercava di farsi una prima opinione sul Semantic Web,è a che cosa servano i metadati. E’ curioso che si facciaquesta domanda perché senza metadati l’architettura del SemanticWeb semplicemente non funzionerebbe.
La scelta programmatica del Semantic Web è quella di non interrogarei testi, ma i metadati. Questa scelta si motiva con un fatto molto semplice:i dati che si possono trovare nel web non hanno nessuna struttura, i metadatiinvece sono informazioni su dei dati che sono stati prodotti seguendo una strutturaben precisa. Il fatto di potersi rifare ad una struttura permette di manipolarei metadati, conoscendo le relazioni che intercorrono fra essi. Tuttavia la domandache mi viene posta non è così insensata come potrebbe sembrare.I metadati infatti costituiscono il più grosso punto debole del SemanticWeb, e questo lo si può capire in modo intuitivo fin da subito.
I metadati costituiscono una difficoltà perché sono molto costosida produrre e possono risultare imprecisi. Se produciamo metadati attraversoun’indicizzazione manuale, questa risulterà costosa in terminidi tempo e costi-uomo. Inoltre quando l’indicizzazione non è fattada persone motivate e addestrate può risultare piuttosto imprecisa, perchévissuta come obbligo ed eseguita di fretta (la polizia italiana ha uno staffdi 100 annotatori ben preparati, i quali indicizzano sei pagine al giorno l’uno).
L’alternativa all’inidicizzazione manuale è l’indicizzazioneautomatica o semi automatica. E’ di questa che parleremo nelle prossimerighe.
Innanzi tutto vorrei parlare dei limiti dell’estrazione automatica deidati. I limiti sono dovuti all’impossibilità di un qualsiasi toolautomatico di discernere il contesto in cui un documento si pone. Di fatto unestrattore automatico si limiterà ad estrapolare dal testo le informazionipiù significative, non potrà mai inserire informazioni non contenutenel testo, anche se magari implicite ad esso (il contesto appunto). Inoltrel’estrazione automatica rimane sempre molto esposta alla ambiguitàdei termini. Del resto non si può pensare di fare a meno di essa.
E’ chiaro che la via più spesso scelta è quella degli automatismiassistiti, corretti e riveduti da operatori in grado di moderarne i limiti.Molti si chiederanno come possa lavorare effettivamente un sistema di analisitestuale. Per cercare di superare le difficoltà di comprensione proveremoa dare un descrizione generica e semplificata di un tool di estrazione automatica.
Una prima fondamentale componente del tool sarà un Text Zoner:un programma che si accolla il compito di suddividere il testo in parti strutturali(title, body, etc...). Fatto questo, il testo è passato a un Preprocessorche fa una analisi morfologica delle frasi, stabilisce cioè di che partiè costruita una frase (soggetto, predicato, oggetto). Un Filter eliminerà dal testo le frasi e le sentenze ritenute irrilevanti.
A questo punto si cercherà di capire quali sono le informazioni piùinteressanti. Attraverso un Named Entity Recognizer si possono identificarestrutture lessicali minime come nomi propri, date, numeri, nomi di società,etc. Tutte queste informazioni verranno organizzate quindi da un Parser cheisolerà i risultati significativi e ne fornirà la gerarchia direlazioni, ordinandoli secondo un albero.
Un Lexical Disambiguation dovrà assicurasi che i termini conpiù significati siano tradotti in un unico modo. parole con significatomolto vicino o espressioni composte simili saranno ricondotte ad un unico termine.
A questo punto dobbiamo iniziare a produrre metadati; qualche cosa che potremmochiamare un Semantic Interpreter riporterà gli elementi significativiriscontrati su strutture ontologiche possedute a priori. Si traduce il lavorosvolto dai componenti precedenti in relazioni espresse da ontologie che descrivonoil dominio di nostro interesse.
Questa beve descrizione fa capire molto bene come il tipo di vocabolari edontologie utilizzate dalle applicazioni di estrazione dei metadati influiscanoenormemente sui loro risultati. Il tool cercherà quei termini che avràin una sua lista, riconoscerà le strutture sintattiche che gli sarannostate fatte conoscere, stabilirà vicinanze semantiche in base a vocabolarie tesauri specifici.
Un buon tool funziona bene su documenti per i quali è stato appositamentestudiato, più gli argomenti dei documenti possono variare e piùil nostro tool dovrà ampliarsi e complicarsi. Se si intende utilizzareseriamente un estrattore automatico è indispensabile rendersi conto diquesta cosa e rendersi quindi conto che il lavoro di preparazione dell’applicativonon può essere trascurato. In particolare nel caso ci si trovi a doveranalizzare un dominio in rapida evoluzione, un tool di estrazione automaticarischia di diventare un ostacolo più che una risorsa.
Detto questo, detto quindi in pratica di fidarvi poco delle soluzioni facilie veloci, ecco a voi un elenco di siti dove trovare tool per l’estrazioneautomatica:
- OntoMarkupAnnotation Tool
- OntoMat
- OntoAnnotate
- SHOE Knowledge Annotator
- Amilcare
- Alembic
- MnM
- Annie (Ushef)
Alcuni di questi tool (o forse meglio alcune componenti) possono essere adoperateanche per un altro genere di operazione. Un testo può essere suddivisoin modo da riportarne le parti su una struttura che si possiede. Ma da un corpodi testi si possono anche estrarne tutte le relazioni (Soggetto predicato Oggetto),calcolarne le frequenze, e utilizzare le relazioni più frequenti percostruire una ontologia. E’ esattamente il processo inverso di quellodescritto precedentemente. La logica rimane la stessa di prima.
L’ontologia dedotta da dei dati può essere utile in certi casipoco utile in altri. La cosa di pende da un fattore: siamo noi che stabiliamoun processo al quale si devono adeguare le applicazioni. Oppure non conosciamoche tipo di processo si verifichi effettivamente e abbiamo bisogno di dedurlo.