La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Integrazione dati sul web

Presentazioni simili


Presentazione sul tema: "Integrazione dati sul web"— Transcript della presentazione:

1 Integrazione dati sul web
Docente Studenti Gennaro Costaiola Raffaele Donadio Christian De Sio Angelo Caputo A.A. 2016/2017

2 Overview Ognuno di noi crede di conoscere tutto della propria città…ma quante volte vi è capitato di essere sorpresi quando siete venuti a conoscenza, ad esempio, di un monumento storico della vostra città, di cui non avevate la minima idea della sua esistenza? Oppure di avere la necessità di cercare una farmacia? Il nostro obiettivo è finalizzato quindi nel raccogliere varie informazioni di diversa natura su una data città, esonerando l’utente dal navigare sul web, per reperire tutte le informazioni di cui ha bisogno

3 Problema - 1 Quante volte ti è capitato durante una vacanza di voler sapere quali sono i monumenti storici di maggior rilievo?

4 Problema - 2 Ti è mai capitato di voler sapere il miglior prezzo del carburante per la tua auto nella tua città o in quelle vicine?

5 Problema - 3 Quante volte ti è capitato di voler sapere quali sono le farmacie di una città, dove si trovano e quali sono aperte?

6 Approccio classico Ricerca esaustiva, stancante e poco efficiente sul web

7 Soluzione - 1 Il nostro sistema è un motore di ricerca che fornisce informazioni data una città italiana su un determinato ambito

8 Soluzione - 2 Il nostro sistema, con un paio di click, mostra le informazioni desiderate

9 DEmo

10 Architettura

11 estendibilità

12 Le fonti Nome Metodo Descrizione Grado di volatilità Abcsalute (abc)
Web Scraping sito di medicina che parla di malattie, sintomi, terapie, e fornisce la lista delle farmacie sul territorio nazionale Aggiornamento continuo Salute GOV (salute) Script file csv fornito dal governo italiano contente la lista delle farmacie in italia Aggiornamento settimanale Distributori Dat GOV (dis) file csv fornito dal governo italiano contente la lista dei distributori di carburanti in italia Aggiornamento mensile Prezzi carburanti Dat GOV (pr) file csv fornito dal governo italiano contente i prezzi dei carburanti per i vari distributori di carburanti Aggiornamento giornaliero Carburante italia (car) statistiche prezzi carburanti giornaliero Wikipedia (wi) enciclopedia on-line Monumenti Data Open (mon) file csv (dataopen.it) contenente la lista dei monumenti in italia Aggiornamento annuale Bar Data Open (br) file csv (dataopen.it) contenente la lista dei bar in italia Google Place API (gp) API strumento per mostrare i punti di interesse sulla mappa Istat (is) file csv contenente le informazioni della città

13 Fonte – 1 AbcSalute farmacia(nome, comune, provincia, regione, via, telefono, orario)

14 Fonte – 2 salute gov farmacia(codiceIdentificativo, codiceProvincia, codiceRegione, siglaProvincia, partitaIva, frazione, cap, via, nome, provincia, comune latitudine, longitudine)

15 Fonte – 3 Distributori Dat GOV
distributori(idImpianto, gestore,bandiera, tipo_impianto, nome_impianto, indirizzo, comune, provincia, latitudine, longitudine)

16 Fonte – 4 Prezzi carburanti Dat GOV
prezzi(idImpianto, tipologia_carburante, prezzo, isSelf)

17 Fonte – 5 carburanti italia
statistiche(tipologiaCarburante, prezzoMedio, percentuale)

18 Fonte – 6 Wikipedia comune(provincia, immagineUrl, descrizione)

19 Fonte – 7 monumenti data open
monumenti(nomeMonumento, provincia, latitudineMonumento, longitudineMonumento)

20 Fonte – 8 Bar Data Open bar(nomeBar, latitudine, longitudine, provincia)

21 Fonte – 9 Google place api
place(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine)

22 fonte – 10 Istat comune(citta, provincia, regione, latitudineCitta,
longitudineCitta, codiceIstat, denominazioneProvincia)

23 Wrapper – 1 Abcsalute Per estrapolare le informazioni dal sito
Indirizzo: Città: Provincia: Telefono: Giorni: small-desc"]//table//td[1] Orarigiorno: small-desc"]//table//td[2] Orarisera: small-desc"]//table//td[3]

24 Wrapper – salute gov

25 wrapper – 3 Distributori Dat GOV

26 wrapper – 5 Carburanti italia
Statistiche nazionali: Statistiche provinciali:

27 Wrapper – 6 wikipedia Citta: //div[@id='mw-content-text']/div/p[2]
ImmagineUrl: Descrizione: Popolazione:

28 Schema globale farmacia(nome, comune, provincia, regione, via, telefono, orario, latitudine, longitudine) dottori(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine) citta(descrizione, stemma, provincia, nomeBar, latitudineBar, longitudineBar, nomeMonumento, latitudineMonumento, longitudineMonumento) carburante(idImpianto, gestore, bandiera, nome_impianto, indirizzo, comune, provincia, latitudine, longitudine, prezzo, tipologia_carburante, isSelf, tipologiaCarburante, prezzoMedio, percentuale) autolavaggio(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine) comune(citta, provincia, regione, latitudineCitta, longitudineCitta)

29 Mapping gav – 1 farmacia(nome, comune, provincia, regione, via, telefono, orario, latitudine, longitudine):- abc.farmacia(nome, comune, provincia, regione, via, orario, telefono), salute.farmacia(nome, comune, provincia, regione, latitudine, longitudine) dottori(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine):- gp.place(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine), tipologia=“doctor” autolavaggio(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine):- gp.place(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine), tipologia=“car_wash” carburante(idImpianto, gestore, bandiera, nome_impianto, indirizzo, comune, provincia, latitudine, longitudine, prezzo, tipologia_carburante, isSelf, prezzoMedio, percentuale):- dis.distributore(idImpianto, gestore, bandiera, nome_impianto, indirizzo, comune, provincia, regione, latitudine, longitudine), pr.prezzi (idImpianto, prezzo, tipologiaCarburante, isSelf), car. statistiche(tipologiaCarburante, prezzoMedio, percentuale)

30 mapping gav – 2 citta(provincia, descrizione, stemma, nomeBar, latitudineBar, longitudineBar, nomeMonumento, latitudineMonumento, longitudineMonumento):- wi.comune(provincia, descrizione, stemma), br.bar(provincia, nomeBar, latitudineBar, longitudineBar),mon.monumenti(nomeMonumento, provincia, latitudineMonumento, longitudineMonumento) comune(citta, provincia, regione, latitudineCitta, longitudineCitta):- is.comune(citta, provincia, regione, latitudineCitta, longitudineCitta)

31 Mapping lav – 1 abc.farmacia(comune, provincia, regione, nome, via, telefono, orario):- farmacia(nome, comune, provincia, regione, via, telefono, orario, v3, v4) salute.farmacia(comune, provincia, regione, via, nome, latitudine, longitudine):- farmacia(nome, comune, provincia, regione, via, v1, v2, latitudine, longitudine) dis. distributori(idImpianto, gestore, bandiera, nome_impianto, indirizzo, comune, provincia, latitudine, longitudine):- carburante(idImpianto, gestore, bandiera, nome_impianto, indirizzo, comune, provincia, latitudine, longitudine, v1, v2, v3, v4, v5, v6) pr. prezzi(idImpianto, tipologia_carburante, prezzo, isSelf):- carburante(idImpianto, v1, v2, v3, v4, v5, v6, v7, prezzo, tipologia_carburante, isSelf, v8, v9, v10) car. statistiche(tipologiaCarburante, prezzoMedio, percentuale):- carburante(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, tipologiaCarburante, prezzoMedio, percentuale)

32 Mapping lav – 2 wi.comune(provincia, immagineUrl, descrizione):- citta(provincia, descrizione, immagineUrl, v1, v2, v3, v4, v5, v6) mon. monumenti(nomeMonumento, provincia, latitudineMonumento, longitudineMonumento):- citta(provincia, v1, v2, v3, v4, nomeMonumento, latitudineMonumento, longitudineMonumento) br.bar(provincia, nomeBar, latitudineBar, longitudineBar):- citta(provincia, v1, v2, nomeBar, latitudineBar, longitudineBar, v3, v4, v5) gp.place(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine):- autolavaggio(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine) gp.place(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine):- dottori(nome, raggio, tipologia, aperto_adesso, latitudine, longitudine) is.comune(citta, provincia, regione, latitudineCitta, longitudineCitta):- comune(citta, provincia, regione, latitudineCitta, longitudineCitta)

33 query – 1 Data una città, recuperare tutte le informazioni circa i distributori di carburante presenti in quella zona, con i relativi prezzi cerca_distributori(comune, provincia, indirizzo, marca, tipologia, prezzo):- carburante(_, _, marca, _, indirizzo, comune, provincia, _, _, prezzo, tipologia, _, _, _, _), comune=“salerno”, provincia=“salerno” SELECT comune, provincia, indirizzo, marca, tipologia, prezzo FROM carburante where comune=“salerno”, provincia=“salerno”

34 query – 2 Data una città, recuperare le informazioni inerenti alla città, come la storia e i monumenti storici presenti informazioniCitta(storia, immagine, nomeMonumenti):- citta(provincia, storia, immagine, _, _, _, nomeMonumenti, _, _), provincia=“salerno” SELECT storia, immagine, nomeMonumenti FROM citta WHERE provincia=“salerno”

35 query – 3 Date le coordinate di una città, recuperare le informazioni inerenti ai dottori trovaDottori (nome, aperto, latitudine, longitudine) :- dottori(nome, raggio, tipologia, aperto, latitudine, longitudine), tipologia=“doctor”, raggio=“5”, comune(_,_,_lat,long), lat=“ “, long=” “ SELECT nome, aperto_adesso, latitudine, longitudine FROM dottori, comune WHERE comune.latitudine=‘ ’ AND comune.longitudine=‘ ’ AND raggio=’5’ AND tipologia=“doctor”

36 gav query unfolding Query sullo schema globale:
cerca_distributori(comune, provincia, indirizzo, marca, tipologia, prezzo):- carburante(_, _, marca, _, indirizzo, comune, provincia, _, _, prezzo, tipologia, _, _, _, _), comune=“salerno”, provincia=“salerno” Unfolding: cerca_distributori(comune, provincia, indirizzo, marca, tipologia, prezzo):- dis.distributore(_, _, marca, _, indirizzo, comune, provincia, _, _, _), pr.prezzi (tipologia, prezzo, _, _), car. statistiche(_, _, _), comune=“salerno”, provincia=“salerno” Non ci sono semplificazioni da eseguire

37 lav bucket algorithm dis.distributori(idImpianto, gestore, bandiera, nome_impianto, indirizzo, comune, provincia, latitudine, longitudine):- carburante(idImpianto, gestore, bandiera, nome_impianto, indirizzo, comune, provincia, latitudine, longitudine, _, _, _, _, _, _) pr.prezzi(idImpianto, tipologia_carburante, prezzo, isSelf):- carburante(idImpianto, _, _, _, _, _, _, _, prezzo, tipologia_carburante, isSelf, _, _, _) car.statistiche(tipologiaCarburante, prezzoMedio, percentuale):- carburante(_, _, _, _, _, _, _, _, _, _, _, _, tipologiaCarburante, prezzoMedio, percentuale) Query: cerca_distributori(C, PROV, I, M, T, P):- carburante(_, _, M, _, I, C, PROV, _, _, P, T, _, _, _, _), C=“salerno”, PROV=“salerno” Bucket: [dis.distributori(ID, G, B, NM, I, C, P, LAT, LON), pr.prezzi(ID, T, P’, IS’), car.statistiche(T,PR’,PER’)]

38 lav bucket algorithm Unfolding produce una solo query che è quella di partenza q1= cerca_distributori(C, PROV, I, M, T, P):- carburante(_, _, M, _, I, C, PROV, _, _, P, T, _, _, _, _), C=“salerno”, PROV=“salerno”

39 TECNOLOGIE UTILIZZATE

40


Scaricare ppt "Integrazione dati sul web"

Presentazioni simili


Annunci Google