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 Indice Il sistema MOMIS Lo standard RSS Il wrapper RSS Esecuzione di query su feed RSS Tesi Disponibile su: http://www.dbgroup.unimo.it/tesi/ 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 L’architettura di MOMIS 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 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 Distribuzione Versioni RSS 1.0; 3,13% 0.92 UL; 3,13% Mal Formato; 1,56% Versione 0.91 UL; 18,75% 2.0; 73,44% Diffusione 2.0 73,44% 0.91 UL 18,75% 0.92 UL 3,13% 1.0 3,13% 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) Feed RSS 2.0 - Esempio <?xml version="1.0"?> <rss version="2.0"> <channel> <title>Dictionary.com Word of the Day</title> <link>http://dictionary.reference.com/wordoftheday/</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 2006 00:00:03 -0700</pubDate> <item> <title>ostensible: Dictionary.com Word of the Day</title> <link>http://dictionary.reference.com/wordoftheday/26.html</link> <description>ostensible: appearing to be true, but not necessarily so.</description> </item> </channel> </rss> 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 Il wrapper RSS Wrapper RSS RSS 0.91 RSS 0.92 RSS 0.93 RSS 2.0 Wrapper XSD Feed RSS <?xml version="1.0"?> <rss version="2.0"> <channel> <title>Dictionary.com </title> <link>http://www.dictionary.com/ </link> … <item> <title>ostensible: Dictionary.com Word of the Day</title> … ODLI3 … { 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}; … Il wrapper RSS: Problemi Riscontrati • Limiti del wrapper XSD – Problematiche di inserimento del nome del file sorgente – Problematiche di acquisizione di schemi gerarchici • Formato data RFC-822 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 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 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: http://www.dbgroup.unimo.it/tesi/