Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali. MMDBMS: aspetti da considerare. MMDBMS: aspetti da considerare

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali. MMDBMS: aspetti da considerare. MMDBMS: aspetti da considerare"

Transcript

1 Basi di dati multimediali 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) 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 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 4 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? 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 5 Analizzeremo solo i primi due aspetti 6 1

2 Rappresentazione 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 Oggetto multimediale DBMS LOB riferimento Oggetto multimediale 7 8 Rappresentazione - LOB 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 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 9 10 Rappresentazione - ORDBMS Rappresentazione 11 Gli ORDBMS forniscono inoltre nuovi tipi di dato 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 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 2

3 Rappresentazione Rappresentazione - esempio 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 Attributi descrittivi nome: Villa Medici località:roma Features: forma: Rappresentazione Rappresentazione Oggetti multimediali Generazione metadati (automatica + manuale) Features + attributi I sistemi mettono a disposizione funzionalità per estrarre feature e per utilizzare tali feature nel contesto delle interrogazioni 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 Query processing: idea di base Query processing: caratteristiche 17 Oggetti multimediali Meccanismo di interrogazione Generazione metadati 2 3 Features + attributi 1. La query viene eseguita sui metadati (attributi + features) 2. dai metadati si risale ai documenti originali 3. i documenti originali vengono restituiti all utente Le query devono potere essere eseguite su diversi tipi di media contemporaneamente 2. devono considerare attributi e features 3. devono supportare query per similitudine 4. devono associare un valore di rilevanza ad ogni oggetto restituito 5. devono poter essere pesate 3

4 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) 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 abbiamo trovato 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 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 Query pesate Approcci alla specifica delle query 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 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

5 Nel seguito... Considereremo due media: testo immagini per ciascuno illustreremo rappresentazione del contenuto query in alcuni sistemi Basi di dati testuali Basi di dati testuali Scopo 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 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 Criteri di valutazione Criteri di valutazione 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 Rilevanti Restituiti Non rilevanti restituiti Rilevanti Non restituiti Non rilevanti Non restituiti Documenti contenuti nel database

6 Criteri di valutazione: richiamo Il potere di richiamo è la percentuale di documenti rilevanti restituiti rispetto al totale di documenti rilevanti presenti nel sistema Rilevanti Restituiti Richiamo = Totale Rilevanti 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 Criteri di valutazione: Precisione La precisione è la percentuale di documenti rilevanti sul totale dei documenti restituiti Precisione = Rilevanti Restituiti Totale Restituiti 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 Rappresentazione di documenti testuali 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

7 Uso dei termini indice Modelli Classici Concetti Base Docs Information Need Index Terms doc match Ranking 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 37 query 38 Modelli Classici Concetti Base Sia K un insieme di termini indice con cardinalita t k i un termine indice in K d j un documento w ij il peso associato a k i nel documento d j w ij quantifica l importanza dell indice k i per descrivere il contenuto informativo del documento d j w ij = 0 indica che k i non compare in d j Modelli Classici Concetti Base vec(d j ) = (w 1j, w 2j,, w tj ) è il vettore di pesi associati al documento dj, dove t è la cardinalita di K g i (vec(d j )) = w ij è una funzione che restituisce il peso di k i nel documento d j Modelli Classici Concetti Base 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: 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)

8 Modello booleano: i pesi E un modello semplice basato sulla teoria degli insiemi I pesi assumono valori binari: w ij ε {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: 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) Modello Booleano: le interrogazioni Per garantire uniformita di rappresentazione, le interrogazioni vengono 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 K q che compaiono nella query Ogni vettore viene chiamato componenti congiuntive della query q (qcc) 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 K q = (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)} Modello Booleano: similarità Modello Booleano: esempio sim(q,dj) = 1 se vec(qcc) t.c. vec(qcc) vec(qdnf) k i K q g i (vec(d j )) = g i (vec(qcc))) 0 altrimenti q=vec(qdnf) = {(1,1,1), (1,1,0), (1,0,0)} d j = (0,1,0,.) non è rilevante per q anche se contiene il termine kb Un documento viene restituito come risultato di una query solo se la sua similitudine con l interrogazione è pari ad uno d i = (1,1,0,.) è rilevante per q

9 Modello booleano: svantaggi Modello vettoriale 49 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 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 Modello vettoriale: pesi Modello Vettoriale: documenti e interrogazioni Valori contenuti in [0,1] w ij > 0 quando k i d j w iq > 0 quando k i q vec(d j ) = (w 1j, w 2j,..., w tj ) vec(q) = (w 1q, w 2q,..., w tq ) Sia t il numero di termini indice Sia la query che il documento sono vettori in uno spazio t-dimensionale j dj Piu e alto il peso di un termine indice in un documento, tanto meglio il termine rappresenta il documento Θ q i Modello Vettoriale: similarita Modello vettoriale: similarita Similarita calcolata come correlazione tra i vettori vec(d j ) e vec(q) sim(q,d j ) = cos(θ) = [vec(d j ) vec(q)] / vec(d j ) * vec(q) = wij* wiq i 2 2 wij * wiq i i vec(q) non influenza ranking Uguale per tutti i documenti 0 sim(q,d j ) 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

10 55 Modello vettoriale: calcolo dei pesi Quali strategie adottare per computare i pesi w ij e w iq? 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 k i all interno di un documento d j 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 k i tra tutti i documenti considerati 56 Modello vettoriale - pesi + tf(i,j) + k i rilevante per d j + idf(i) - rilevante in generale w ij = tf(i,j) * idf(i) 57 Modello vettoriale Sia: N il numero totale di documenti nel db n i il numero di documenti che contengono k i freq(i,j) la frequenza di k i in d j Il fattore tf normalizzato (f) è: f(i,j) = freq(i,j) / max l=1,...,t (freq(l,j)) il massimo è calcolato su tutti i termini k l che compaiono in d j Il fattore idf è dato da: idf(i) = log (N/n i ) il log è usato per rendere comparabili i valori di tf e idf 58 Modello vettoriale Il metodo più utilizzato è quello di usare come peso: w ij = f(i,j) * log(n/n i ) Tale strategia è chiamata schema di pesatura tf-idf 59 Modello vettoriale Per i pesi da utilizzare nelle interrogazioni, Salton & Bucley propongono w iq = (0.5 + [0.5 * freq(i,q) / max(freq(l,q)]) * log(n/n i ) 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 10

11 Esempio k1 d4 d2 d1 d6 d5 d3 d7 k2 Esempio k1 d4 d2 d1 d6 d5 d3 d7 k2 61 Contenuto celle = freq(i,j) k1 k2 k3 d d d d d d d q k3 62 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: [ ], [ ], [ ], [ ], [ ], [0.56 0] k3 k1 d2 d6 d7 k2 Esempio d4 d1 d5 d3 Esempio 63 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: [ ] k3 64 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 / ( ) =.28 d2:.06 d3:.43 d4:.06 d5:.46 d6:.19 d7:.17 Ranking: d5 >d3>d1>d6>d7>d2=d4 k1 d2 d6 d7 k2 Esempio d4 d1 d5 d3 Modello Probabilistico 65 Pesi documenti e query booleani k1 k2 k3 d d d d d d d q Viene restituito solo d5 66 k3 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 11

12 Modello Probabilistico 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 Data una query q e un documento d j, il modello probabilistico cerca di stimare la probabilità che l utente consideri il documento d j 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 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 Determinazione termini indice Docs Riconoscimento struttura Analisi lessicale stopwords Noun groups stemming Manual indexing struttura Full text Index terms 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) 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

13 Eliminazione delle stopword Normalizzazione (stemming) 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 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 Normalizzazione (stemming) Selezione degli indici Non esiste consenso comune sull utilizzo della fase di normalizzazione Molti Web search engines non usano lo stemming 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 automatico 3. Usando un thesaurus 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. 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

14 Thesaurus Thesaurus: termini indice 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 Ogni termine indice rappresenta un concetto significativo 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 Thesauri: reti semantiche Thesauri: relazione preferenziale 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 La relazione preferenziale rappresenta l equivalenza (sinonimia) tra termini: SP (sinonimo preferenziale) USA (è il contrario di SP) Allievo SP Alunno Alunno USA Allievo Thesauri: relazione gerarchica Thesauri : relazione associativa 83 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 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 14

15 Thesauri: reti semantiche Interrogazioni 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 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 Interrogazioni su stringhe Interrogazioni booleane 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) 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) Indice inverso 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 termine documenti a 1,3,4,6,7 b 1,7 c 3,7 d 4,

16 Indici inversi Sistemi di IR: esempi 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 DIALOG Corporation: offre più di 500 sistemi di IR su svariati argomenti, quali scienze, medicina, economia e giornali elettronici ( LEXIS-NEXIS: ambito legale ed economico ( OCLC (the online computer library center) offre l accesso ad 1.5 milioni di articoli ( H.W. Wilson: offre più di 40 sistemi di IR per scuole ed istituzioni pubbliche ( Sistemi di IR: esempi Gestione di testi in Oracle 9i 93 CA SEARCH: Chemical Abstract. Contiene 14 milioni di documenti con una frequenza di aggiornamento di documenti alla settimana MEDLINE: indicizza articoli provenienti da 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 94 Oracle 9i Text permette di indicizzare testi e documenti memorizzati in Oracle 9i, 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 Gestione di testi in Oracle 9i Sviluppo applicazione testuale 95 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 Caricamento documenti indicizzazione interrogazione operatori thesauri 16

17 Esempio Rappresentazione documenti create table docs (id number primary key, text varchar2(80)); insert into docs values (1,'first document'); insert into docs values (2, 'second document'); A B create index doc_index on docs(text) indextype is ctxsys.context; select id from docs where contains(text, 'first') > 0; C Rappresentazione documenti Caricamento 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 Direttamente con statement INSERT SQL Loader procedure ad hoc OCI 99 la tabella deve avere una chiave primaria, utilizzata per identificare i documenti 10 0 Indicizzazione documenti Indice CONTEXT 10 1 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 10 2 Determina i termini indice associati ad ogni documento crea il surrogato organizza il surrogato come indice inverso 17

18 Indicizzazione documenti Indicizzazione documenti 10 3 comando per la creazione di indici create 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 10 4 In generale, il comando di creazione di indice esegue un insieme di processi che creano oggetti intermedi per ogni processo è possibile specificare delle preferenze Indicizzazione documenti 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 Indicizzazione documenti - preferenze 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: 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

19 Indicizzazione documenti - Esempio Indicizzazione documenti - preferenze 10 9 ctx_ddl.create_preference('mypref', 'FILE_DATASTORE'); ctx_ddl.set_attribute('mypref', 'PATH', '/docs'); create index doc_index on docs(text) indextype is ctxsys.context parameters ('datastore mypref'); 11 0 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) Datastore Filter 11 1 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 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 Lexers Stoplist 11 3 BASIC_LEXER: per la maggioranza delle lingue europee, si può modificare il comportamento di default attraverso 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 11 4 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 ridefinire alter index myidx rebuild parameters ('add stopword AND'); stop classes (es. NUMBERS) e stop themes 19

20 Wordlist Section Groups 11 5 non ha effetto sull indicizzazione, ma contiene i setting per 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) 11 6 La classe section group prende un formato di testo (es. XML o HTML) come input e restituisce i section boundaries 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 11 7 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 11 8 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 Section Groups Section groups SPECIAL: non sono riconosciute attraverso tag, ma dal lexer attraverso la punteggiatura SENTENCE PARAGRAPH Vedremo solo queste 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

21 Section Groups - esempio Section Groups - esempio Documento: <A>rat</A><A>ox</A> <B>tiger rabbit</b> <C>dragon<C>snake</C></C> Creazione section group ctx_ddl.create_section_group('mygroup', xml_section_group'); aggiunta sezioni di tipo 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'); Documento plain text Creazione section group ctx_ddl.create_section_group('mygroup', null_section_group'); aggiunta sezioni di tipo SPECIAL ctx_ddl.add_special_section('mygroup', SENTENCE'); 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 12 4 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 Interrogazioni - contains Interrogazioni - scoring 12 5 select id from texttab where 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 12 6 select id, score(1) from texttab where contains(textcol, 'query', 1) > 0 order 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) 21

22 Interrogazioni - scoring Interrogazioni - tipologie 12 7 Modello vettoriale Pesi w ij = 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 12 8 A. Ricerca di documenti che contengono parole 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 certo argomento (ABOUT) Operatori logici, operatori di score Interrogazioni A ricerca atomica per parole o frasi Interrogazioni A - operatori di espansione delle parole 12 9 interrogazioni semplici contains(text, 'dog') > 0 si possono interrogare frasi: contains(text,'dog my cat') > 0 le stopword sono trattate come wildcard (matchano qualsiasi parola) contains(text, 'dog the cat') > 0 restituisce 'dog my cat, 'dog your cat, 'dog the cat' le stopword da sole vengono eliminate dalla query 13 0 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 Interrogazioni A - operatori di prossimità Interrogazioni B - sezioni 13 1 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 13 2 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 ZONE ctx_ddl.add_special_section('mygroup', SENTENCE'); Creazione indice con preferenza create index myindex on docs(text) parameters (section group mygroup) Query di tipo within contains(text, tiger & cat within sentence') > 0 22

23 Interrogazioni B - esempio Interrogazioni B - esempio 13 3 <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 13 4 ogni istanza è considerata distinta: contains(text, '(tiger and rabbit) within bsec') > 0 trova il documento contains(text, '(rat and ox) within asec') > 0 no contains(text, '(dragon and snake) within csec') > 0 sì nel caso di sezioni FIELD il contenuto di diverse istanze viene unito, quindi la seconda query restituirebbe il documento Interrogazioni tematiche C Interrogazioni tematiche C - esempio 13 5 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 13 6 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 Interrogazioni C - Thesaurus Interrogazioni C - Thesaurus 13 7 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 13 8 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 23

24 Interrogazioni C - Thesaurus Interrogazioni C - esempio 13 9 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 14 0 Se la query contiene BT(dog) E nel thesaurus dog viene generalizzato con animal la query viene sostituita con dog OR animal Si veda dopo per il significato di OR Interrogazioni - operatori logici Interrogazioni - operatori logici 14 1 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 14 2 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 punteggi contains(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 Interrogazioni - osservazione Interrogazioni - osservazione 14 3 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 14 4 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 24

25 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 Basi di dati per la gestione di immagini 14 5 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') > Problematiche Rappresentazione 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 immagini Generazione metadati (automatica + manuale) Features + attributi Quali features e attributi? Features Features - shape Forme (shape) l idea è quella di estrarre delle forme dall immagine possono rappresentare contorni o approssimazione di contorni 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 14 9 contorno Approssimazione contorno

26 Features Features 15 1 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 15 2 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à Features Un possibile surrogato per le immagini 15 3 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 15 4 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}) Esempio 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 26

27 Descrittori di proprietà Osservazione 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à 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 Definizione di base di dati di immagini Query per similitudine 15 9 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 16 0 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 Approccio metrico Esempio applicato alle proprietà globali 16 1 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 16 2 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 27

28 Approccio metrico per proprietà locali Approccio metrico per proprietà locali 16 3 La distanza precedente rappresenta la distanza Euclidea 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) = {P 1,,P t } P i = (x i1,,x in ) per determinare se le immagini I 1 e I 2 sono simili in base alla distanza Euclidea: f(i 1 ) = {P 1,,P t } P i = (x i1,,x in ) f(i 2 ) = {Q 1,,Q t } Q i = (y i1,,y in ) d(i 1,I 2 ) = ( i=1,t d (P i,q i )) 1/2 16 d (P i,q i ) = (x i1 -y i1 ) (x in -y in ) 2 4 L approccio metrico richiede che per ogni proprietà locale venga calcolata 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 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 16 Spazio 5 n-dimensionale Spazio s-dimensionale Algo di indiciz. indice DB immagini 16 6 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 sulle shape 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 p3 punti bidimensionali p1 p2 p5 p4 Approccio metrico per proprietà globali In questo caso è possibile passare da n punti a 2 punti considerando il minimo rettangolo che contiene la shape (minimum bounding box - MBB) 2 punti si possono vedere come un punto in uno spazio 4-dimensionale (s = 4) Indicizzazione per shape Algo di indiciz. indice DB immagini 16 7 p1 p2 p3 p5 p shape Approssimazioni shape 28

29 Uso della distanza nelle query Rappresentazione immagini nei DBMS 16 9 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 17 0 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 tool prescelto),per gestire le immagini e per interrogarle Rappresentazione immagini nei DBMS Rappresentazione immagini nei DBMS 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 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 Gestione immagini in Oracle Tipi di dato Ogni oggetto multimediale in Oracle può essere memorizzato, manipolato e interrogato utilizzando un particolare tipo di dato definiti nel package ORDSYS (non indicato nel seguito) Per le immagini ORDSource ORDImage: un istanza è costituita da: + attributi strutturali 17 3 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 17 4 ORDImage features ORDImageSignature 29

30 Esempio ORDImage - attributi 17 5 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); 17 6 ORDImage - Attributi 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 Esempio insert into stockphotos (1, John Ross, NULL, OrdImage.init()); ORDImage - Costruttori ORDImage - esempio 17 9 Init( srctype IN VARCHAR2 srclocation 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 18 0 Esempio insert into stockphotos (1, John Ross, NULL, ORDImage.init( FILE, MY_IMAGES, image1.gif )); 30

31 ORDImage - Caricamento Esempio - caricamento dati nel DBMS 18 1 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 18 2 DECLARE Image ORDSYS.ORDImage; ctx RAW(4000) := NULL; BEGIN FOR UPDATE: lock sulla tupla INSERT INTO stockphotos VALUES (1, John Doe, red plaid, ORDSYS.ORDImage.init(), ORDSYS.ORDImageSignature.init()); SELECT photo INTO Image FROM stockphotos WHERE photo_id = 1 for UPDATE; Image.importFrom(ctx, file, ORDIMGDIR, redplaid.gif ); UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END; Esempio - riferimento esterno ORDImage- Metodi per la manipolazione 18 3 DECLARE Image 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 stockphotos WHERE photo_id = 1 FOR UPDATE; aggiornamento info immagine... UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END; 18 4 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) Metodi di manipolazione Metodi di manipolazione 18 5 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 18 6 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 31

32 Esempio ORDImageSignature 18 7 DECLARE Image 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 stockphotos WHERE photo_id = 1 FOR UPDATE; Image.setProperties(); UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END; 18 8 Rappresenta le feature calcolate a partire da un immagine l insieme delle features viene chiamato signature unico attributo, di tipo BLOB ORDImageSignature - segnatura ORDImageSignature - segnatura La segnatura contiene le seguenti features: color: distribuzione di colore nell immagine texture Image1 e Image2 sono simili rispetto al colore globale ma non rispetto alla locazione 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 è ORDImageSignature - segnatura ORDImageSignature - metodi inizializzazione: metodo init() generazione segnatura: metodo generatesignature(ordimage) altri che non vediamo

Interrogazioni. Interrogazioni keyword based. Interrogazioni keyword based semplici

Interrogazioni. Interrogazioni keyword based. Interrogazioni keyword based semplici Interrogazioni Keyword based Pattern matching Basate sui thesauri Query strutturali Per documenti strutturati (HTML,XML, ) Non le vediamo Dato un modello dei dati, ogni query deve essere tradotta nel modello

Dettagli

Indice inverso per modello booleano

Indice inverso per modello booleano Indice inverso per modello booleano termine documenti a 1,3,4,6,7 b c d 1,7 3,7 4,7 97 Indice inverso per modello vettoriale termine a b c d documenti 1[w],3[w],4[w],6[w],7[w] 1[w], 7[w] 3[w], 7[w] 4[w],

Dettagli

Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali

Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali Basi di dati multimediali 1 Basi di dati multimediali Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: testi arbitrari immagini audio video dati tradizionali (relazionali,

Dettagli

Oracle 9i oracle text

Oracle 9i oracle text Argomenti trattati: Oracle 9i oracle text Rappresentare documenti di testo in un DBMS testuale Gestione di testi in Oracle 9i Corso di Laboratorio di Basi di dati II Autori: Myriam Mapelli, Guido Valente

Dettagli

Modelli di recupero. Modello di recupero booleano

Modelli di recupero. Modello di recupero booleano Modelli di recupero L obiettivo è recuperare i documenti che sono verosimilmente rilevanti all interrogazione. Vi sono vari modelli di recupero, che possono essere suddivisi in due grandi famiglie: exact

Dettagli

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML Librerie digitali Uso di XML per memorizzare i metadati Descrizione generale Ad ogni dato associo un file XML che descrive il contenuto del dato stesso Memorizzo su file system sia il dato sia il file

Dettagli

Sistemi di Elaborazione dell informazione II. Corso di Laurea Specialistica in Ingegneria Telematica II anno 4 CFU Università Kore Enna A.A.

Sistemi di Elaborazione dell informazione II. Corso di Laurea Specialistica in Ingegneria Telematica II anno 4 CFU Università Kore Enna A.A. Sistemi di Elaborazione dell informazione II Corso di Laurea Specialistica in Ingegneria Telematica II anno 4 CFU Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu

Dettagli

LEZIONE BASI DI DATI I 22/10/2008 XML

LEZIONE BASI DI DATI I 22/10/2008 XML LEZIONE BASI DI DATI I 22/10/2008 XML Il linguaggio XML (Extended Markup Language) è uno standard per la strutturazione dei dati sul web. A differenza di html, che è utilizzato per formattare documenti

Dettagli

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti Microsoft Access Nozioni di base Contatti: Dott.ssa Silvia Bonfanti silvia.bonfanti@unibg.it Introduzione In questa lezione vedremo lo strumento Microsoft Access ed impareremo come realizzare con esso

Dettagli

QL (Query Language) Alice Pavarani

QL (Query Language) Alice Pavarani QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione

Dettagli

Librerie digitali. Strumenti di ricerca. Ricerca di informazioni nelle Digital library

Librerie digitali. Strumenti di ricerca. Ricerca di informazioni nelle Digital library Librerie digitali Strumenti di ricerca Ricerca di informazioni nelle Digital library Data un interrogazione da parte di un utente gli strumenti di ricerca permetto di identificare i dati che soddisfano

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

Sistemi di Information Retrieval. Sistemi di. Argomenti della lezione. Informazioni gestite

Sistemi di Information Retrieval. Sistemi di. Argomenti della lezione. Informazioni gestite Argomenti della lezione Sistemi di Information Retrieval Caratteristiche generali di un sistema di IR Informazioni gestite: informazione in un documento (contenuto, struttura, metadati) Modalità di interazione

Dettagli

Modelli di IR. Modello di IR: definizione generale. Modello di IR: definizione generale. Una tassonomia dei modelli di IR

Modelli di IR. Modello di IR: definizione generale. Modello di IR: definizione generale. Una tassonomia dei modelli di IR Modello di IR: definizione generale Modelli di IR Un modello di IR caratterizza formalmente il processo di IR: Def: Un modello di IR è una quadrupla [D,Q,F,R(q i,d j )] dove: D è un insieme di viste logiche,

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Sesta parte Interrogazione di una

Dettagli

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Introduzione alla Gestione dei Dati Prof. Alberto Postiglione

Dettagli

INTRODUZIONE AI DBMS

INTRODUZIONE AI DBMS Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Introduzione alla Gestione dei Dati Prof. Alberto Postiglione

Dettagli

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

Dettagli

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ PATENTE EUROPEA DEL COMPUTER 5.0 MODULO 5 Database (Microsoft Access 2007) Parte 3 A cura di Mimmo Corrado Gennaio 2012 MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ Il Modulo 5, richiede che il candidato

Dettagli

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO V. DATABASE: Il modello relazionale CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono

Dettagli

Indici non tradizionali. Indici non tradizionali. Indici bitmap. Indici bitmap. Indici bitmap. Indici bitmap - esempio

Indici non tradizionali. Indici non tradizionali. Indici bitmap. Indici bitmap. Indici bitmap. Indici bitmap - esempio Indici non tradizionali Indici non tradizionali Nel seguito introdurremo tre particolari tipi di indici: indici bitmap: permettono di valutare efficientemente condizioni multiple indici per dati multidimensionali

Dettagli

Informatica e Bioinformatica: Basi di Dati

Informatica e Bioinformatica: Basi di Dati Informatica e Bioinformatica: Date TBD Bioinformatica I costi di sequenziamento e di hardware descrescono vertiginosamente si hanno a disposizione sempre più dati e hardware sempre più potente e meno costoso...

Dettagli

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS INFORMATICA GENERALE DBMS: Introduzione alla gestione dei dati Bibliografia 4 ott 2011 Dia 2 Curtin, Foley, Sen, Morin Vecchie edizioni: 8.4, 8.5, 8.6, 8.7, 8.8 Edizione dalla IV in poi: 6.5, 21.1, 19.4,

Dettagli

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

I DATI E LA LORO INTEGRAZIONE 63 4/001.0 I DATI E LA LORO INTEGRAZIONE 63 4/001.0 L INTEGRAZIONE DEI DATI INTEGRAZIONE DEI DATI SIGNIFICA LA CONDIVISIONE DEGLI ARCHIVI DA PARTE DI PIÙ AREE FUNZIONALI, PROCESSI E PROCEDURE AUTOMATIZZATE NELL AMBITO

Dettagli

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota Corso di Software di produttività personale e database Ing Pasquale Rota Argomenti I programmi di produttività personale Le basi di dati Fogli elettronici Software di produttività personale e database

Dettagli

Pag Politecnico di Torino 1

Pag Politecnico di Torino 1 Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G D B M G2 Organizzazione fisica dei dati All interno di un DBMS relazionale,

Dettagli

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

Dettagli

CAPITOLO 3 - ALGORITMI E CODIFICA

CAPITOLO 3 - ALGORITMI E CODIFICA FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)

Dettagli

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica D B M G 2 Pag. 1 2007 Politecnico di Torino 1 D B M G Organizzazione

Dettagli

SQL: le funzioni di aggregazione

SQL: le funzioni di aggregazione SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

PRODOTTO CARTESIANO Caso Generale

PRODOTTO CARTESIANO Caso Generale PRODOTTO CARTESIANO Caso Generale Vincoli di integrità dei dati Un database non deve solamente memorizzare i dati, ma garantire che i dati memorizzati siano corretti; se i dati sono imprecisi o incoerenti,

Dettagli

PIL Percorsi di Inserimento Lavorativo

PIL Percorsi di Inserimento Lavorativo PIL - 2008 Percorsi di Inserimento Lavorativo Basi di Dati - Lezione 2 Il Modello Relazionale Il modello relazionale rappresenta il database come un insieme di relazioni. Ogni RELAZIONE è una tabella con:

Dettagli

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla

Dettagli

record a struttura fissa

record a struttura fissa Modello Relazionale E un modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO

Dettagli

Interpretazione delle query nidificate

Interpretazione delle query nidificate Interpretazione delle query nidificate Per analizzare il risultato di una interrogazione nidificata si può supporre di valutare prima il risultato dell interrogazione nidificata (query interna) per poi

Dettagli

CORSO ACCESS PARTE IV

CORSO ACCESS PARTE IV Creazione di un database / gestione tabelle Per creare un nuovo database Menu File Selezionare Nuovo Scegliere Database vuoto nella scheda Generale e confermare con Ok Impostare il nome e il percorso nella

Dettagli

Gestione di basi di dati relazionali con SQL (parte I) Linguaggi per basi di dati

Gestione di basi di dati relazionali con SQL (parte I) Linguaggi per basi di dati Gestione di basi di dati relazionali con SQL (parte I) Gian Pietro Picco Dipartimento di Elettronica e Informazione Politecnico di, Italy picco@elet.polimi.it http://www.elet.polimi.it/~picco Linguaggi

Dettagli

I SISTEMI DI RECUPERO DELL INFORMAZIONE

I SISTEMI DI RECUPERO DELL INFORMAZIONE I SISTEMI DI RECUPERO DELL INFORMAZIONE Sistemi specializzati nella gestione di documenti di testo e nel recupero in base al loro contenuto Sempre più spesso i documenti nascono direttamente in forma elettronica

Dettagli

SQL - Sottointerrogazioni correlate

SQL - Sottointerrogazioni correlate SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno GESTIONE DEI DATI

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno GESTIONE DEI DATI INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : INTRODUZIONE ALLA : INTRODUZIONE ALLA GESTIONE DEI DATI DBMS: Introduzione alla gestione dei

Dettagli

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check

Dettagli

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni Tecnologie per il web e lo sviluppo multimediale Rappresentazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina

Dettagli

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1 I.I.S. G. COSSALI - ORZINUOVI DATABASE Marzo 2017 Prof. Dario Tomasoni 1 IMPOSTAZIONE 60 min = Database concetti + Esercizi; 10 min = pausa; 30 min = Linguaggio SQL; 30 min = Database prove LibreOffice

Dettagli

Modello Relazionale. Schemi. Schemi. Schemi. In ogni base di dati si possono distinguere: Es. (relazioni INSEGNAMENTO e MANIFESTO)

Modello Relazionale. Schemi. Schemi. Schemi. In ogni base di dati si possono distinguere: Es. (relazioni INSEGNAMENTO e MANIFESTO) Modello Relazionale Modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO

Dettagli

Modelli di Information Retrieval

Modelli di Information Retrieval Modelli di Information Retrieval Roberto Basili Basi di Dati Distribuite a.a. 2004-2005 1 Documenti, Informazioni e Struttura 2 Modelli di Retrieval Un modello di IR specifica (almeno) : Rappresentazione

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Linguag gi, Codifica e Rappresentazione dell Informazione P r o f. R a f fa e l e P i z zo l a n t e A. A. 2 0 1 6 / 1 7 Cosa abbiamo visto la volta scorsa Gli elaboratori sono

Dettagli

Select From Where...

Select From Where... Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle

Dettagli

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

Dettagli

Access. P a r t e t e r z a

Access. P a r t e t e r z a Access P a r t e t e r z a 1 Query: Concetti generali (2) Query 1 Tabella Query 2 Le query rappresentano viste differenti sul DB (possono coinvolgere una o più tabelle) 2 Creazione (1) Diverse possibilità,

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML

Dettagli

Basi di dati (Sistemi Informativi)

Basi di dati (Sistemi Informativi) Basi di dati (Sistemi Informativi) teoria e pratica con Microsoft Access Basi di dati Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche

Dettagli

MS Access: Tutorial Tabelle, Relazioni

MS Access: Tutorial Tabelle, Relazioni Università Magna Graecia di Catanzaro Informatica MS Access: Tutorial Tabelle, Relazioni Docente : Alfredo Cuzzocrea e-mail : cuzzocrea@si.deis.unical.it Tel. : 0984 831730 Microsoft Access Tutorial Tabelle,

Dettagli

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,

Dettagli

Organizzazione Fisica dei Dati (Parte II)

Organizzazione Fisica dei Dati (Parte II) Modello Fisico dei Dati Basi di Dati / Complementi di Basi di Dati 1 Organizzazione Fisica dei Dati (Parte II) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Modello Fisico

Dettagli

La gestione delle interrogazioni

La gestione delle interrogazioni La gestione delle interrogazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Esecuzione e ottimizzazione delle query Un modulo del DBMS Query processor

Dettagli

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query Corso di Access Modulo L2 A (Access) 2.3.1 Le query 1 Prerequisiti Concetto di database relazionale Utilizzo elementare del computer Concetti fondamentali di basi di dati Interrogazione di un DB 2 1 Introduzione

Dettagli

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Databases Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Indici Un indice consiste di coppie e supporta l efficiente recupero di tutte le etichette con chiave

Dettagli

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni

Dettagli

Altri Modelli di Information Retrieval

Altri Modelli di Information Retrieval Altri Modelli di Information Retrieval Fuzzy IR Modello Booleano Esteso Roberto Basili Basi di Dati Distribuite a.a. 2004-2005 1 Modelli Insemistici Il modello booleano e semlice ed elegante ma imone un

Dettagli

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL Manuale Comandi SQL Sito per esercitarsi (on line)... 1 SQL... 1 Convenzioni e simboli usati... 2 Query Language... 2 Comando Select... 2 Order By:... 3 Sintassi generale:... 3 Ordinamanto su PIU campi...

Dettagli

La memorizzazione dei dati e delle istruzioni

La memorizzazione dei dati e delle istruzioni La memorizzazione dei dati e delle istruzioni La più piccola unità di informazione memorizzabile (e quindi utilizzabile) è il bit (Binary digit), che può assumere valore 0 o 1. Il dispositivo utilizzato

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Esercitazione PostgreSQL Dopo aver lanciato il client grafico pgadmin III di PostgreSQL svolgere le operazioni descritte nel seguito, tenendo presenti i suggerimenti forniti

Dettagli

UD U.D. 1 : Introduzione ai

UD U.D. 1 : Introduzione ai UD U.D. 1 : Introduzione ai DataBase Prof. Giuseppe Di Capua Generalità e definizione i i di un Data Base Introduzione In ogni modello di organizzazione della vita dell uomo vengono trattate INFORMAZIONI

Dettagli

Fasi di un Compilatore

Fasi di un Compilatore Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore

Dettagli

Dizionari Liste invertite e Trie

Dizionari Liste invertite e Trie Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi

Dettagli

La codifica del testo

La codifica del testo La codifica delle informazioni Informatica e sistemi di elaborazione delle informazioni La codifica delle informazioni Informatica e sistemi di elaborazione delle informazioni I slide Informatica e sistemi

Dettagli

INTRODUZIONE ALL INFORMATION RETRIEVAL

INTRODUZIONE ALL INFORMATION RETRIEVAL 1 INTRODUZIONE ALL INFORMATION RETRIEVAL CORSO DI WEB MINING & RETRIEVAL, A.A. 2015-16 Roberto Basili 2 Outline Accesso e Ricerca delle informazioni distribuite Il processo di base dell IR Rilevanza Applicazioni

Dettagli

IL LINGUAGGIO SQL LE BASI

IL LINGUAGGIO SQL LE BASI IL LINGUAGGIO SQL LE BASI DB DI RIFERIMENTO PER GLI ESEMPI 2 ESPRESSIONI NELLA CLAUSOLA SELECT La SELECT list può contenere non solo attributi, ma anche espressioni: Le espressioni possono comprendere

Dettagli

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo. Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Basi di dati: introduzione 2 Introduzione Gestione delle informazioni Basi di dati / DBMS Modello dei

Dettagli

Esercitazione 4 SQL: cataloghi e viste

Esercitazione 4 SQL: cataloghi e viste Esercitazione 4 SQL: cataloghi e viste Sistemi Informativi T Versione elettronica: L04.CatView.pdf Cataloghi di sistema Sono insieme di tables e views che descrivono la struttura logica e fisica degli

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Business Intelligence per i Big Data

Business Intelligence per i Big Data Business Intelligence per i Big Data Esercitazione di laboratorio N. 6 (Prima parte) Dati strutturati Il dataset denominato UsersSmall (UsersSmall.xls) è disponibile sul sito del corso (http://dbdmg.polito.it/wordpress/teaching/business-intelligence/).

Dettagli

FUNZIONI BOOLEANE. Vero Falso

FUNZIONI BOOLEANE. Vero Falso FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

Analizzatori Lessicali con JLex. Giuseppe Morelli

Analizzatori Lessicali con JLex. Giuseppe Morelli Analizzatori Lessicali con JLex Giuseppe Morelli Terminologia Tre concetti sono necessari per comprendere la fase di analisi lessicale: TOKEN: rappresenta un oggetto in grado di rappresentare una specifica

Dettagli

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione

Dettagli

Informatica Grafica. Basi di dati parte 2

Informatica Grafica. Basi di dati parte 2 Informatica Grafica Corso di Laurea in Ingegneria Edile Architettura Basi di dati parte 2 Michele Lombardi su materiale originario di Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica

Dettagli

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project Database and data mining group, SQL Server 2005 Integration Services SQL Server 2005: ETL - 1 Database and data mining group, Integration Services Project Permette di gestire tutti i processi di ETL Basato

Dettagli

Notazione e convenzioni in questi lucidi

Notazione e convenzioni in questi lucidi Notazione e convenzioni in questi lucidi Il programma, ovvero la descrizione della funzione da calcolare, è scritto dall utente come una sequenza di caratteri. le sequenze di caratteri sono anche dette,

Dettagli

La connessione ai database MySQL tramite script PHP versione 5.5

La connessione ai database MySQL tramite script PHP versione 5.5 La connessione ai database MySQL tramite script PHP versione 5.5 Php è un linguaggio di scripting che estende le funzionalità del server Web, mentre MySQL è un programma server che si occupa della gestione

Dettagli

SQL DDL. Create database. Alter database. Drop database

SQL DDL. Create database. Alter database. Drop database SQL In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: creare e modificare schemi

Dettagli

Reperimento dell'informazione

Reperimento dell'informazione Reperimento dell'informazione Strumenti per il reperimento Indicizzazione e recupero Modelli di reperimento Motori di ricerca FdI 2013/2014 GMDN 2014 1 Reperimento dell'informazione FdI 2013/2014 GMDN

Dettagli

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language) o o o o o DDL (Data Definition Language): consente di creare e modificare schemi di database; DML (Data Manipulation Language): consente di inserire, modificare e gestire i dati memorizzati; DQL (Data

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

Dettagli

Matematica, Informatica e Discipline Umanistiche. Salvatore Venticinque

Matematica, Informatica e Discipline Umanistiche. Salvatore Venticinque Matematica, Informatica e Discipline Umanistiche Salvatore Venticinque salvatore.venticinque@unina2.it Distanze siderali: un luogo comune Odio l'italiano Sono Negato per la matematica Forma mentis, predisposizione?

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

Biblioteche Digitali Audiovisive

Biblioteche Digitali Audiovisive Capitolo 9 Biblioteche Digitali Audiovisive 9.1 Introduzione I documenti audiovisivi rappresentano un importante sfida per gli sviluppatori di biblioteche digitali. Infatti, questi contenuti sono caratterizzati

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli