Title: Indicizzazione di documenti semistrutturati
1Indicizzazione di documenti semistrutturati
- Sistemi informativi AA 2006-2007
- DEste Laura
2Overview
3Overview
- I sistemi di IR nascono per cercare informazioni
su testi senza una struttura stabilita, locali o
sul web. - I DB nascono per cercare informazioni in tabelle
di dati ben strutturati insiemi di elementi che
presentano valori per attributi ben definiti.
4Overview
- Oggi ci occuperemo dei problemi che si trovano
nel creare un motore di ricerca per i dati
semistrutturati, in particolare nella fase
dellindicizzazione.
5Overview dati semistrutturati (1)
- Un database di dati semistrutturati può essere
visto come un albero in cui le foglie contengono
testo e i nodi specificano quale ruolo semantico
ha quella stringa allinterno del documento.
6Overview dati semistrutturati (2)
ltarticlegt lttitlegtXML is Everywherelt/titlegt ltabstra
ctgt ltparagraphgtXML is..lt/paragraphgt ltparagraphgtThe
main goallt/paragraphgt ltparagraphgt......
lt/paragraphgt lt/abstractgt ltsectiongt lttitlegtXML
comelt/titlegt ltparagraphgtXML becomelt/paragraphgt ltpa
ragraphgt...... lt/paragraphgt lt/sectiongt lt/articlegt
7Overview indicizzazione (1)
- Lindexing è quel processo in cui i dati su cui
compiere la ricerca vengono analizzati e
organizzati in un indice che agevolerà le
operazioni di ricerca.
8Overview indicizzazione (2)
- Esempi
- Indice analitico
- Inverted index
9XML lo standard per i dati semistrutturati
- eXtended Markup Language XML
- XML viene utilizzato per i contenuti Web, per
alcuni programmi aziendali, per lo scambio di
testi e per molte altre applicazioni.
10Problemi
11Problema 1
- Mancanza di ununità naturale per il documento,
non è facile individuare una indexing unit. - Bisogna rispettare lo Structured document
retrieval principle - a system should always retrieve the most
specific part of a document answering the query.
12Problema 1
- La strategia ricercata è quella che ci permette
di ritornare come risultato la più piccola unità
che contiene linformazione richiesta. - Sono state assunte diverse soluzioni alla
questione.
13Problema 1
- Indicizzare tutti i componenti che possono essere
restituiti in una ricerca - I risultati possono contenere unità ridondanti
che vengono filtrate in un secondo momento.
14Problema 1
- Raggruppare i nodi in pseudodocumenti non
coincidenti. - Risolve il problema della ridondanza ma le unità
scelte potrebbero essere meno intuitive per
lutente e difficili da gestire, in quanto
fissate durante lindexing e non legate alla
ricerca effettuata.
15Problema 1
- Fissare un attributo XML come unità di documento.
- Come nella tecnica precedente le unità di
indexing sono fissate costringendoci a
rielaborare i risultati in un post-processing.
16Problema 2
- Necessità di distinguere il diverso contesto di
un termine a seconda dellattributo a cui è
legato. - Ad esempio distinguere uno scritto di Bruno Vespa
con un libro sul ciclo di vita di una vespa.
17Problema 2
- E necessario dunque collegare ad ogni contenuto
il suo contesto - autore/Vespa
- titolo/Vita di una vespa
18Problema 3
- Gli schemi dei documenti XML spesso sono
differenti tra loro dunque uno stesso attributo
può variare nome o addirittura essere smembrato
in più parti.
19Problema 3
- Lunica soluzione disponibile è quella di
collegare manualmente o semiautomaticamente
(anche se con un peggiore risultato) le diverse
etichette che rappresentano lo stesso attributo.
20Un indexer per XML
- Index Fabric
- Cooper, Sample, Franklin, Hjaltason, Shadmon
- Proceedings of the 27th VLDB Conference, Roma,
Italy, 2001
21Index Fabric
- Our solution encodes paths as strings, and
inserts those strings into a special index that
is highly optimized for long and complex keys.
22Index Fabric
- Lidea che è al centro di questo progetto è
quella di rappresentare ogni elemento con il suo
percorso e di rappresentare questo path come una
stringa da inserire in un database altamente
ottimizzato per la ricerca di stringhe.
23Index Fabric il database
- Viene utilizzato il Patricia Trie, una tecnica
che permette di lavorare agilmente con un grande
numero di stringhe. - Lalbero ottenuto è a sua volta elaborato per
permetterci di avere il risultato con un numero
piccolo e costante di operazioni di I/O.
24Fabric Index il database, un esempio
25Fabric Index il database, un esempio
26Fabric Index il database, un esempio
27Fabric Index il database, un esempio
28Fabric Index il database, un esempio
29Fabric Index il database, un esempio
Una sola operazione di I/O
Disco
Memoria
30Dal documento XML alla stringa
31Row paths Refined paths
- Oltre alla rappresentazione grezza dellalbero
del documento, si possono inserire dei percorsi
raffinati che aumentano la velocità di alcune
ricerche che sono ritenute frequenti. - Es.Trova le fatture in cui la compagnia X ha
venduto alla compagnia y. Assegnamo Z come
designatore a questo path e troviamo le
corrispondenze. Se Acme Inc ha venduto ad ABC
Corp potremo scrivere Z ABC Corp Acme Inc ed
inserire questa stringa nellindex.
32Risultati sperimentali
33Bibliografia
- Christopher D. Manning, Prabhakar Raghavan and
Hinrich Schütze, Introduction to Information
Retrieval, Cambridge University Press. 2007 - B. Cooper, N. Sample, M. J. Franklin, G. R.
Hjaltason, and M. Shadmon. A fast index for
semistructured data. In Proceedings of VLDB,
2001. http//citeseer.ist.psu.edu/cooper01fast.htm
l - B. Cooper, N. Sample, and M. Shadmon. A parallel
index for semistructured data. ACM Symposium on
Applied Computing 2002, to appear.
http//citeseer.ist.psu.edu/cooper02parallel.html