Relatore: Prof. Marco Brambilla Motore di ricerca multi
Transcript
Relatore: Prof. Marco Brambilla Motore di ricerca multi
POLITECNICO DI MILANO V Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica Anno Accademico 2009/2010 Motore di ricerca multi-dominio basato sull'orchestrazione di servizi di ricerca esistenti Relatore: Prof. Marco Brambilla Studenti: Granata Samuele Matr.713906 Maggioni Alberto Matr.715399 Introduzione Il motore di ricerca deve: scomporre richieste complesse in interrogazioni semplici e eseguirle ottenuti i risultati parziali deve ricombinarli in modo adeguato e restituire i risultati fornire all'utente un supporto intelligente ed efficace L'interfaccia del motore di ricerca deve: offrire all'utente una semplice e rapida consultazione gestire errori e malfunzionamenti monitorare le azioni eseguite dall'applicazione ed informare l'utente circa il loro stato (Studi di Schneiderman, Byrd, and Croft ) Tipologie di ricerche e soluzione proposta Tipologie di ricerche: Classificazione di Broder: Navigazionali: l'intento dell'utente è raggiungere velocemente un particolare sito Web (20%). Informative: l'obiettivo dell'utente è ottenere informazioni contenute in una o più pagine Web (50%). Transazionali: l'obiettivo dell'utente è di effettuare alcune attività attraverso la mediazione del Web. (30%) L’applicazione da noi sviluppata non copre tutte le possibili ricerche effettuabili da un utente sul Web, ma supporta un campo più specifico. Essa consente infatti la ricerca di risultati riguardanti professori e ricercatori che hanno pubblicato saggi e libri riguardanti le scienze informatiche. Approcci esistenti Sistemi di ricerca per topic Interrogazioni indipendenti tra loro, eseguite su domini differenti Esempi: Kosmix Powerset Hakia Parallax (Freebase DB) Approcci esistenti Sistemi di ricerca ibridi Questi sistemi possono da un lato essere considerati servizi di ricerca verticali, ma non lo sono propriamente. Infatti permettono di effettuare diverse queries su aree eterogenee in contemporanea. Esempi: Ask3D Clusty Google Universal Search Approcci esistenti Sistemi di ricerca tabellare Presentano un paradigma di ricerca e presentazione dei risultati diverso dai precedenti. Effettuano ricerche più complete, ma richiedono al contempo uno sforzo implementativo maggiore. Mostriamo qualche esempio nel dettaglio.... Approcci esistenti Google Squared Struttura tabellare: la “square” Struttura dinamica: estensione verticale/orizzontale Approcci esistenti Google Fusion Tables Database espandibile dagli utenti Mette a disposizione funzionalità di filtraggio e combinazione dei risultati Diverse possibili visualizzazioni dei risultati Approcci esistenti Liquid Query Sviluppato al Politecnico di Milano Si basa sul paradigma “Liquid Query” Passi svolti dall'applicazione: Si compongono le risposte alla query effettuata cercando informazioni provenienti da diversi domini e aggregandole successivamente. Si combinano le varie tuple. Si ridefinisce la query dell'utente, 'purificandola' per così dire da imprecisioni e rendendola quindi più efficace. Mette a disposizione funzionalità di filtraggio e combinazione dei risultati Diverse possibili visualizzazioni dei risultati Background Motori usati Sono stati integrati nell’applicazione sei servizi di ricerca diversi. Tutti mettono a disposizione degli sviluppatori delle APIs. • DBLP: pubblicazioni informatiche • Google books: libri digitalizzati o in commercio • SlideShare: presentazioni di qualunque genere • Twitter: social network e microblogging • Wikipedia: enciclopedia multilingue • Youtube: condivisione di video Background Tecnologie per lo sviluppo • Javascript: utilizzato all’interno di particolari documenti XML, detti Open Data Tables, per integrare un gran numero di sorgenti dati diverse. • PHP: sfruttato per creare le pagine dinamiche di visualizzazione e filtraggio dei risultati. • YQL: servizio web che offre un sistema di accesso ai dati presenti sul Web attraverso delle query, filtrandoli e combinandoli. La sintassi utilizzata da questo servizio è molto simile a quella del famoso SQL. Soluzione proposta – Analisi dei Requisiti Use case diagram Rappresenta le funzionalità offerte dal sistema, ossia i requisiti funzionali I requisiti non funzionali comprendono l'Usabilità (navigabilità e gestione degli errori), la Compatibilità e le Performance Soluzione proposta – Analisi dei Requisiti Modello UX Rappresenta l’interazione degli utenti con l’applicazione Web Soluzione proposta – Analisi dei Requisiti Scenario d’uso Ecco un possibile scenario d’uso, presentato mediante un Sequence diagram. Soluzione proposta – Implementazione Architettura generale DBLP Google Books Slideshare Twitter Wikipedia Youtube YQL query Pagine Dinamiche Risultati Middleware YQL Open Data Tables Approfondiamo ogni componente... A P I Patrimonio Informativo Soluzione proposta – Implementazione Open Data Tables È un file XML Tag radice tabellaDiEsempio.xml <?xml version="1.0" encoding="UTF-8"?> <table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta> <author>You</author> <description>Esempio di YQL table</description> ........ Tag 'urls' (valore opzionale) Variabili esterne per JS Codice JS (invocazione API) </meta> <bindings> <select itemPath="finale" produces="XML"> <urls> <url>http://url_di_esempio</url> </urls> <inputs> <key id="attributo1" type="xs:string" paramType="variable" required="true"/> </inputs> <execute><![CDATA[ ........ ]]></execute> </select> </bindings> </table> Soluzione proposta – Implementazione Esempio di query in sintassi YQL: USE indirizzoURL/tabellaDiEsempio.xml as table; SELECT * FROM table WHERE attributo1 = 'valore' Come evidenziato in giallo viene invocata la Open Data Table di nome “tabellaDiEsempio.xml”. Tale ODT consente al middleware YQL di riconoscere la sorgente informativa in essa descritta Soluzione proposta – Implementazione Pagine dinamiche Utente Inserimento parole chiave (form) Pagina iniziale (HTML) Scelta dell'utente Pagina per filtrare i risultati (PHP Pagina 2.1) Passaggio parametri Formulazione YQL queries (PHP Pagina 1) Visualizzazione anteprima risultati (PHP Pagina 1) Interazione middleware Pagina per combinare i risultati (PHP Pagina 2.2) Interazione middleware Visualizzazione elenco risultati (PHP Pagina 2.1/2.2) Validazione Analisi qualitativa Campione: 40 docenti/ricercatori del Politecnico di Milano Ricerche per Autore, ricerche per Autore e Argomento Campo “Topic”: parole chiave scelte in base all'area di interesse dell'autore Risultati Esempio 1: Ricerca per Autore (Risultati DBLP e Combinazioni utili) Il numero di Combinazioni utili è circa il 36,5% dei risultati ottenuti da DBLP Risultati Esempio 2: Ricerca per Autore e Argomento (Risultati DBLP e Combinazioni utili) Il numero di Combinazioni utili è circa il 41,8% dei risultati ottenuti da DBLP Risultati Esempio 3: Ricerca per Autore e Argomento (Risultati Wikipedia) Conclusioni e Lavori futuri Riassumendo, la nostra applicazione consente un diverso approccio per eseguire ricerche verticali e per combinare i risultati provenienti dai vari domini, fornendo tuple coerent i Ampliare la nostra applicazione: Nuove funzionalità, nuovi filtri Integrazione di ulteriori servizi (ulteriori basi di dati) Sviluppi di ulteriori applicazioni: Utilizzo delle basi di dati dei servizi già integrati nel middleware Video dimostrativo Come ultimo passo vi mostriamo un breve video dimostrativo che illustra il funzionamento dell'intera applicazione