Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti...

70
1 1 Basi di dati multimediali 2 Basi di dati multimediali Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: testi arbitrari immagini audio video dati tradizionali (relazionali, orientati ad oggetti) 3 Basi di dati multimediali Un sistema di gestione dati multimediali (MMDBMS) permette la rappresentazione e la gestione di diversi tipi di dati, potenzialmente rappresentati secondo diversi formati Un MMDBMS deve permettere di: rappresentare dati corrispondenti a diverse tipologie di media interrogare dati rappresentati in formati diversi in modo uniforme interrogare dati in formati diversi simultaneamente nel contesto della stessa query recuperare gli oggetti dal supporto su cui risiedono, compatibilmente con il tipo di media che rappresentano

Transcript of Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti...

Page 1: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

1

1

Basi di dati multimediali

2

Basi di dati multimediali

� Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali:– testi arbitrari – immagini– audio– video– dati tradizionali (relazionali, orientati ad oggetti)

3

Basi di dati multimediali

� Un sistema di gestione dati multimediali (MMDBMS) permette la rappresentazione e la gestione di diversi tipi di dati, potenzialmente rappresentati secondo diversi formati

� Un MMDBMS deve permettere di:– rappresentare dati corrispondenti a diverse tipologie di media– interrogare dati rappresentati in formati diversi in modo uniforme – interrogare dati in formati diversi simultaneamente nel contesto

della stessa query– recuperare gli oggetti dal supporto su cui risiedono,

compatibilmente con il tipo di media che rappresentano

Page 2: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

2

4

MMDBMS: aspetti da considerare

� Rappresentazione– i dati sono tipicamente non strutturati– si vuole analizzare il contenuto– come è possibile rappresentare il contenuto di un

documento multimediale?� Come si fa a capire che un’immagine contiene una certa persona

� Query– un linguaggio di query per MMDBMS deve avere

caratteristiche particolari– query processing deve analizzare il contenuto degli oggetti

5

MMDBMS: aspetti da considerare

� Memorizzazione:– quali supporti utilizzare? (dischi, CD-ROM, nastri)– che operazioni supportare:

� non solo lettura/scrittura ma anche (video/audio)– playback– rewind– fast forward– pause

� Indici:– come indicizzare gli oggetti multimediali?

� Analizzeremo solo i primi due aspetti

6

Rappresentazione

� Un oggetto multimediale in genere può essere composto da diversi sotto-oggetti, ciascuno relativo ad un particolare media

� le relazioni tra oggetti e sotto-oggetti possono essere modellate utilizzando un approccio orientato ad oggetti o relazionale ad oggetti

� rimane il problema di come rappresentare il contenuto di un oggetto corrispondente ad un singolo media

Page 3: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

3

7

Rappresentazione

� Nelle basi di dati relazionali ad oggetti, i dati multimediali vengono memorizzati secondo due distinte modalità:– internamente al sistema come valori non strutturati

in campi LOB (Large Object)– esternamente al sistema, mantendo all’interno del

DBMS solo il riferimento alla posizione del file

8

Rappresentazione

Oggettomultimediale

riferimento

LOB

DBMS

Oggettomultimediale

9

Rappresentazione - LOB

� Facilitano la memorizzazione di dati multimediali (documenti, immagini, audio, ecc.)

� Possono contenere fino a 4GB di dati (di solito i RDBMS non vanno oltre 2-32KB)

� Il DBMS non associa alcuna interpretazione a questi dati

Page 4: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

4

10

Rappresentazione - LOB

� Si distinguono in:– BLOB (Binary Large Object)– CLOB (Character Large Object)

� Supportati da SQL-99� Sono fisicamente memorizzati esternamente

alle tabelle ma internamente al DB

11

Rappresentazione - ORDBMS

� Gli ORDBMS forniscono inoltre nuovi tipi didato complessi che supportano:– la rappresentazione del dato multimediale– Metodi per la manipolazione dei dati multimediali– Predicati e funzioni per l’interrogazione dei dati

multimediali

12

Rappresentazione

� Gli oggetti multimediali sono completamente non strutturati� per poterli interrogare in modo ragionevole, è necessario

sovraimporre a ciascun oggetto una rappresentazione concettuale (surrogato)

– insieme di dati strutturati (attributi) che descrivono l’oggetto multimediale dal punto di vista della struttura e del contenuto semantico

� ogni oggetto dello stesso tipo (per esempio, stesso media) sarà descritto dallo stesso tipo di surrogato

� il surrogato dell’oggetto multimediale non descrive pienamente il contenuto informativo dell’oggetto ma costituisce una sua sintesi

� i surrogati rappresentano gli oggetti sui quali definire le tecniche di indice

� I surrogati rappresentano metadati

Page 5: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

5

13

Rappresentazione

� Surrogato composto da due tipi di attributi:– descrittivi

� associano informazioni descrittive (relazionali) a ciascun oggetto

� vengono associati manualmente all’oggetto

– content-based (anche chiamati features)� associano informazioni relative al contenuto� vengono estratti direttamente dal sistema

14

Rappresentazione - esempio

Attributi descrittivinome: Villa Medicilocalità:Roma

Features:forma:

15

Rappresentazione

Oggetti multimediali

Features+

attributi

Generazione metadati(automatica + manuale)

I sistemi mettono a disposizione funzionalità per estrarre feature e per utilizzare tali featurenel contesto delle interrogazioni

Page 6: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

6

16

Rappresentazione

� Conseguenza– i documenti multimediali potranno essere confrontati

solo rispetto agli attributi e alle feature– feature uguali non sempre si riferiscono ad oggetti

uguali– Esempio

si puo’ riferire sia ad una villa che ad un’industria

17

Query processing: idea di base

Oggetti multimediali

Features+

attributi

Generazione metadati

Meccanismo di interrogazione

1

2

3

1. La query viene eseguita sui metadati (attributi + features)2. dai metadati si risale ai documenti originali3. i documenti originali vengono restituiti all’utente

18

Query processing: caratteristiche

1. Le query devono potere essere eseguite su diversi tipi di media contemporaneamente

2. devono considerare attributi e features3. devono supportare query per similitudine4. devono associare un valore di rilevanza ad

ogni oggetto restituito5. devono poter essere pesate

Page 7: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

7

19

2. Attributi e feature

� Le query interrogano gli oggetti multimediali considerando gli attributi e le feature ad essi associati

� Esempio: ritrova tutte le immagini di abitazioni importanti in Liguria– assumo di avere estratto le forme dalle immagini– assumo di avere associato informazione descrittiva

(luogo, tipo abitazione)

20

3. Query per similitudine

� Poiché il contenuto degli oggetti viene espresso attraverso feature e poiché le feature non rappresentano pienamente il contenuto semantico di un oggetto, le condizioni di selezione sugli oggetti multimediali non sempre sono certe

� ciò significa che le condizioni non sono in generale condizioni di uguaglianza ma di similitudine

– le condizioni in genere sono verificate in una certa misura, data dalla similitudine tra ciò che stiamo cercando e ciò che abbiamotrovato

21

3. Query per similitudine

� il linguaggio e il query processing devono permettere di esprimere ed eseguire query di questo tipo

� Esempio– Determina tutte le immagini in cui appare una certa persona,

presente in una specifica foto� difficilmente verranno restituite tutte le immagini che contengono

questa persona� molto probabilmente verranno trovate anche immagini in cui

compaiono persone che, per qualche motivo (dipende dalle feature considerate) assomigliano alla persona cercata

Page 8: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

8

22

4. Ranking

� Una conseguenza della necessità di eseguire query per similitudine è quello di decidere i criteri di rilevanza di un oggetto rispetto ad una interrogazione: ranking

� Il ranking è un ordinamento degli oggetti restituiti da una interrogazione che riflette il grado di rilevanza dei documenti rispetto all’interrogazione

� I criteri per effettuare il ranking dipendono dal media considerato e dal modello utilizzato per la sua rappresentazione e interrogazione

� Esempio: – ritrova le 5 immagini in cui più probabilmente appare una certa

persona, presente in una specifica foto

23

5. Query pesate

� In alcuni casi può essere utile pesare le varie condizioni nel contesto di una query

� questo permette di associare un livello di importanza alla condizione nel determinare la similarità degli oggetti

� Esempio: determinare le immagini che– contengono una persona (0.7)– non contengono alberi (0.3)

� la similarità viene pesata

24

Approcci alla specifica delle query

� Si estende un query language con operazioni specifiche per l’interrogazione di dati multimediali

– ad esempio, si estende SQL con condizioni specifiche da applicare ad oggetti multimediali

– tipico DBMS estesi alla gestione di dati multimediali

� Si fornisce un oggetto di esempio e si vogliono determinare tutti gli oggetti simili

– query by example:– esempio: si fornisce la fotografia del viso di una persona e si

vogliono ritrovare tutti i visi simili– tipico di sistemi dedicati alla gestione di un solo tipo di media

Page 9: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

9

25

Nel seguito ...

� Considereremo due media:– testo– immagini

� per ciascuno illustreremo– rappresentazione del contenuto– query in alcuni sistemi

26

Basi di dati testuali

27

Basi di dati testuali

� Sono in grado di memorizzare, gestire ed interrogare documenti testuali non strutturati

� I database di testi sfruttano tecniche sviluppate per i sistemi di Information Retrieval (IR)

� L’ambito dell’IR ha prodotto negli ultimi 20 anni:– Modelli per la rappresentazione di documenti– Architetture e linguaggi– Interfacce e metodi di visualizzazione

� Nonostante questo l’area dell’IR è sempre stata di interesse limitato

� L’avvento del Web ha cambiato le cose …

Page 10: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

10

28

Scopo

� Lo scopo è di reperire tutti e soli quei documenti che interessano l’utente

� Un sistema con tali caratteristiche non può però essere realizzato in pratica

� Per tale motivo si valuta un sistema tanto più efficace quanto più e’ in grado di avvicinarsi a tale requisito

29

� Precisione (precision)– Permette di quantificare quanto bene un sistema

soddisfa la proprieta’:� Solo i documenti rilevanti vengono restituiti

� Richiamo (recall)– Permette di quantificare quanto bene un sistema

soddisfa la proprieta’:� Tutti i documenti rilevanti vengono restituiti

Criteri di valutazione

30

Criteri di valutazione

RilevantiRestituiti

RilevantiNon restituiti

Non rilevantirestituiti

Non rilevantiNon restituiti

Documenti contenuti nel database

Page 11: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

11

31

Criteri di valutazione: richiamo

� Il potere di richiamo è la percentuale di documenti rilevanti restituiti rispetto al totale di documenti rilevanti presenti nel sistema

Rilevanti RestituitiRichiamo =

Totale Rilevanti

32

Criteri di valutazione: Richiamo

� Il potere di richiamo ideale è uguale ad uno� In generale il potere di richiamo sarà un valore

inferiore ad uno perché il numero di documenti pertinenti restituiti è inferiore al numero di documenti pertinenti presenti nel sistema

33

Criteri di valutazione: Precisione

� La precisione è la percentuale di documenti rilevanti sul totale dei documenti restituiti

Rilevanti RestituitiPrecisione =

Totale Restituiti

Page 12: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

12

34

Criteri di valutazione: considerazioni

� La condizione ideale è avere il 100% di precisione e richiamo

� In generale, aumentando il numero di documenti restituiti:

– si aumenta il potere di richiamo in quanto si aumenta potenzialmente il numero di rilevanti restituiti

– si potrebbe ridurre la precisione in quanto l’incremento del numero di documenti restituiti in genere a maggiore dell’incremento del numero dei documenti rilevanti restituiti

35

Rappresentazione di documenti testuali

36

Features

� Nel caso di documenti testuali le feature sono i termini utilizzati come indici durante la ricerca

� Sia i documenti che le interrogazioni vengono rappresentati in termini di insiemi di indici

� Gli indici possono essere:– Una parola chiave o un insieme di parole chiave– Un insieme di concetti che caratterizzano il

contenuto informativo del documento

Page 13: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

13

37

Uso dei termini indice

Docs

Information Need

Index Terms

doc

query

Rankingmatch

38

Modelli Classici – Concetti Base

� Si basano sulla rappresentazione dei documenti e delle interrogazioni come insiemi di termini indice

� Non tutti i termini che compaiono in un documento sono egualmente rappresentativi del suo contenuto informativo:

– di solito i termini troppo frequenti non sono buoni candidati per diventare indici

� L’importanza di un indice è rappresentata da un peso ad esso associato

39

� Sia– K un insieme di termini indice con cardinalita’ t– ki un termine indice in K– dj un documento– wij il peso associato a ki nel documento dj

� wij quantifica l’importanza dell’indice ki per descrivere il contenuto informativo del documento dj

� wij = 0 indica che ki non compare in dj

Modelli Classici – Concetti Base

Page 14: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

14

40

� vec(dj) = (w1j, w2j, …, wtj) è il vettore di pesi associati al documento dj, dove t è la cardinalita’ di K

� gi(vec(dj)) = wij è una funzione che restituisce il peso di ki nel documento dj

Modelli Classici – Concetti Base

41

� Si assume che i pesi degli indici siano indipendenti

� Questa assunzione è una semplificazione perché esistono delle correlazioni tra termini che compaiono in un documento

� Questo facilita la definizione dei pesi ma rende meno precisa la ricerca:– Es: computer � network

Modelli Classici – Concetti Base

42

Modelli classici: proposte

� Modello booleano� Modello vettoriale� Modello probabilistico

� Ogni modello specifica– Come rappresentare i pesi– come rappresentare le interrogazioni– Come calcolare la similarita’ tra due documenti (tra un

documento e un’interrogazione)

Page 15: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

15

43

� E’ un modello semplice basato sulla teoria degli insiemi

� I pesi assumono valori binari:– wij ε {0,1}

� Un peso uguale a uno indica che il termine compare nel documento

� Un peso uguale a zero indica che il termine non compare nel documento

Modello booleano: i pesi

44

Modello booleano: le interrogazioni

� Le interrogazioni sono espressioni booleane – Semantica precisa– Formalismo consolidato

� Formule atomiche– Termini indici

� Classici connettivi: ∧, ∨, ¬� La negazione di un termine indica che il termine non

deve comparire nei documenti cercati� Esempio

– q = ka ∧ (kb ∨ ¬kc)

45

Modello Booleano: le interrogazioni

� Per garantire uniformita’ di rappresentazione, le interrogazionivengono tradotte in un insieme di vettori

– Ogni interrogazione viene rappresentata come se fosse un insieme di documenti

� Idea– Query booleana q– Si riscrive q in forma normale disgiuntiva, ottenendo una nuova query

booleana qdnf equivalente a q� Ogni congiunzione impone condizione su termini che si vuole che

appaiano/non appaiano nei documenti cercati

– Si riscrive qdnf in un insieme di vettori sull’insieme di termini indice Kqche compaiono nella query

� Ogni vettore viene chiamato componenti congiuntive della query q(qcc)

Page 16: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

16

46

Modello booleano: esempio

� Esempio– Interrogazione boolena:

� q = ka ∧ (kb ∨ ¬kc) – Interrogazione in forma disgiuntiva

� qdnf = (ka ∧ kb) ∨ (ka ∧ ¬kc)– Ogni congiunzione viene riscritta in un insieme di vettori

sull’insieme dei termini indice che compaiono nella query� Kq = (ka,kb,kc)� (ka ∧ kb) riscritto in {(1,1,0), (1,1,1)}, in quanto non si fanno

ipotesi su kc� (ka ∧ ¬kc) riscritto in {(1,0,1), (1,1,0)}, in quanto non si fanno

ipotesi su kb– Viene restituita l’unione di tutti i vettori

� vec(qdnf)= {(1,1,1) , (1,1,0) , (1,0,0)}

47

1 se ∃ vec(qcc) t.c. vec(qcc) ∈ vec(qdnf) ∧sim(q,dj) = ∀ki ∈ Kq gi(vec(dj)) = gi(vec(qcc)))

0 altrimenti

Un documento viene restituito come risultato di una query solo se la sua similitudine con l’interrogazione è pari ad uno

Modello Booleano: similarità

48

Modello Booleano: esempio

� q=vec(qdnf) = {(1,1,1) , (1,1,0), (1,0,0)}

� dj = (0,1,0,…….) non è rilevante per q anche se contiene il termine kb

� di = (1,1,0,….) è rilevante per q

Page 17: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

17

49

Modello booleano: svantaggi

� Nessuna nozione di matching parziale e quindi nessun meccanismo di ranking

– Un documento o soddisfa la query o non la soddisfa– Vengono restituti solo i documenti che la soddisfano

completamente

� I bisogni informativi di un utente devono essere tradotti in una espressione booleana

– Le interrogazioni formulate dagli utenti sono spesso troppo vaghe per essere rappresentate in questo modo

� Il problema principale e’ dato dal fatto che i pesi sono booleani

50

Modello vettoriale

� Risolve alcuni problemi del modello booleano utilizzando pesi non booleani

� I documenti non sono piu’ rilevanti o non rilevanti rispetto ad una query come nel modello booleano ma hanno un certo grado di rilevanza

� E’ quindi possibile determinare matching parziali ed effettuare il ranking del risultato

51

Modello vettoriale: pesi

� Valori contenuti in [0,1]

� wij > 0 quando ki ∈ dj� wiq > 0 quando ki ∈ q� vec(dj) = (w1j, w2j, ..., wtj)� vec(q) = (w1q, w2q, ..., wtq)

� Piu’ e’ alto il peso di un termine indice in un documento, tanto meglio il termine rappresenta il documento

Page 18: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

18

52

Modello Vettoriale: documenti e interrogazioni

� Sia t il numero di termini indice� Sia la query che il documento sono vettori in

uno spazio t-dimensionale

i

j

dj

53

� Similarita’ calcolata come correlazione tra i vettori vec(dj) e vec(q)

� sim(q,dj) = cos(Θ) = [vec(dj) • vec(q)] / |vec(dj)| * |vec(q)| =

Modello Vettoriale: similarita’

∑∑

ii

i

22iqij

iq * ij

w*w

ww

54

Modello vettoriale: similarita’

� vec(q) non influenza ranking – Uguale per tutti i documenti

� 0 ≤ sim(q,dj) ≤ 1– Grado di rilevanza

� Un documento è restituito anche se soddisfa solo parzialmente l’interrogazione

� si può decidere di restituire solo i documenti la cui similarità con la query supera una certa soglia

Page 19: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

19

55

Modello vettoriale: calcolo dei pesi

� Quali strategie adottare per computare i pesi wij e wiq?� Un buon peso deve tener conto di due fattori:

– Quanto un termine descrive il contenuto informativo di un documento� Term frequency tf(i,j), la frequenza di un termine ki all’interno di un

documento dj

– Quanto un termine rende un documento diverso dagli altri� Se un termine compare in molti documenti non sara’ molto utile per

distinguere un documento da un altro� Inverse document frequency idf(i), l’inverso della frequenza di un

termine ki tra tutti i documenti considerati

56

Modello vettoriale - pesi

wij = tf(i,j) * idf(i)

� + tf(i,j)– + ki rilevante per dj

� + idf(i)– - rilevante in generale

57

Modello vettoriale

� Sia:– N il numero totale di documenti nel db– ni il numero di documenti che contengono ki

– freq(i,j) la frequenza di ki in dj

� Il fattore tf normalizzato (f) è:– f(i,j) = freq(i,j) / maxl=1,...,t(freq(l,j))– il massimo è calcolato su tutti i termini kl che compaiono in dj

� Il fattore idf è dato da:– idf(i) = log (N/ni)– il log è usato per rendere comparabili i valori di tf e idf

Page 20: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

20

58

Modello vettoriale

� Il metodo più utilizzato è quello di usare come peso:– wij = f(i,j) * log(N/ni)

� Tale strategia è chiamata schema di pesatura tf-idf

59

Modello vettoriale

� Per i pesi da utilizzare nelle interrogazioni, Salton & Bucley propongono

– wiq = (0.5 + [0.5 * freq(i,q) / max(freq(l,q)]) * log(N/ni)

60

Modello vettoriale

� Vantaggi:– I pesi migliorano la qualità delle risposte alle

interrogazioni– Possibilità di matching parziale– La formula per il ranking ordina i documenti in base

alla rilevanza che hanno per l’interrogazione

� Svantaggi:– Considera tutti gli indici come indipendenti

� Attualmente, e’ il metodo piu’ utilizzato

Page 21: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

21

61

d1

d2

d3d4 d5

d6d7

k1k2

k3

k1 k2 k3 d1 2 0 1 d2 1 0 0 d3 0 1 3 d4 2 0 0 d5 1 2 4 d6 1 2 0 d7 0 5 0

q 1 2 3

Esempio

Contenuto celle = freq(i,j)

62

d1

d2

d3d4 d5

d6d7

k1k2

k3

Esempio

� Calcoliamo TF-IDF per i documenti, supponendo contenuto celle = freq(i,j)

� d1– K1: ((2/2)*(log (7/5)) = .33– K2: (0*(log (7/4))) = 0– K3: ((1/2)*(log (7/3))) = .42

� per gli altri:– [.34 0 0], [0 .19 .85], [.34 0 0], [.08 .28 .85],

[.17 .56 0], [0 .56 0]

63

Esempio

� Calcoliamo TF-IDF per la query– K1: (.5 + (.5 * 1/3))*(log (7/5)– K2: (.5 + (.5 * 2/3))*(log (7/4)– K3: (.5 + (.5 * 3/3))*(log (7/3)

� quindi: [.22 .47 .85]

d1

d2

d3d4 d5

d6d7

k1k2

k3

Page 22: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

22

64

Esempio

� Calcoliamo similarità per ogni documento� sim(d1,q)

– d1* q = (.33 * .22) + (0 * .47) + (.42 * .85) = .43– |d1| = sqrt((.33^2) + (.42^2)) = .53– |q| = sqrt((.22^2) + (.47^2) + (.85^2)) = 1.0– sim(d1,q) = .43 / (.53 + 1.0) = .28

� d2: .06 d3: .43 d4: .06 � d5: .46 d6: .19 d7: .17� Ranking:

– d5 >d3>d1>d6>d7>d2=d4

65

k1 k2 k3 d1 1 0 1 d2 1 0 0 d3 0 1 1 d4 1 0 0 d5 1 1 1 d6 1 1 0 d7 0 1 0

q 1 1 1

d1

d2

d3d4 d5

d6d7

k1k2

k3

Esempio

Pesi documenti e query booleani

Viene restituito solo d5

66

Modello Probabilistico

� L’obiettivo è quello di utilizzare tecniche di calcolo delle probabilità

� Data una interrogazione esiste sempre un insieme di documenti che costituiscono la risposta ideale

� La specifica dell’interrogazione consiste nel definire le caratteristiche della risposta ideale

� Query processing come processo di specifica delle caratteristice ideali della risposta

Page 23: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

23

67

� Il problema è capire quali sono tali caratteristiche � Sappiamo solo che i termini indice devono essere

utilizzati per fissare tali caratteristiche� All’inizio viene effettuata una ipotesi su quali queste

caratteristiche possono essere e viene eseguita la query

� L’utente poi decide quali documenti ottenuti come risposta sono rilevanti

� Il sistema usa questa informazione per raffinare la rappresentazione della risposta ideale e procedere

Modello Probabilistico

68

Modello Probabilistico

� Data una query q e un documento dj, il modello probabilistico cerca di stimare la probabilità che l’utente consideri il documento dj rilevante

� Il modello assume che tale probabilità dipenda solo dalla interrogazione e dal modo in cui il documento è rappresentato

� I documenti sono ordinati in ordine descrescente rispetto alla probabilità di rilevanza

� Non si tengono in considerazione i fattori tf e idf

69

Modelli classici - confronto

� Il modello Booleano è il meno potente in quanto non consente il matching parziale

� Risultati sperimentali indicano che il modello vettoriale ha prestazioni migliori del modello probabilistico

Page 24: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

24

70

Riconoscimentostruttura

stopwordsNoungroups stemming

ManualindexingDocs

struttura Full text Index terms

Determinazione termini indice

Analisi lessicale

71

Estrazione di Feature dal Testo

� Consideriamo un testo come una sequenza di caratteri

� Quattro fasi principali:– Analisi lessicale del testo– Eliminazione delle “stopword” – Normalizzazione delle parole rimanenti– Selezione dei termini caratterizzanti (indici)

72

Analisi lessicale

� L’obiettivo è quello di trasformare il testo da una sequenza di caratteri ad una sequenza di parole, candidate ad essere utilizzate come termini indice– Eliminazione della punteggiatura– Spesso elimnazione di sequenze numeriche (in

genere troppo vaghe per essere significative)– Conversione da maiuscolo a minuscolo

Page 25: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

25

73

Eliminazione delle stopword

� Stopword: parola troppo frequenti nei documenti (ad esempio che compaiono in più dell’80% dei documenti) non utile per determinare il risultato di una interrogazione

� Esempi di stopword sono articoli, proposizioni e congiunzioni� L’eliminazione delle stopword consente di ridurre notevolmente le

dimensioni del documento originale– Spesso anche del 40%

� In genere i sistemi mantengono una lista di stopworlds che puo’essere estesa dall’utente

� L’eliminazione delle stopword può però ridurre il potere di richiamo:

to be or not to be � rimane solo ‘be’viene ridotto l’insieme dei documenti rilevanti restituiti

74

Normalizzazione (stemming)

� Spesso l’utente specifica un termine in una query ma i documenti rilevanti ne contengono una sua variante

– Plurali, gerundi, passati,…

� La fase di normalizzazione sostituisce le varianti di una stessa parola con la loro radice comune (stem)(es: connesso per connesso, connettere, connessione,ecc.)

� Anche lo stemming riduce la dimensione del documento

75

Normalizzazione (stemming)

� Non esiste consenso comune sull’utilizzo della fase di normalizzazione

� Molti Web search engines non usano lo stemming

Page 26: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

26

76

Selezione degli indici

� Due alternative:– full-text index: tutte le parole sono utilizzate per

caratterizzare il contenuto informativo del documento� a volte le stopword non vengono eliminate

– selezione dei termini rilevanti:1. Specialisti 2. Mediante un processo automatico3. Usando un thesaurus

77

Selezione degli indici: processo automatico

� Un metodo consolidato è quello di identificare sostantivi o gruppi di sostantivi all’interno del testo (es. computer science)

� Un gruppo di nomi è un insieme di nomi la cui distanza nel testo non supera una soglia predefinita (es: 3)

� Vengono eliminati verbi, aggettivi, avverbi, ecc.

78

Thesaurus

� L’idea e’ quella di usare un vocabolario noto per stabilire quali sono i termini indice

� Un thesaurus e’ quindi una sorta di vocabolario che consiste di:– un insieme di vocaboli ed espressioni-chiave

rilevanti per un particolare dominio– un insieme di sinonimi per ogni vocabolo

nell’insieme

Page 27: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

27

79

Thesaurus

� La fase di indicizzazione e di ricerca avviene solo facendo riferimento ai termini del thesaurus

� L’utilizzo di thesauri è vantaggioso per domini in cui è possibile la standardizzazione dei termini di ricerca (esempio: ambito medico, legale,ecc.)

� I thesauri sono di solito definiti da esperti di un certo dominio applicativo e vengono utilizzati soltanto in tale dominio

� Non chiaro come possano essere utilizzati in contesti generici come il Web …

80

Thesaurus: termini indice

� Ogni termine indice rappresenta un concettosignificativo in un certo dominio applicativo– Parole, gruppi di parole, frasi– Spesso singole parole, in genere sostantivi o

gerundi

� Ogni concetto e’ associato ad una descrizione

81

Thesauri: reti semantiche

� In un thesaurus che utilizza una rete semantica i termini possono essere strutturati attraverso una rete di collegamenti concettuali

� Una relazione semantica puo’ essere:– preferenziale– gerarchica– associativa

Page 28: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

28

82

Thesauri: relazione preferenziale

� La relazione preferenziale rappresenta l’equivalenza (sinonimia) tra termini:– SP (sinonimo preferenziale)– USA (è il contrario di SP)

� Allievo SP Alunno� Alunno USA Allievo

83

Thesauri: relazione gerarchica

� La relazione gerarchica rappresenta la relazione di specializzazione che esiste tra i termini– TL (termine largo)– TS (termine stretto)

� Veicolo TL Auto� Auto TS Veicolo� Il vertice della gerarchia si chiama TA (termine

più ampio)

84

Thesauri : relazione associativa

� La relazione associativa esprime un legame biunivoco tra le componenti lessicali

– RT (termine in relazione)

� La tipologia di relazione dipende dal contesto� Esempi:

– antinomia: vittoria--sconfitta– concomitanza: sintomo--malattia– proprietà: trampolino--altezza– inclusione: contenuto--contenente– localizzazione: partita--stadio

Page 29: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

29

85

Thesauri: reti semantiche

� Un thesaurus con rete semantica rende più efficienti le interrogazioni perché consente di ricercare automaticamente i termini sinonimi, quelli più ampi o più ristretti ed i termini correlati

� Permette quindi l’espansione della query

86

Interrogazioni

� Due tipi fondamentali:– su stringhe, con caratteri jolly e sottostringhe

� Trova tutti i documenti che contengono un certo pattern rappresentato da una stringa

� Pattern + esteso rispetto a quello usato nell’operatore LIKE

– con operatori booleani� Combinazione di diversi pattern

87

Interrogazioni su stringhe

� E’ possibile ricercare tutti i testi che contengono una certa parola, una sua “variante” o un suo sinonimo

– comput? --> computa, computo,...– comp* --> computer, compilato, compito, ecc.

� Varianti:– ricerca di frasi– ricerche fuzzy– ricerca per prossimità (insieme di parole e indicazione della

distanza massima che devono avere all’interno del testo)

Page 30: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

30

88

Interrogazioni booleane

� I termini dell’interrogazione possono essere composti mediante gli operatori booleani:

– p1 AND p2– p1 OR p2– NOT p1

� Gli operatori booleani possono essere combinati:– (p1 AND p2) OR (p3 AND p4)

89

Indice inverso

� Per semplificare le ricerche al thesaurus è associato un indice inverso cioè una tabella che per ogni parola contenuta nel thesaurus contiene una lista dei documenti che la contengono

90

Indice inverso

termine documenti

a 1,3,4,6,7

b

c

d

1,7

3,7

4,7

Page 31: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

31

91

Indici inversi

� Solitamente gli indici inversi vengono estesi per mantenere per ogni termine non solo i documenti che lo contengono ma anche il numero di occorrenze di tale termine nei vari documenti

92

Sistemi di IR: esempi

� DIALOG Corporation: offre più di 500 sistemi di IR su svariati argomenti, quali scienze, medicina, economia e giornali elettronici (www.dialog.com)

� LEXIS-NEXIS: ambito legale ed economico (www.lexis-nexis.com)

� OCLC (the online computer library center) offre l’accesso ad 1.5 milioni di articoli (www.oclc.org)

� H.W. Wilson: offre più di 40 sistemi di IR per scuole ed istituzioni pubbliche (www.hwwilson.com)

93

Sistemi di IR: esempi

� CA SEARCH: Chemical Abstract. Contiene 14 milioni di documenti con una frequenza di aggiornamento di 11.000 documenti alla settimana

� MEDLINE: indicizza articoli provenienti da 3.700 riviste mediche

� NewYork Times -- Fulltext: contiene tutte le edizioni del NewYork Times dal 1981 ad oggi

� PsycINFO: Psycological Abstract. Contiene 1.5 milioni di documenti riguardanti psicologia, sociologia, psichiatria, linguistica ed antroplogia dal 1887 fino ad oggi

Page 32: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

32

94

Gestione di testi in Oracle 9i

� Oracle 9i Text� permette di

– indicizzare testi e documenti memorizzati in Oracle9i, in file del sistema operativo o URL, in maniera integrata con i dati relazionali tradizionali con possibilità di interrogazioni basate sul contenuto� possibilità di utilizzare un thesaurus

– classificare documenti in base al loro contenuto

� vedremo solo il primo aspetto

95

Gestione di testi in Oracle 9i

� Formati– File di testo– HTML, XML– documenti Word– PDF– …

� Linguaggi– per ricerche tematiche, inglese e francese– possibilità di estendere i linguaggi caricando

opportuni thesauri per il linguaggio di interesse

96

Sviluppo applicazione testuale

� Caricamento documenti� indicizzazione� interrogazione

– operatori– thesauri

Page 33: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

33

97

Esempio

� create table docs(id number primary key,

text varchar2(80));

� insert into docs values (1,'first document');insert into docs values (2, 'second document');

� create index doc_index on docs(text)indextype is ctxsys.context;

� select id from docswhere contains(text, 'first') > 0;

98

Rappresentazione documenti

A

B

C

99

Rappresentazione documenti

� A. Documento contenuto in un campo di tipo CHAR, VARCHAR, VARCHAR2, LONG, LONG RAW, BLOB, CLOB

� B. Campo di tipo BFILE� C. Campo di tipo URIType

� la tabella deve avere una chiave primaria, utilizzata per identificare i documenti

Page 34: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

34

100

Caricamento documenti

� Direttamente con statement INSERT� SQL Loader� procedure ad hoc� OCI

101

Indicizzazione documenti

� Oracle supporta diverse tipologie di indice– CONTEXT, per ricerche su documenti arbitrari– CTXCAT, per ricerche combinate su documenti

brevi e dati strutturati– MATCHES, per classificazione documenti

� noi vedremo solo il tipo CONTEXT� la creazione dell’indice è un passo necessario

per l’esecuzione di interrogazioni sul documento

102

Indice CONTEXT

� Determina i termini indice associati ad ogni documento– crea il surrogato– organizza il surrogato come indice inverso

Page 35: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

35

103

Indicizzazione documenti

� comando per la creazione di indicicreate index INDEXNAME on TABLE(COLUMN) indextype is ctxsys.context

� il comando per default assume che:– la colonna sia di tipo A– il linguaggio sia quello specificato durante l’installazione– Usa lista di stopword di default– Abilita stemming

� è possibile modificare le impostazioni di base, customizzando il comando CREATE INDEX

– sistema di preferences

104

Indicizzazione documenti

� In generale, il comando di creazione di indice esegue un insieme di processi che creano oggetti intermedi

� per ogni processo è possibile specificare delle preferenze

105

Indicizzazione documenti

Page 36: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

36

106

Indicizzazione documenti - processi

� Datastore : scorre le righe della tabella e legge i dati della colonna, restituendo i dati contenuti nel documento

� Filter : prende i documenti restituiti dal datastore e li trasforma in una rappresentazione testuale

– non necessaria per plain text, XML o HTML– documenti Word, PDF, ecc. Vengono convertiti in un testo con mark-up

(esempio HTML)

� Sectioner : divide l’informazione strutturale (markup) dal contenuto � Lexer : suddivide il plain text in token (parole) e crea token tematici (in

relazione alle preferenze specificate)� Indexing engine: crea l’inverted index, eliminando stopword,

contenute in STOPLIST e crea indici per stemming utilizzando informazioni in WORDLIST

107

Indicizzazione documenti -preferenze

� per ciascun processo ci sono uno o più oggetti che rappresentano i possibili comportamenti

� in generale, gli oggetti sono raggruppati in classi:

108

Indicizzazione documenti -preferenze

� tali oggetti non possono essere usati direttamente negli indici:– si crea una preference a partire da tali oggetti

template– la si personalizza settandone gli attributi– si usa tale preference per creare l’indice

Page 37: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

37

109

Indicizzazione documenti -Esempio

ctx_ddl.create_preference('mypref', 'FILE_DATASTORE');

ctx_ddl.set_attribute('mypref', 'PATH', '/docs');

create index doc_index on docs(text)indextype is ctxsys.contextparameters ('datastore mypref');

110

Indicizzazione documenti -preferenze

� nella clausola parameters si possono specificare più classi, semplicemente aggiungendo una coppia keyword-preference

– parameters('datastore mypref filter myfilter')

� questo meccanismo è usato per tutte le classi tranne SECTION GROUP e STOPLIST, che hanno una API propria

� esistono dei parametri utilizzati dal sistema di default(quelli per LEXER, WORDLIST e STOPLIST dipendono dal linguaggio)

111

Datastore

� DIRECT_DATASTORE (default) assume che il documento sia memorizzato direttamente nella colonna indicizzata, ne restituisce semplicemente il contenuto

� FILE_DATASTORE interpreta la colonna come un nome di file, lo apre e ne restituisce il contenuto

� URL_DATASTORE interpreta la colonna come un URL, effettua una GET e restituisce il contenuto

� ...

Page 38: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

38

112

Filter

� NULL_FILTER (default) utilizzato quando il contenuto del documento non è in formato binario, passa semplicemente il testo dal datastore al sectioner

� CHARSET_FILTER converte i documenti da un insieme di caratteri straniero al character set del database

� USER_FILTER/PROCEDURE_FILTER filtering ad hoc (es. per convertire tutto in lettere maiuscole) in forma di procedura

� INSO_FILTER riconosce automaticamente e filtra oltre un centinaio di formati diversi, tra cui Word e Acrobat, producendo HTML come output

113

Lexers

� BASIC_LEXER: per la maggioranza delle lingue europee, si può modificare il comportamento di defaultattraverso gli attributi

– JOINS per specificare caratteri non alfanumerici da trattare come lettere valide

– PUNCTUATION per specificare i simboli di punteggiatura (importanti per sezioni SENTENCE e PARAGRAPH)

– per la normalizzazione del testo (es. accenti, maiuscole/minuscole, parole composte)

– per selezionare indicizzazione di testo o tematica

114

Stoplist

� lista delle stopword, che non vengono considerate per l’indicizzazione

� API separata:ctx_ddl.create_stoplist('mylist');ctx_ddl.add_stopword('mylist', 'the');

� stoplist di default, che dipendono dal linguaggio� si possono aggiungere stopword all’indice senza doverlo

ridefinirealter index myidx rebuild parameters ('addstopword AND');

� stop classes (es. NUMBERS) e stop themes

Page 39: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

39

115

Wordlist

� non ha effetto sull’indicizzazione, ma contiene i settingper espansione stem e fuzzy dei termini utilizzati per rispondere alle interrogazioni

� un solo oggetto BASIC_WORLDLIST con attributi:– STEMMER (espansione di una parola a forme differenti, es.

ENGLISH, ITALIAN, NULL)– FUZZY_MATCH (considera parole mistyped, es. varie lingue e

OCR)– FUZZY_SCORE (score floor per espansione fuzzy)– FUZZY_NUMRESULT (max. numero parole per espansione

fuzzy)

116

Section Groups

� La classe section group prende un formato di testo (es. XML o HTML) come input e restituisce i sectionboundaries e plain text

� i section group non sono creati con create_preferences, ma con una API separata

– ctx_ddl.create_section_group('mygroup’, 'html_section_group');

� il primo argomento è il nome del section group, il secondo è il tipo, che specifica il formato del testo di input e le regole per individuare le sezioni

117

Section Groups

� tipi di section groups:– NULL_SECTION_GROUP: da usare quando non ci sono

sezioni o ci sono solo sezioni speciali: SENTENCES e PARAGRAPH� Default� Vedremo solo questo

– BASIC_SECTION_GROUP: per XML o HTML, rimuove semplicemente i markup tags, che devono essere bilanciati, non supporta attributi e commenti

– HTML_SECTION_GROUP: per HTML– XML_SECTION_GROUP: per XML– NEWS_SECTION_GROUP: per newsgroup style postings,

rimuove header lines

Page 40: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

40

118

Section Groups

� le sezioni hanno tre attributi:– TAG: specifica come riconoscere la sezione– NAME: specifica come riferirsi alla sezione nelle query (più tag

possono essere mappati sullo stesso nome)– TYPE: è il tipo di sezione, ci sono tre tipi diversi: ZONE,

SPECIAL, FIELD

� ZONE: – si registra dove sono start e end– permette query di tipo WITHIN, cioè ricerche all’interno di

sezioni particolari– se una sezione ZONE si ripete viene trattata separatamente

nelle query– possono essere annidate

119

Section Groups

� SPECIAL: non sono riconosciute attraverso tag, ma dal lexer attraverso la punteggiatura

– SENTENCE– PARAGRAPH– Vedremo solo queste

120

Section groups

� FIELD: – il contenuto della sezione è indicizzato separatamente dal

resto del documento– le query di tipo WITHIN vengono eseguite su questo indice

separato– sono pensate per sezioni non ripetute e non overlapping

Page 41: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

41

121

Section Groups - esempio

� Documento:

<A>rat</A><A>ox</A> <B>tiger rabbit</B> <C>dragon<C>snake</C></C>

� Creazione section groupctx_ddl.create_section_group('mygroup',

’xml_section_group');

� aggiunta sezioni di tipo ZONEctx_ddl.add_zone_section('mygroup', 'asec', 'a');

ctx_ddl.add_zone_section('mygroup', 'bsec', 'b');ctx_ddl.add_zone_section('mygroup', 'csec', 'c');

122

Section Groups - esempio

� Documento plain text� Creazione section group

ctx_ddl.create_section_group('mygroup',’null_section_group');

� aggiunta sezioni di tipo SPECIALctx_ddl.add_special_section('mygroup', ’SENTENCE');

123

Aggiornamento degli indici

� L’indice creato non viene aggiornato automaticamente dopo ogni operazione DML

– indicizzare un singolo documento richiede molto tempo– gli inverted index si aggiornano meglio su un insieme di

documenti per volta– le applicazioni in genere sono abbastanza statiche, e non è

necessaria una completa consistenza

� possibilità di ricostruzione totale o parziale – Procedura ctx_ddl.sync_index

Page 42: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

42

124

Interrogazioni

� La creazione di un indice di tipo CONTEXT permette di eseguire interrogazioni sul contenuto dei documenti

� funzione CONTAINS, con vari criteri di selezione– logici– di prossimità– fuzzy– stemming– thesaurus– wildcards– ricerche su sezioni

� Sono case-insensitive per default– modificabile con preferenze BASIC_LEXER

125

Interrogazioni - contains

select idfrom texttabwhere contains(textcol,'query') > 0

– il primo argomento è il nome della colonna, il secondo è il testo dell’interrogazione (max 2000 byte)

– restituisce un numero, che quantifica il match

� 0 = no match

126

Interrogazioni - scoring

select id, score(1)

from texttabwhere contains(textcol, 'query', 1) > 0order by score(1) desc

� 1 è contains label e può essere un qualsiasi numero, utilizzato per matchare lo score nella select list con quello nella clausola where

� lo score è un numero compreso tra 0 e 100, ed è relativo (significativo solo per la query)

Page 43: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

43

127

Interrogazioni - scoring

� Modello vettoriale� Pesi wij = 3 f(i,j)(1+log(N/ni)) con

– N numero totale tuple– normalizzati tra 0 e 100

� la similarità è un valore tra 0 e 100

� Vari operatori di composizione

128

Interrogazioni - tipologie

� A. Ricerca di documenti che contengonoparole o frasi– Per default case insensitive– operatori di espansione, di prossimita’

� B. Ricerca all’interno di sezioni di documenti(WITHIN)

� C. Ricerca di documenti che trattano un certoargomento (ABOUT)

� Operatori logici, operatori di score

129

Interrogazioni A – ricerca atomica per parole o frasi

� interrogazioni semplici

contains(text, 'dog') > 0

� si possono interrogare frasi:

contains(text,'dog my cat') > 0

� le stopword sono trattate come wildcard (matchanoqualsiasi parola)contains(text, 'dog the cat') > 0restituisce 'dog my cat’, 'dog your cat’, 'dog the cat'

� le stopword da sole vengono eliminate dalla query

Page 44: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

44

130

Interrogazioni A - operatori di espansione delle parole

� WILDCARD (%_) per pattern matching (come in LIKE di SQL)

� FUZZY (?) trova parole con spelling simile a quella data (usa wordlist): ?termine

� STEM ($) trova parole con radice comune (usa wordlist): $termine

� SOUNDEX (!) trova parole con stesso suono (usa una specifica espansione fuzzy): !termine

� EQUIV (=) permette di indicare esplicitamente varie forme della stessa parola: labradors = alsatians are big dog

– Si considera indifferentemente labrador o alsatians

� E’ possibile applicare questi operatori anche all’italiano, settando opportuni parametri

131

Interrogazioni A - operatori di prossimità

� operatore NEAR, che ha due forme

� dog ; cat ; boat

il punteggio dipende da quanto i termini sono vicini l’uno all’altro, in termini di numero di parole

� NEAR((dog,boat), 10, TRUE) – primo argomento è lista di parole

– secondo è distanza massima (numero di parole) tra tutte le parole indicate

– terzo specifica se tenere conto dell’ordine in cui appaiono nella lista

� True: considero ordine

� Default false

132

Interrogazioni B - sezioni

� WITHIN: limita una query a una particolare sezione� Approccio

– Documento plain text– Creazione section group

ctx_ddl.create_section_group('mygroup',’null_section_group');

– aggiunta sezioni di tipo ZONEctx_ddl.add_special_section('mygroup', ’SENTENCE');

– Creazione indice con preferenzacreate index myindex on docs(text)

parameters (section group mygroup)

– Query di tipo withincontains(text, ’tiger & cat within

sentence') > 0

Page 45: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

45

133

Interrogazioni B - esempio

� <A>rat</A><A>ox</A> <B>tiger rabbit</B> <C>dragon<C>snake</C></C>

� ctx_ddl.create_section_group('mygroup','basic_section_group');

� sezione ZONE

ctx_ddl.add_zone_section('mygroup', 'asec', 'a');

ctx_ddl.add_zone_section('mygroup', 'bsec', 'b');ctx_ddl.add_zone_section('mygroup', 'csec', 'c');

� contains(text, 'rat within asec') > 0

restituisce il documento� contains(text, 'tiger within asec') > 0

non restituisce il documento

134

Interrogazioni B - esempio

� ogni istanza è considerata distinta:contains(text, '(tiger and rabbit) within bsec') > 0

trova il documentocontains(text, '(rat and ox) within asec') > 0

no

contains(text, '(dragon and snake) within csec') > 0

� nel caso di sezioni FIELD il contenuto di diverse istanze viene unito, quindi la seconda query restituirebbe il documento

135

Interrogazioni tematiche C

� Si vogliono determinare i documenti che trattano un certo concetto– ABOUT(frase)

� la stringa specifica rappresenta il concetto (tema) cercato, rappresentato da ‘frase’

� solo per inglese e francese � richiede la presenza di una knowledge base

– gerarchia di concetti con 6 sottoalberi: scienza-tecnologia, affari e finanza, politica e militare, sociale, geografia, idee astratte

– E’ case sensitive� l’indice deve avere una componente tematica� se non ce l’ha, l’interrogazione viene espansa in una query non

tematica

Page 46: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

46

136

Interrogazioni tematiche C -esempio

contains(text, 'about(canines)')

� se esiste l’indice, può restituire documenti che contengono “dog”

� se non esiste, about(go home now) è trasformata in $go,$home,$now

137

Interrogazioni C - Thesaurus

� Possibilità di creare Thesaurus che definiscono sinonimi e relazioni gerarchiche tra parole o frasi

� il thesaurus non viene installato di default ma deve essere caricato

– il sistema contiene un thesaurus di default per l’inglese

� il caricamento di un Thesaurus permette di espandere le ricerche ai sinomini di una certa parola o ad altre parole ad essa associate

138

Interrogazioni C - Thesaurus

� file con formattazione particolare

� alcune relazioni considerate

– SYN: sinonimi

– PT: preferred term

– BT: broader term

– NT: narrower term

– RT: related term

– TR: traduzione in altri linguaggi

� gli stessi identificatori corrispondono a procedure che permettono di utilizzare queste relazioni nelle interrogazioni

Page 47: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

47

139

Interrogazioni C - Thesaurus

� SYN( term [, thesname] )

� PT( term [, thesname] )

� BT( term [, level [,thesname]] )

� NT( term [, level [,thesname]] )

� TT( term [, thesname] )

� RT( term [,thesname] )

� TR( term [,lan [,thesname] ])

� Livelli di distanza nel thesaurus dal termine considerato

� Thesname: nome del thesaurus

� Lan: linguaggio

� Se non si specifica il thesaurus, si considera quello di default

140

Interrogazioni C - esempio

� Se la query contiene– BT(dog)E nel thesaurus dog viene generalizzato con – animalla query viene sostituita con– dog OR animal

� Si veda dopo per il significato di OR

141

Interrogazioni - operatori logici

� AND (&): documenti che contengono almeno un’occorrenza di ciascun termine indicato

– Restituisce il punteggio minimo tra quelli degli operandi

� OR (|): documenti che contengono almeno un’occorrenza di almeno un termine indicato

– Restituisce il punteggio massimo tra quelli degli operandi

� NOT (~) è "AND NOT” (differenza):– 'dog NOT cat' restituisce i documenti che contengono "dog" ma

non contendono "cat”

– il punteggio restituito è quello del figlio sinistro

Page 48: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

48

142

Interrogazioni - operatori logici

� MINUS (-) sottrae il punteggio dell’operando destro a quello del sinistro contains(text, 'tiger MINUS rabbit') > 0

– tiger e preferibilmente non rabbit

– sottrae i punteggi

� ACCUM (,) raggruppa più parole o frasi e ne accumula i punteggicontains(text, 'tiger ACCUM rabbit)') > 0

– tiger e preferibilmente rabbit

– Peso maggiore a chi contiene tutti i termini. Per documenti che contengono gli stessi termini, si considerano le frequenze

143

Interrogazioni - osservazione

� AND– nella logica a due valori, richiede che entrambi gli

argomenti siano veri– interpretando vero = 1 e falso = 0, viene restituito il

valore minimo– stesso discorso nel caso di valori compresi tra 0 e 1

� ACCUM– semplicemente somma i punteggi– più termini compaiono, più il documento è rilevante

144

Interrogazioni - osservazione

� OR– nella logica a due valori, richiede che almeno un argomento

sia vero– interpretando vero = 1 e falso = 0, viene restituito il valore

massimo– stesso discorso nel caso di valori compresi tra 0 e 1

� MINUS– toglie punteggi – un documento è più rilevante se i termini a destra non

compaiono

Page 49: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

49

145

Interrogazioni - operatori di score

� WEIGHT (*) moltiplica il punteggio di un termine di ricerca per renderlo più o meno importante nella query(peso tra .1 e 10) contains(text,'(dog*2) AND cat') > 0

Se il valore diventa maggiore di 100, lo si setta a 100

� THRESHOLD (>) elimina i documenti sotto una certa soglia contains(text,'(dog*2) AND cat') > 50

146

Basi di dati per la gestione di immagini

147

Problematiche

� La realizzazione di un sistema per la gestione di immagini deve affrontare le seguenti problematiche

– rappresentazione delle immagini– Misura della similarità– Metodi di accesso e ritrovamento

Page 50: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

50

148

Rappresentazione

immagini Features+

attributi

Generazione metadati(automatica + manuale)

Quali features e attributi?

149

Features

� Forme (shape)– l’idea è quella di estrarre delle forme dall’immagine – possono rappresentare contorni o approssimazione di contorni

Approssimazione contornocontorno

150

Features - shape

� Una shape per un oggetto può essere rappresentata in vari modi

� ad esempio, un contorno può sempre essere visto come una sequenza di punti p1,…,pn in uno spazio bidimensionale

Page 51: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

51

151

Features

� Oggetti semantici– con oggetto semantico si intende un oggetto

significativo dal punto di vista dell’applicazione� casa, viso, strada

– se gli oggetti sono chiaramente identificabili e possono essere facilmente riconosciuti, il ritrovamento può essere basato su tali oggetto

– tipicamente richiedono intervento umano – approccio limitato dalle tecniche esistenti di analisi

delle immagini

152

Features

� Texture (tessitura)– rappresentano informazioni relative alle “regolarità”

o “irregolarità” dell’immagine– dipendono dalla percezione visiva di un’immagine– si basano sulle cosiddette Tamura features

� coarseness (rugosità) � contrasto� direzionalità

153

Features

� Colore– proprietà globale che non richiede conoscenza degli oggetti contenuti

nelle immagini– può essere determinato in modo automatico quindi è molto utilizzato– spesso si usano istogrammi che rappresentano la composizione di

colori in un’immagine– ogni componente dell’istogramma corrisponde ad un colore (256 o 64

componenti)– per rappresentare un’immagine, si associa ad ogni componente il

numero di pixel dell’immagine più simili al colore considerato– il colore di ogni pixel in genere viene rappresentato come una tripla

(R,G,B), dove R indica la percentuale di Rosso, G la percentuale di Green e B la percentuale di Blu

Page 52: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

52

154

Un possibile surrogato per le immagini

� In generale, per rappresentare in modo sufficientemente dettagliato un’immagine è necessario utilizzare più features

� In generale, ogni immagine può essere interpretata come – un insieme di oggetti interessanti, ciascuno caratterizzato da un

descrittore di forma, che rappresenta la shape dell’oggetto e/o la zona dell’immagine nella quale l’oggetto è collocato (approssimazione)

� proprietà globali

– un descrittore di proprietà, che descrive le proprietà di un insieme di pixel nell’immagine (RGB, livelli di grigio per immagini in bianco e nero, texture)

� proprietà locali

� le proprietà sono rappresentate da un nome (Red, Green, Blue) e da un dominio (ad esempio {0,…,8})

155

Esempio

156

Esempio

� Si consideri l’immagine pic1.gif � l’immagine contiene due oggetti di interesse -

o1 e o2 -– le shape di questi oggetti sono rappresentate dai

rettangoli presenti nella figura– il descrittore di proprietà associato ad un insieme di

pixel potrebbe avere la seguente forma� Red = 5� Green = 1� Blue = 3

Page 53: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

53

157

Descrittori di proprietà

� Le proprietà vengono in genere associate ad insiemi di pixel� In genere, ogni immagine viene associata ad una coppia di interi

positivi (m,n), chiamata la griglia di risoluzione dell’immagine� una griglia (m,n) divide l’immagine in (m x n) celle di uguale

dimensione, chiamate griglia dell’immagine� ogni cella è costituita da un insieme di pixel� le proprietà possono quindi essere associate a ciascuna cella� le proprietà di ogni singola cella possono essere rappresentate

come un vettore, in cui ciascuna componente corrisponde ad una determinata proprietà

158

Osservazione

� Le shape si possono interpretare come proprietà globali dell’immagine

� le proprietà sono invece locali a ciascuna singola cella

� dalle proprietà di ogni singola cella si possono ovviamente inferire le proprietà delle celle che rappresentano i vari oggetti identificati

159

Definizione di base di dati di immagini

� Una base di dati di immagini è una tripla (GI, Prop, Rec) dove:

– GI è un insieme di immagini a cui è stata associata una griglia� ogni immagine si può quindi vedere come una terna

(Immagine,m,n), dove (m,n) rappresenta la griglia di risoluzione

– Prop è un insieme di proprietà di celle– Rec è una funzione che associa ad ogni immagine un insieme

di shape, in base ad una qualche rappresentazione

� Prop rappresenta le proprietà locali delle immagini� Rec rappresenta le proprietà globali delle immagini

Page 54: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

54

160

Query per similitudine

� Le query possono coinvolgere sia proprietà locali che proprietà globali

� problema: come determino la similitudine tra due immagini?

� Approccio fondamentale: approccio metrico� si assume che esista una distanza metrica d con la quale

confrontare ogni coppia di oggetti� più bassa è la distanza, più simili sono gli oggetti

161

Approccio metrico

� Una funzione da un insieme X a [0,1] è una funzione distanza se soddisfa i seguenti assiomi per ogni x,y,z in X:

– d(x,y) = d(y,x)– d(x,y) <= d(x,z) + d(z,y)– d(x,x) = 0

� per ogni proprietà associata ad un’immagine può essere definita una funzione distanza

� la distanza tra due immagini si ottiene quindi combinando le distanze tra le varie proprietà (locali e/o globali), ad esempio applicando la distanza Euclidea

162

Esempio applicato alle proprietà globali

� Si consideri un insieme Obj di immagini (256 x 256). Si supponga che ogni cella sia associata a tre attributi (red, green, blue) che assumono un valore in {0,…,8}

� un esempio di funzioni distanza tra due immagini o1 e o2 rispetto alle tre proprietà considerate è il seguente:

– diffr[i,j] = (o1[i,j].red - o2[i,j].red)2

– diffg[i,j] = (o1[i,j].green - o2[i,j].green) 2

– diffb[i,j] = (o1[i,j].blue - o2[i,j].blue) 2

– d(o1,o2) = (∑i=1,256 ∑i=1,256 (diffr[i,j] + diffg[i,j] + diffb[i,j]))1/2

Page 55: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

55

163

Approccio metrico per proprietàlocali

� La distanza precedente rappresenta la distanzaEuclidea tra i due oggetti

� se si considerano n proprietà locali e t =h x k celle, in base all’approccio metrico ogni immagine è vista come un insieme di m punti n-dimensionali

– f(I) = {P1,…,Pt} Pi = (xi1,…,xin)

� per determinare se le immagini I1 e I2 sono simili in base alla distanza Euclidea:

– f(I1) = {P1,…,Pt} Pi = (xi1,…,xin)– f(I2) = {Q1,…,Qt} Qi = (yi1,…,yin)– d(I1,I2) = (∑i=1,t d’(Pi,Qi))1/2

– d’(Pi,Qi) = (xi1 -yi1)2 + … + (xin -yin)2

164

Approccio metrico per proprietà locali

� L’approccio metrico richiede che per ogni proprietà locale vengacalcolata la distanza tra celle corrispondenti in immagini distinte

� ogni immagine è quindi interpretata come un insieme di punti– ogni punto è dato dai valori per le proprietà locali di una certa cella– se le proprietà sono n, i punti sono n-dimensionali– ogni immagine sarà caratterizzata da tanti punti quante sono le celle

� poiché il numero delle celle spesso è alto esistono approcci (che non vediamo) per mappare le immagini NON in un insieme di punti MA in un singolo punto in uno spazio s-dimensionale, con s <= n

� Esempio: consideriamo la media degli n punti– in questo caso s coincide con n

� si noti che il punto ottenuto si può interpretare come una proprietà globale dell’immagine

165

Indicizzazione per proprietà locali

� I punti ottenuti possono essere utilizzati come base per definire le tecniche di indicizzazione

� nel caso limite in cui s = 1, si potrebbero usare I B-tree� nel caso in cui s > 1, è necessario utilizzare specifici indici

multidimensionali� questi indici sono stati definiti nel contesto delle basi di dati spaziali

Spazio n-dimensionale

Spazio s-dimensionale

Algodi indiciz. indice DB

immagini

Page 56: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

56

166

Approccio metrico per proprietàglobali

� Anche per gli oggetti (regioni) associati ad un’immagine è possibile applicare un approccio metrico

� in questo caso la distanza deve essere definita sulleshape

� anche le shape possono essere rappresentate come un insieme di punti

� Esempio– se la shape è rappresentata da una spezzata costituita da n

segmenti, la spezzata può essere descritta da una sequenza di n punti bidimensionali p2

p1

p3

p4

p5

167

Approccio metrico per proprietàglobali

� In questo caso è possibile passare da n punti a 2 punticonsiderando il minimo rettangolo che contiene la shape (minimum bounding box - MBB)

� 2 punti si possono vedere come un punto in uno spazio4-dimensionale (s = 4)

p2

p1

p3

p4

p5

168

Indicizzazione per shape

shape Approssimazionishape

Algodi indiciz. indice DB

immagini

Page 57: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

57

169

Uso della distanza nelle query

� L’utilizzo della funzione distanza permette di risolvere in modo formalmente semplice (ma non semplice dal punto di vista di un’ottimizzazione efficiente) le query per similitudine

� Interrogazione di base:– data un’immagine, trovare le immagini simili a quella

in input

170

� La gestione delle immagini nei vari DBMS dipende dal sistema prescelto

� in genere, viene permessa una duplice rappresentazione

– riferimento esterno: � il DB contiene riferimento ai file che contengono le immagini

– rappresentazione interna:� le immagini vengono memorizzati nel DBMS di tipo BLOB (binary large

object)

� i sistemi mettono quindi a disposizione tool per generare i surrogati delle immagini (il tipo di surrogato dipende dal DBMS e dal toolprescelto),per gestire le immagini e per interrogarle

Rappresentazione immagini nei DBMS

171

� Quindi, per rappresentare un database di immagini IDB=(GI, Prop, Rec) in un DBMS

– ogni I in GI viene memorizzata in base all’approccio prescelto– ogni proprietà in Prop verrà implementata dai tool messi a

disposizione dal sistema per determinare i valori associati a specifiche proprietà (che dipendono dal sistema scelto)

– Rec rappresenta le shape degli oggetti riconosciuti utilizzando i tool messi a disposizione del sistema

Rappresentazione immagini nei DBMS

Page 58: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

58

172

Rappresentazione immagini nei DBMS

� Le proprietà possono riferirsi alle celle o all’immagine nel suo complesso e rappresentare, ad esempio, informazioni quali il nome dell’immagine, la data di caricamento, ecc.

� queste informazioni possono essere rese disponibili all’utente per effettuare interrogazioni

� Nel caso dell’approccio metrico, il sistema supporteràadeguati indici multidimensionali per supportare le query per similitudine

173

Gestione immagini in Oracle

� Ogni oggetto multimediale in Oracle può esserememorizzato, manipolato e interrogato utilizzando un particolare tipo di dato

– definiti nel package ORDSYS (non indicato nel seguito)

� Per le immagini– ORDImage: un’istanza è costituita da:

� attributi, che rappresentano il dato sorgente, cioè l’immagine� proprietà globali come lunghezza, larghezza, dimensione, tipo file

(es. TIFF), tipo di compressione (es. JPEG), tipo di contenuto(es. Monocromatico)

� metodi, che permettono di gestire le immagini

– ORDImageSignature: un’istanza rappresenta le feature (signature) associate ad un’immagine

174

Tipi di dato

+ attributi strutturali

features

ORDImage

ORDImageSignature

ORDSource

Page 59: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

59

175

Esempio

� Si supponga di volere creare una tabella contenente delle fotografie� in particolare la tabella deve contenere:

– id fotografia– nome fotografo– descrizione fotografia– la fotografia

� una possibile dichiarazione di questa tabella è la seguente:CREATE TABLE stockphotos (

photo_id NUMBER, photographer VARCHAR(64), annotation VARCHAR(255), photo ORDImage, photo_sign ORDImageSignature);

176

ORDImage - attributi

177

ORDImage - Attributi

Page 60: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

60

178

ORDImage - Costruttori

� Init()– immagine memorizzata internamente

� inizializza l’oggetto ponendo tutti gli attributi a NULL esclusi:

– source.localdata=empty_blob()– source.local = 1 (indica che l’immagine è caricata nel file

system locale)– source.updateTime = SYSDATE

� Esempioinsert into stockphotos (1, “John Ross”, NULL, OrdImage.init());

179

ORDImage - Costruttori

� Init( srcType IN VARCHAR2srcLocation IN VARCHAR2, srcName IN VARCHAR2)

– immagine memorizzata all’esterno

� inizializza l’oggetto ponendo tutti gli attributi a NULL esclusi:

– source.localdata=empty_blob()– source.local = 0 (indica che l’immagine si assume

memorizzata nel file system esterno)– source.updateTime = SYSDATE– source.srcType, source.srcLocation, srcName, posti uguali ai

valori in input

180

ORDImage - esempio

� Esempio– insert into stockphotos (1, “John Ross”, NULL,

ORDImage.init(‘FILE’,’MY_IMAGES,’image1.gif’));

Page 61: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

61

181

ORDImage - Caricamento

� I costruttori effettuano solo l’inizializzazione degli attributi ma non caricano l’immagine nel campo BLOB

� nel caso in cui si intenda copiare l’immagine nel DBMS, sono previsti metodi per il caricamento (e di esportazione)

� MEMBER PROCEDURE importFrom(ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2,source_name IN VARCHAR2)

� RAW: dati che non vengono interpretati da Oracle (simile a LOB), utilizzato durante il caricamento, come “buffer” temporaneo

� Aggiorna source– il file viene caricato in localData e local viene posto a 1– inizializzati tutti gli altri campi con valori in INPUT

182

Esempio - caricamento dati nel DBMS

DECLAREImage ORDSYS.ORDImage;ctx RAW(4000) := NULL;BEGIN

INSERT INTO stockphotos VALUES (1,’John Doe’, red plaid,ORDSYS.ORDImage.init(),ORDSYS.ORDImageSignature.init());

SELECT photo INTO Image FROM stockphotosWHERE photo_id = 1 for UPDATE;Image.importFrom(ctx, ’file’,’ORDIMGDIR’,’redplaid.gif’);…UPDATE stockphotos SET photo = Image WHERE photo_id = 1;COMMIT;

END;

FOR UPDATE: lock sulla tupla

183

Esempio - riferimento esterno

DECLAREImage ORDSYS.ORDImage;BEGIN

INSERT INTO stockphotos VALUES (1,’John Doe’,’red plaid’,ORDSYS.ORDImage.init(’file’,’ORDIMGDIR’,’redplaid.gif’),ORDSYS.ORDImageSignature.init());

SELECT photo INTO Image FROM stockphotosWHERE photo_id = 1 FOR UPDATE;… aggiornamento info immagine ...UPDATE stockphotos SET photo = Image WHERE photo_id = 1;COMMIT;END;

Page 62: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

62

184

ORDImage- Metodi per la manipolazione

� Si dividono in diversi gruppi tra cui:– metodi di copia– metodi di processamento– metodi di settaggio attributi– metodi di accesso agli attributi (circa uno per

attributo)

185

Metodi di manipolazione

� Metodo di copia:– Copy (dest IN OUT ORDImage)– copia l’immagine in dest, inclusi i valori di tutti gli

attributi

� metodi di processamento:– process(command IN VARCHAR2)– command rappresenta una lista di tecniche di image

processing da applicare alle immagini� esempio: cambiamento scala

186

Metodi di manipolazione

� Metodi di settaggio attributi:– setProperties()– determina i valori per gli attributi di ORDImage,

escluso source– importFrom() chiama direttamente setProperties– da chiamare manualmente negli altri casi

� Metodi di accesso:– circa uno per ogni attributi (si veda il manuale)– getHeight() RETURN INTEGER– restituisce il valore associato all’attributo HEIGHT

Page 63: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

63

187

Esempio

DECLAREImage ORDSYS.ORDImage;BEGIN

INSERT INTO stockphotos VALUES (1,’John Doe’,’red plaid’,ORDSYS.ORDImage.init(’file’,’ORDIMGDIR’,’redplaid.gif’),ORDSYS.ORDImageSignature.init());

SELECT photo INTO Image FROM stockphotosWHERE photo_id = 1 FOR UPDATE;Image.setProperties();UPDATE stockphotos SET photo = Image WHERE photo_id = 1;COMMIT;END;

188

ORDImageSignature

� Rappresenta le feature calcolate a partire da un’immagine

� l’insieme delle features viene chiamato signature– unico attributo, di tipo BLOB

189

ORDImageSignature - segnatura

� La segnatura contiene le seguenti features:– color: distribuzione di colore nell’immagine– texture– shape: rappresenta gli oggetti (tipicamente forme geometriche)– location: tiene conto della posizione delle shape nell’immagine e della

distribuzione del colore

� I valori associati alle precedenti proprietà rappresentano un punto: multidimensionale

� la somma di tali valori per un’immagine è 100

Page 64: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

64

190

ORDImageSignature - segnatura

� Image1 e Image2 sono simili rispetto al coloreglobale ma non rispetto alla locazione

191

ORDImageSignature - segnatura

192

ORDImageSignature - metodi

� inizializzazione:– metodo init()

� generazione segnatura:– metodo generateSignature(ORDImage)

� altri che non vediamo

Page 65: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

65

193

Esempio

DECLAREt_image ORDSYS.ORDImage;image_sig ORDSYS.ORDImageSignature;

BEGINSELECT photo, photo_sig INTO t_image, image_sigFROM stockphotosWHERE photo_id=1 FOR UPDATE;image_sig.generateSignature(t_image);UPDATE stockphotos SET photo_sig = image_sig WHERE photo_id =1;

END;

194

Caricamento completo immagine

� In Oracle, un’immagine è rappresentata secondo tre componenti:

– immagine stessa (BLOB o BFILE)� se la si vuole trattare come BFILE, l’operazione di inizializzazione

initFrom() è sufficiente ad inizializzare l’immagine� se la si vuole trattare come BLOB, è necessario prima

inizializzarla e poi importarla (init() + importFrom())

– attributi descrittivi� determinati con metodo setProperties()

– segnatura� calcolata con metodo generateSignature()

195

Indici

� La creazione degli indici non è immediata� Esempio: per creare un indice sull’attributo

photo della tabella stockphotograph:

CREATE INDEX imgindex on stockphotograph(photo.signature)

INDEXTYPE IS ORDSYS.ORDImageIndex;

Page 66: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

66

196

Interrogazioni

� Due operatori (non metodi) principali:– IMGsimilar: prese due segnature, stabilisce se sono

simili, confrontando le segnature– IMGscore: restituisce il valore di similarità per due

segnature

197

IMGSimilar

� IMGSimilar( signature IN RAW,querysignature IN RAW,weightstring IN VARCHAR2,threshold in FLOAT,[referencetoScore IN NUMBER])

� weightstring ha la forma– ‘color = “val” texture = “val” shape = “val” location = “val”’

dove val è un valore tra 0 e 1 che “pesa” una certa feature

198

IMGSimilar

� l’operatore calcola la media delle distanze di ogniproprietà considerata, pesandola rispetto ai pesispecificati in weightstring

� restituisce 1 se la distanza è minore di threshold (valore tra 0 e 100)

– 0 distanza minima (similarità massima)

� referencetoScore assegna un identificatore allachiamata della funzione

� potrà poi essere utilizzato nella chiamata dellafunzione VIRScore, nel contesto della stessa query

Page 67: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

67

199

IMGScore

� IMGScore(referencetoSimilar IN NUMBER)� la query che invoca questo metodo deve anche

invocare IMGSimilar– posso calcolare lo score solo se ho determinato

quali oggetti sono simili

� referencetoSimilar è un intero che rappresental’identificatore di una chiamata a IMGSimilar

� lo score viene calcolato rispetto agli oggetti suiquali è stata applicata IMGSimilar

200

Esempio

� Supponiamo di volere determinare tutte le fotografiesimile ad una fotografia F data

� nel determinare la similitudine, vogliano attribuire un peso maggiore al colore, in particolare vogliamo fissarei pesi come segue:

– color = 0.6– texture = 0.2– shape = 0.1– location = 0.1

� vogliano inoltre fissare un threshold a 50� vogliamo restituire gli identificatori delle fotografie che

soddisfano la query insieme allo score calcolato

201

Esempio (continua)

� Supponendo di considerare una variabile– F ORDImageSignature

� ecco la query:SELECT photo_id,ORDSYS.IMGScore(12)FROM stockphotosWHERE ORDSYS.IMGSimilar(photo_sig,F,‘color = “0.6” texture = “0.2” shape = “0.1” location = “0.1” ‘ , 50, 12) = 1

Page 68: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

68

202

Esempio (continua)

� Si consideri adesso un’immagine con le seguenti distanze dallefeature della query:

– texture = 5– color = 90– shape = 50– location = 15

� la distanza è calcolata come segue:– 0.1 * 15 + 0.6 * 90 + 0.2 * 5 + 0.1 * 50 = 61.5

� poiché il threshold è 50, questa immagine non verrebbe restituita� supponiamo adesso di invertire i valori associati al colore e alla

locazione, la distanza diventa:– 0.6 * 15 + 0.1 * 90 + 0.2 * 5 + 0.1 * 50 = 24.0

� in questo caso l’immagine verrebbe restituita

203

Top-N

SELECT A1,…,AnFROM

(SELECT A1,…,Am,RANK() OVER(ORDER BY Ai ASC,

ORDER BY Aj DESC) AS rank

FROM …WHERE ...)

WHERE rank <= N;� permette di ordinare i risultati e restituire solo i primi N

rispetto all’ordinamento prescelto

204

Esempio (continua)

� Supponiamo di volere determinare la fotografica più simile a FSELECT photo_idFROM

(SELECT photo_id,ORDSYS.IMGScore(12), RANK() OVER (ORDER BY ORDSYS.IMGScore(12) ASC) AS rank;

FROM stockphotosWHERE ORDSYS.IMGSimilar(photo.signature,query.signature,‘color = “0.6”

texture =“0.2” shape = “0.1” location = “0.1”,50, 12) = 1)WHERE rank = 1;

Page 69: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

69

205

Esempio

� Si consideri la tabella Panorami, memorizzata in una base di dati Oracle 9i. Tale tabella contiene i seguenti campi:

– Id, di tipo NUMBER– Nome, di tipo VARCHAR(30)– Descrizione, di tipo VARCHAR(200)– Panorama, di tipo ORDSYS.ORDImage– Panorama_sign ORDSYS.ORDImageSignature

206

Esempio (continua)

Si supponga di volere inserire nella tabella la seguente tupla:Id = 1Nome = “Genova3”

Descrizione = “Il porto antico di notte”Panorama = “GePA.gif”

Il file GePA.gif risiede nella directory “Immagini”. L’immagine sorgente deve inoltre essere gestita come BLOB.

Presentare lo statement SQL per l’inserimento della tupla ed indicare quali metodi dovranno essere successivamente invocati per gestire l’immagine come BLOB e perché.

207

Esempio (continua)

INSERT INTO ImmaginiVALUES(1, “Genova3”,”Il porto antico di notte”,ORDSYS.ORDImage.init(),

ORDSYS.ORDImageSignature.init());

SELECT Panorama, Panorama_sign INTO Image, sign FROM PanoramiWHERE id = 1 for UPDATE;

Image.importFrom(ctx, ‘FILE’,’IMMAGINI’,’GePA.gif’);

sign.generateSignature(Image);

UPDATE Panorami SET Panorama = Image, Panorama_sign = signWHERE id = 1;

Page 70: Basi di dati multimediali - person.dibris.unige.it fileIndici: – come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti 6 Rappresentazione Un oggetto multimediale

70

208

Esempio (continua)

• Determinare tutti i panorami simili a “query_pan”, considerando solo il colore. Restituire i nomi delle immagini e lo score.

SELECT Nome,ORDSYS.IMGScore(12)

FROM PanoramiWHERE

ORDSYS.IMGSimilar(panorama_sign,query_pan,‘color = “1” texture =“0” shape = “0” location = “0” ‘, 10, 12) = 1

� la scelta di un threshold del 10% mi permette di selezionare solo le immagini molto simili a quella data

209

Esempio (continua)

Si supponga che per l’immagine GePA.gif siano state calcolate le seguenti distanze rispetto a “query_pan” :

• color = 40

• texture = 30• shape = 20• location = 30

Stabilire se l’immagine GePa.gif verrà restituita dall’interrogazioni I

40 * 1 = 40 quindi l’immagini non viene restituita