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

Documenti analoghi
Pag Politecnico di Torino 1

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

XPATH e XQUERY. Linguaggi di query XML. Esempio di DTD. Esempio di documento. XPATH e un linguaggio per descrivere percorsi (path) in documenti XML.

Definizione di file. Directory e file File binari e file di testo

BASI DATI: algebra relazionale

Estensioni del linguaggio SQL per interrogazioni OLAP

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

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

DATABASE.

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

Informatica per le Scienze Umane. Introduzione al corso: programma

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Ipotesi sull'applicazione del modello relazionale a corpora linguistici

Elementi di gestione di dati con MS Access 2000

Analysis Service. Dutto Riccardo IPSI - tel Dutto Riccardo - SQL Server 2008.

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

La gestione delle interrogazioni

Il modello relazionale

Data warehouse in Oracle

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

Il linguaggio SQL: query innestate

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Sommario. Introduzione... 13

Librerie digitali. Cos è una libreria digitale? Introduzione. Cos è una libreria digitale? Cos è una libreria digitale? Cos è una libreria digitale?

SQL - Sottointerrogazioni

Le basi di dati. Le basi di dati. dalla teoria all'utilizzo di tutti i giorni. Alessandro Tanasi

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

Informatica e Bioinformatica: Basi di Dati

DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:

Elena Baralis 2007 Politecnico di Torino 1

L XML è un linguaggio di markup aperto e basato su testo che fornisce informazioni di tipo strutturale e semantico relative ai dati veri e propri.

I file utente sistema operativo nome

Viste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1.

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO

SMS Gateway - Specifiche WS. Specifica Tecnica

Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Access 2007 Colonna di ricerca

Basi di Dati. Corso di Informatica. Memorizzazione dei Dati. Accesso ai Dati. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

ESAME di INFORMATICA e ARCHIVIAZIONE

CODIFICA IMMAGINI IN BIANCO E NERO

Primi passi col linguaggio C

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Entity Framework & SQL Server - Better Together

Silvia Chiusano, Paolo Garza 1

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

Laboratorio Architettura

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

Cap. 1-I 1 I sistemi informatici

SISTEMI OPERATIVI, RETI, INTERNET

Cap. 1-I 1 I sistemi informatici

Archivi e database. Dato e gli archivi

Lena Cota Guido Corso di Informatica - II livello. File System. File e Cartelle

Come è memorizzato un documento su disco. Dati, formati, metadati. Cosa è un formato. Esempi di formato/1

PROGRAMMA SVOLTO Materia: Informatica Docentte:: PERAZZOLO GIANTONIO

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

Sistema Operativo (Software di base)

Breve Introduzione a XML

Corso di Sistemi di Elaborazione delle informazioni

Somma di numeri binari

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

ArcGIS - ArcView ArcCatalog

Dati semi-strutturati e non strutturati

Servlet & JDBC ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Servlet: interazione con un DBMS. In Java è possibile interagire con un DBMS attraverso

MapServer. Marco Negretti

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Linguaggi di Programmazione

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

MS Access: Tutorial Tabelle, Relazioni

Esercitazione 4: Trigger in DB2

Come è memorizzato un documento su disco. Ogni documento è una sequenza di byte, cioè di numeri interi compresi tra 0 e 255, detti anche caratteri

Database: Introduzione. Basi di Dati e Microsoft Access. Database: Esempio. Informazioni facilmente reperibili

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Prova d Esame Compito A

Stringhe e allocazione dinamica della memoria

Il Sistema Operativo Gestione del File System

Esame Informatica Generale 13/04/2016 Tema A

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket.

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Laboratorio Progettazione Web

Le funzionalità di un DBMS

Schema Del DB Operazionale TELEFONATE

(Lezione SQL 2) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

SISTEMI INFORMATIVI E DATABASE

Alessandra Raffaetà. Esercizio: Cinema

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016

Allegato B Caratteristiche tecniche, funzionali e grafiche del sito internet realizzato

Sistemi Informativi e Basi di Dati

RELAZIONI E BASI DI DATI

1 (6) 2 (7) 3 (7) 4 (7) 5 (6)

Informatica per la Comunicazione/ Verdicchio/ 25/09/2013/ Domande / VERSIONE 1

PROGRAMMAZIONE DISCIPLINARE DIPARTIMENTALEDI INFORMATICA

TRADUZIONE DI SCHEMI

Un file system nasconde la complessità dei diversi media proponendone una astrazione.

Sommario. Introduzione 1. 1 Preparare la presentazione 13. iii

Transcript:

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 XML associato al dato Oppure Memorizzo in un DB multimediale il dato all interno di un attributo (di tipo video, testo,..) e il file XML all interno di un attributo di tipo XMLType Tipo apposito usato per memorizzare e interrogare dati XML Motivi dell uso di XML XML permette il facile scambio di informazioni tra sistemi diversi Interoperabilità tra librerie digitali e strumenti di annotazione e ricerca XML per memorizzare i metadati In un unico file XML rappresento tutti i metadati di un dato grazie alla struttura gerarchica dei file XML Vantaggio Non ho (o non sono obbligato ad avere) file XML separati per i diversi tipi di metadati (singolo valore, multivalore) e per gli oggetti Svantaggio Rischio di ripetere più volte le stesse informazioni Solitamente ho un file XML per ogni dato Esempio di memorizzazione di metadati di testi File XML (che usa un formato non standard) per rappresentare un documento testuale <DescrizioneTesto> <IDT>T1</IDT> <FileContenuto>Testo1.txt</FileContenuto> <Titolo>Titolo doc di prova</titolo> <NumeroPagine>20</NumeroPagine> <Autori> <Autore>Paolo Garza</Autore> <Autore>Silvia Chiusano</Autore> </Autori> Esempio <DescrizioneTesto> <IDT>T2</IDT> <FileContenuto>Testo2.txt</FileContenuto> <Titolo>Titolo doc non significativo</titolo> <NumeroPagine>10</NumeroPagine> <Autori> <Autore>Paolo Garza</Autore> </Autori> 5 6 1

Interrogazione dei file XML Per trovare tutti i dati che hanno certe caratteristiche devo interrogare più file XML Ripeto la stessa interrogazione su ogni file e poi unisco i risultati Oppure uso delle funzioni apposite che eseguono l interrogazione su una collezione di file Non sempre funziona Dipende del motore di interrogazione XQuery utilizzato E dalla eventuale presenza di join tra file XML diversi Esempio di interrogazioni 1. Trovare l identificatore (IDT) di tutti i testi che hanno Paolo Garza come autore 2. Trovare l identificatore (IDT) di tutti i testi che hanno Paolo Garza e Vincenzo D elia come autori 3. Trovare l identificatore (IDT) di tutti i testi che hanno Paolo Garza come autore e sono più lunghi di 5 pagine Interrogazione unica su tutti i file for $i in collection(./filexml )/DescrizioneTesto Stessa interrogazione ripetuta singolarmente su ogni documento XML for $i in doc(./filexml/descrizionetestoxy.xml )/DescrizioneTesto 9 Interrogazione unica su tutti i file for $i in collection(./filexml )/DescrizioneTesto and $i/autori/autore= Vincenzo D Elia Funziona perché Autore è un attributo multivalore Stessa interrogazione ripetuta singolarmente su ogni documento XML for $i in doc(./filexml/descrizionetestoxy.xml )/DescrizioneTesto and $i/autori/autore= Vincenzo D Elia 10 Soluzione interrogazione n 3 Interrogazione unica su tutti i file for $i in collection(./filexml )/ DescrizioneTesto and $i/numeropagine>5 11 Esempio di interrogazione Trovare l identificatore (IDT) di tutti i testi che contengono la parola significativo Se il contenuto è di tipo stringa di caratteri ed è salvato nel file XML allora posso usare XQuery con le estensioni per la ricerca di parole nei testi (valori assunti dai tag) Se invece il testo è in un file esterno allora non mi basta XQuery Mi servono delle funzionalità estese da includere in XQuery per cerca le parole nei testi esterni Non esistono tali funzionalità per XQuery 12 2

Esempio di interrogazioni Esempio di memorizzazione di metadati di immagini 1. Trovare l identificatore (IDT) di tutti i testi che assomigliano al testo Il data mining si occupa di analizzare il contenuto dei dati 2. Trovare l identificatore (IDT) di tutti i testi che assomigliano al testo che ha come IDT il valore T1 Mi serve utilizzare delle funzioni per il confronto tra testi che XQuery non offre Identifico i testi e poi uso uno strumento esterno Soluzione basata sull uso di XML per memorizzare i metadati Ipotetica di voler creare una base di dati per gestire le informazioni relative a delle immagini e ai relativi metadati Voglio memorizzare inoltre gli oggetti presenti nelle diverse immagini e la loro posizione Per semplicità specifico per ogni oggetto qual è la posizione nell immagine del rettangolo più piccolo che contiene interamente l oggetto per fare i confronti 13 14 Esempio (schema non standard) <DescrizioneImmagine> <IDI>I1</IDI> <FileContenuto>Immagine1.jpg</FileContenuto> <Titolo>Panorama di Roma</Titolo> <DimensioneMB>20.5</DimensioneMB> <Autori> <Autore>Paolo Garza</Autore> <Autore>Vincenzo D Elia</Autore> </Autori> <Oggetti> <Oggetto> <Nome>Sole</Nome> <PosizioneAlto><X>10</X><Y>10</Y></PosizioneAlto> <PosizioneBasso><X>15</X><Y>15</Y></PosizioneBasso> </Oggetto>... </Oggetti> </DescrizioneImmagine> Esempio di interrogazioni 1. Trovare l identificatore (IDI) di tutte le immagini che hanno Paolo Garza come autore 2. Trovare l identificatore (IDI) di tutte le immagini che hanno Paolo Garza come autore e sono più piccole di 1MB Soluzioni analoghe a quelle proposte per i testi 15 16 for $i in collection(./filexmlimmagini )/DescrizioneImmagine return $i/idi for $i in collection(./filexmlimmagini )/DescrizioneImmagine and $i/dimensionemb<1 return $i/idi 17 18 3

Esempio di interrogazioni 1. Trovare l identificatore (IDI) di tutte le immagini che hanno Paolo Garza come autore e contengono una barca e l acqua 2. Trovare l identificatore (IDI) di tutte le immagini che contengono una barca sull acqua for $i in collection(./filexmlimmagini )/DescrizioneImmagine and $i/oggetti/oggetto/nome= Barca and $i/oggetti/oggetto/nome= Acqua return $i/idi Mi basta verificare la presenza degli oggetti 19 20 for $i in collection("./filexmlimmagini")/descrizioneimmagine/oggetti /Oggetto[Nome="Barca"] where $i/../../autori/autore="paolo Garza and $i/../oggetto[nome="acqua" and number(posizionealto/x)<=number($i/posizionealto/x) and number(posizionealto/y)<=number($i/posizionealto/y) and number(posizionebasso/x)>=number($i/posizionebasso/x) and number(posizionebasso/y)>=number($i/posizionebasso/y)] return $i/../../idi La necessità di verificare anche la posizione complica la soluzione 21 Esempio di interrogazione Trovare l identificatore (IDI) di tutte le immagini che hanno almeno il 10% dei pixel neri (colore=nero) Se voglio gestire solo il nero associo ad ogni immagine un metadato relativo alla percentuale di pixel neri Se voglio poter fare questa interrogazione per un colore qualunque (non noto in fase di progettazione della base di dati) mi servono delle funzionalità estese che non ho in XQuery 22 Esempio di interrogazione Trovare l identificatore (IDI) di tutte le immagini che assomigliano all immagine presente nel file immagineesempio.jpg passata come parametro all interrogazione Mi serve utilizzare delle funzioni per il confronto tra immagini In XQuery tali funzionalità non esistono Posso lavorare solo sui metadati Uso di DMBS + XMLType Base di dati dotata di un attributo XMLType in cui sono memorizzate le descrizioni XML dei dati Ogni tupla contiene il dato (campo BLOB, immagine, video, testo) e la sua descrizione (campo XMLType) 23 24 4

Salvataggio di testi e metadati Possibile soluzione per il salvataggio di dati e metadati in un DBMS dotato di attributi di tipo XMLType Testo(IDT, Contenuto, Metadati) /* Contenuto = testo Metadati = attributo XMLType contenente un documento XML con i metadati relativi all oggetto presente in Contenuto */ Esempio Testo IDT T1 T2 Contenuto Testo in formato binario o link al file esterno Testo in formato binario o link al file esterno Metadati <DescrizioneTesto>... <DescrizioneTesto>... 25 26 Interrogazioni Combinazione di SQL e XQuery Funzioni per eseguire una interrogazione XQuery sull attributo di una tabella La query viene ripetuta per ogni tupla della tabella Posso verificare per ogni tupla se la query Xquery eseguita ha ritornato oppure no dei risultati e imporre delle condizioni di filtro nella where Non sempre è facile sfruttare al massimo le potenzialità dei due linguaggi quando sono utilizzati insieme Esempio di interrogazioni 1. Trovare l identificatore (IDT) di tutti i testi che hanno Paolo Garza come autore 2. Trovare l identificatore (IDT) di tutti i testi che hanno Paolo Garza e Vincenzo D elia come autori 3. Trovare l identificatore (IDT) di tutti i testi che hanno Paolo Garza come autore e sono più lunghi di 5 pagine 27 28 SELECT IDT FROM Testo WHERE Metadati.exist( /DescrizioneTesto/Autori/Autore= Paolo Garza )=1; La funzione exist eseguita su un campo XMLType restituisce 1 se la query XQuery passata come parametro restituisce un insieme non vuoto in seguito alla sua esecuzione Viene eseguita solo sulla tupla attualmente in esame SELECT IDT FROM Testo WHERE Metadati.exist( for $i in /DescrizioneTesto where $i/autori/autore= Paolo Garza and $i/autori/autore= Vincenzo D\ Elia )=1; 29 30 5

Soluzione interrogazione n 3 SELECT IDT FROM Testo WHERE Metadati.exist( for $i in /DescrizioneTesto where $i/autori/autore= Paolo Garza and $i/numeropagine>5 )=1; 31 6