Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Università degli studi di Modena e Reggio Emilia
Facoltà di Ingegneria – sede di Modena Corso di Laurea in Ingegneria Informatica MOMIS: Progetto e realizzazione di un wrapper per sorgenti di dati in formato RSS Relatore Chiar.mo Prof. Sonia Bergamaschi Correlatore Chiar.mo Prof. Maurizio Vincini Tesi di Laurea di Daniele Grassi Buongiorno a tutti, il mio nome è Daniele Grassi e presento come tesi di laurea triennale in Ingegneria Informatica i risultati del mio lavoro di progetto e sviluppo di un wrapper per MOMIS, dedicato a sovrintendere a sorgenti in formato RSS.
2
Tesi Disponibile su: http://www.dbgroup.unimo.it/tesi/
Indice Il sistema MOMIS Lo standard RSS Il wrapper RSS Esecuzione di query su feed RSS La mia tesi si è sviluppata essenzialmente in quattro fasi: - la prima parte del lavoro è stato incentrato sulla documentazione relativa al funzionamento del sistema MOMIS, all'interno del quale si colloca il mio lavoro di sviluppo. - essendo il mio compito realizzare un wrapper per i dati in formato RSS, la seconda parte del lavoro è consistita nel reperire informazioni riguardanti lo standard RSS stesso. - poi, sulla base delle informazioni raccolte nelle fasi precedenti, sono passato alla progettazione e allo sviluppo del wrapper stesso, realizzato in linguaggio Java. - infine, nell'ultima parte della mia tesi, ho svolto un lavoro di documentazione e di test a riguardo della possibilità di interrogare i feed RSS, con l'obiettivo di raccogliere spunti e indicazioni utili in un futuro ampliamento delle funzionalità del wrapper verso la traduzione delle query e dei risultati delle interrogazioni stesse. Tesi Disponibile su:
3
Il sistema MOMIS (Mediator envirOnment for Multiple Information Sources)
Sistema intelligente di integrazione di informazioni da sorgenti di dati strutturati e semistrutturati Approccio di integrazione semantico e virtuale Innanzitutto diamo un rapido sguardo a MOMIS. Essenzialmente, si può descrivere MOMIS come un Sistema Intelligente di Integrazione di Informazioni da sorgenti di dati strutturati e semistrutturati: il suo sviluppo è cominciato nel all'interno del progetto MURST 40% INTERDATA. In pratica, esso è uno strumento in grado, partendo da più sorgenti di dati eterogenee tra loro, di elaborarle, con minimo intervento da parte dell'operatore, producendo come risultato una vista integrata e virtuale che tiene conto delle similarità e delle differenze nelle strutture delle sorgenti stesse. In parole povere, per descrivere ciò che fa MOMIS, e per capire perchè esso è uno strumento utile, basta pensare al mondo di internet e al reperimento di informazioni all'interno di esso; i dati sono così tanti, ed in formati così eterogenei tra loro, che, nonostante il loro reperimento sia facilissimo, la reale utilità dei dati trovati, e quindi la loro qualità, risulta essere molto bassa; in pratica, risulta difficile districarsi all'interno di così tante informazioni, presentate in modi così differenti tra loro. MOMIS permette, partendo da una serie di sorgenti di dati, di integrare le loro strutture generando una vista globale, ed è in grado, partendo da un'interrogazione eseguita sulla vista globale, di tradurre questa in tante sottoquery da sottoporre alle singole sorgenti nel loro linguaggio di interrogazione. L'approccio di MOMIS al problema dell'integrazione dei dati viene definito semantico poiché viene fatto un largo uso di informazioni semantiche (cioè sul significato) sulle sorgenti al fine di utilizzarle per l'integrazione e per l'ottimizzazione delle interrogazioni, dopo averle tradotte in una logica descrittiva. Inoltre, l'approccio di interrogazione viene definito virtuale poichè, al contrario di altri sistemi inj cui i dati vengono replicati fisicamente presso gli utenti, in MOMIS la vista viene creata virtualmente attraverso la decomposizione della query e l’individuazione delle sorgenti da interrogare
4
L’architettura di MOMIS
L'architettura di MOMIS è stata progettata raccogliendo le indicazioni presentate all'interno del “Programma I3”, progetto nato in seno all'ARPA, mirato ad indicare un’architettura di riferimento per la realizzazione di sistemi in grado di effettuare integrazioni di sorgenti eterogenee in maniera automatica. I componenti principali del sistema MOMIS sono il mediatore e i wrapper. Il mediatore rappresenta il nucleo centrale del sistema, con il compito fondamentale di costruire la vista globale a partire dalle descrizioni locali delle singole sorgenti eterogenee: esso realizza questo compito attraverso il modulo chiamato Global Schema Builder. Inoltre, il mediatore deve gestire le interrogazioni, scomponendole in sotto-query da sottoporre alle singole sorgenti; questo compito è assolto dal modulo Query Manager, che si preoccupa inoltre di ricomporre i risultati provenienti dalle sorgenti in un'unica risposta.
5
Compiti di un wrapper Tradurre la descrizione della sorgente nel linguaggio del mediatore Tradurre l’interrogazione ricevuta dal mediatore in una query in linguaggio locale Trasferire i risultati parziali al mediatore I wrapper invece sono componenti deputati all’estrazione di informazioni dalla sorgente e alla traduzione del suo schema nel linguaggio comune ODLI3: inoltre, essi sono responsabili della traduzione delle sotto-query generate dal mediatore dal linguaggio comune OQLi3 al linguaggio comprensibile dalla sorgente stessa, preoccupandosi poi di trasferire i risultati al mediatore utilizzando il modello di dati comune.
6
Lo standard RSS Formato basato su XML
Obiettivo: distribuzione dei contenuti Ampio utilizzo, soprattutto nel campo delle news Nascita: Netscape, 1999 Sviluppato ulteriormente da Userland Ultima versione: Userland, 2.0.2, gennaio 2003 Passiamo ora a parlare di RSS, il formato di dati che questa tesi vuole rendere disponibile per l'integrazione in MOMIS. RSS è un acronimo per “Really Simple Syndication”, oppure per “Rich Site Summary”, ed è un formato basato su XML, destinato alla distribuzione di contenuti. In parole povere, RSS è un formato per file XML che hanno lo scopo di rendere disponibili agli utenti di internet un rapido strumento per ricevere notifica degli aggiornamenti dei siti preferiti. Un file in formato RSS viene comunemente chiamato feed: possiamo trovare traccia di questi feed su tutti i siti più visitati del mondo di internet, e in generale su tutti quei siti per i quali è utile informare gli utenti della pubblicazione di aggiornamenti: per questo motivo, i feed RSS risultano particolarmente utili ed utilizzati nei siti di informazione. Infatti, in un sito di notizie, i feed RSS possono essere utilizzati, per esempio, per notificare agli utenti la pubblicazione delle nuove notizie. RSS nasce nel 1999, realizzato da Netscape sulla base di un progetto in sviluppo presso la W3C, che era in cerca di un sistema rapido e semplice per la distribuzione dei contenuti. In questa versione, chiamata 0.90, RSS è basato su RDF, un linguaggio di markup. Successivamente, Netscape lo migliorò, rilasciando la versione 0.91; contemporaneamente, Dave Winer, dipendente della Userland, ne rilasciò una versione differente (chiamandola comunque 0.91), rinunciando al formato RDF e rendendo, quindi, RSS più semplice. In seguito, Netscape abbandonò questo formato ritenendolo troppo complesso rispetto ai propri obiettivi; Sempre nel 1999, la W3C rilasciò la versione finale della propria versione di RSS, denominandola RSS 1.0, basata su RDF. Negli anni successivi, Userland continuò lo sviluppo di RSS, rilasiando l'ultima versione nel 2003, denominata RSS
7
Le versioni RSS 0.90 (Netscape, 1999): basato su RDF
0.91 (Userland, 2000): puro XML 0.92 (Userland, 2000): puro XML 0.93 (Userland, 2001): puro XML 1.0 (W3C, 2002): basato su RDF 2.0 (Userland, 2003): puro XML Quindi, si può dire che i rami dello standard RSS sono essenzialmente 2: quello sviluppato da Userland, basato esclusivamente su XML, e quello portato avanti prima da Netscape e poi dal W3C, che invece fa uso di RDF.
8
Distribuzione Versioni RSS
Versione Diffusione 2.0 73,44% 0.91 UL 18,75% 0.92 UL 3,13% 1.0 Mal Formato 1,56% 0.90 (Netscape, 1999) 0.91 (Netscape, 2000) 0.91 (Userland, 2000) 0.92 (Userland, 2000) 0.93 (Userland, 2001) 1.0 (W3C, 2002) 2.0 (Userland, 2003) Abbiamo detto in precedenza che lo scopo di questa tesi è, appunto, la realizzazione di un wrapper che renda disponibili per l'integrazione in MOMIS sorgenti di dati in formato RSS. Innanzitutto vediamo perchè è importante, per un sistema come MOMIS, poter avere a disposizione i dati provenienti da un formato come RSS. La più forte motivazione è da andare a cercare nella grande diffusione di questo standard. Partito un po' in sordina alla fine degli anni '90, il suo utilizzo è andato esplodendo di pari passo all'aumento della vastità di Internet. Correntemente, moduli per la creazione automatica di feed RSS sono presenti in tutti i maggiori CMS (Content Management Systems). Al giorno d'oggi possiamo trovare RSS in circa il 99% dei siti che offrono notizie. Essi offrono ai loro utenti, tramite questo standard, aggiornamenti in tempo reale sulle notizie che pubblicano nel corso della giornata. Inoltre, altre tipologie di siti, attraverso i feed RSS, permettono funzioni simili ai loro utenti. Abbiamo visto in precedenza l'esistenza di più versioni dello standard RSS: in particolare abbiamo evidenziato l'esistenza di due rami principali. Prima di cominciare lo sviluppo del wrapper RSS, è risultato opportuno condurre una breve indagine sulla distribuzione delle versioni di RSS su Internet. I risultati, che si possono vedere in questa slide, evidenziano la grande dominazione delle versioni 2.0, 0.91 e 0.91: tutte e tre queste versioni fanno parte del ramo Userland che, nel complesso, raggiunge circa il 95% del totale. Per questo motivo, data la sostenziale differenza tra il ramo Userland e quello Netscape / W3C, si è pensato di implementare nel presente wrapper soltanto il primo: di conseguenza, le versioni di RSS supportate da questo wrapper sono la 0.91, 0.92, 0.93, 2.0.
9
Feed RSS 2.0 - Esempio <?xml version="1.0"?>
<rss version="2.0"> <channel> <title>Dictionary.com Word of the Day</title> <link> <description>A new word is presented every day with its definition and example sentences from actual published works.</description> <language>en-us</language> <pubDate>Tue, 26 Sep :00: </pubDate> <item> <title>ostensible: Dictionary.com Word of the Day</title> <link> <description>ostensible: appearing to be true, but not necessarily so.</description> </item> </channel> </rss> Qui possiamo vedere un esempio di feed RSS 2.0. Le cose da notare sulla struttura di RSS sono, essenzialmente: - l'esistenza di un elemento <rss>, dotato di attributo <version>, che incapsula la restante parte del documento. - l'esistenza di un elemento <channel> che rappresenta in sostanza il “canale” di comunicazione, e dà informazioni sulla natura degli elementi presenti nel feed e della propria sorgente. - l'esistenza di 1 o più elementi <item>, che rappresentano le singole “notizie” presenti nel canale.
10
Il wrapper RSS Funzionalità di acquisizione dello schema sorgente:
Legge la versione del feed RSS Utilizza il wrapper XSD (XML Schema) opportuno per caricare lo schema locale Crea uno schema globale predefinito (se non già esistente – RSS 2.0) Realizza i mapping tra schema locale e schema globale Per quanto riguarda l'implementazione della funzionalità di acquisizione dello schema sorgente, si possono evidenziare i seguenti punti: - innanzitutto, è stato ritenuto opportuno costruire il wrapper RSS come estensione del wrapper XSD, cioè del wrapper in grado di acquisire schemi XML. Questa decisione nasce dall'osservazione che, di fatto, lo schema di un feed RSS è definito dalla versione del feed stesso, e da niente altro. Quindi, nel nostro caso, avremo uno schema predefinito per ciascuna versione di RSS che intendiamo supportare, cioè quattro. - quindi, il primo passo verso la creazione del wrapper RSS è stata, appunto, l'estensione del wrapper XSD: il wrapper RSS legge la versione di RSS dal feed in esame, e a seconda di questa incarica il wrapper XSD di caricare lo schema opportuno. - sfruttando la sostanziale uniformità tra le versioni di RSS supportate, si è pensato di ampliare le funzionalità del wrapper RSS dotandolo di un automatismo che, prima di caricare la sorgente, si occupa di creare uno schema globale predefinito, dotato di annotazioni semantiche; infine, dopo aver caricato la sorgente stessa, realizza i mapping necessari tra le classi locali e quelle globali. Quindi, ciò che il wrapper ottiene, è una GVV completa.
11
Il wrapper RSS Wrapper RSS Wrapper XSD ODLI3 Feed RSS …
<?xml version="1.0"?> <rss version="2.0"> <channel> <title>Dictionary.com </title> <link> </link> … <item> <title>ostensible: Dictionary.com Word of the Day</title> … { interface ${tRss} ( extent ${tRss} ) transient { readonly attribute string ${tRss_version}; readonly attribute tRssChannel ${channel}; } ; interface ${tRssChannel} ( extent ${tRssChannel} ) transient { readonly attribute set <tRssItem> ${item}; readonly attribute string ${ttl} ?; readonly attribute string ${title}; readonly attribute string ${category} ?; readonly attribute string ${webMaster} ?; readonly attribute string ${link};
12
Il wrapper RSS: Problemi Riscontrati
Limiti del wrapper XSD Problematiche di inserimento del nome del file sorgente Problematiche di acquisizione di schemi gerarchici Durante lo sviluppo del wrapper RSS sono stati riscontrate alcune problematiche. Innanzitutto, si sono dovuti affrontare i limiti del wrapper XSD; nello specifico, sono state riscontrate problematiche di inserimento del file sorgente, che deve sottostare ad alcune regole, e problematiche di acquisizione di schemi gerarchici. Formato data RFC-822
13
Interrogazione di feed RSS
Necessità di interrogare XML (i feed RSS sono XML) Linguaggio XQuery: permette di eseguire query su XML Libreria Java open-source XQEngine 0.69
14
Interrogazione di feed RSS
Risultati: Esecuzione di semplici interrogazioni in linguaggio XQuery Traduzione del risultato XML in ResultSet utilizzabile in MOMIS Problemi Riscontrati: HTML nel campo <description> Tipi di dati Feed malformati o fuori standard
15
Tesi Disponibile su: http://www.dbgroup.unimo.it/tesi/
Conclusioni Integrazione di feed RSS in MOMIS Possibile sviluppo futuro del wrapper (interrogazioni) Applicazioni Integrazione di informazioni presenti in feed RSS sullo stesso argomento provenienti da siti diversi Tesi Disponibile su:
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.