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