2.1.1 Motori di ricerca generalisti
Transcript
2.1.1 Motori di ricerca generalisti
POLITECNICO DI MILANO Polo Regionale di Como Facoltà di Ingegneria dell’Informazione Corso di Studi in Ingegneria Informatica Tecnologie di ricerca Web per portali verticali Relatore: Elaborato finale di : Prof. Marco Brambilla Fumeo Stefano Correlatori: matr. 701302 Prof. Massimo Tisi Contessa Simone Prof. Alessandro Bozzon matr. 701303 ANNO ACCADEMICO 2008 – 2009 Sommario Sommario Al giorno d'oggi l'implementazione di un motore di ricerca verticale focalizzato su un particolare settore, come può essere quello aziendale, è diventata di fondamentale importanza. Per questo motivo Google e Yahoo, aziende leader nel settore dei motori di ricerca generalisti, si sono prodigate negli ultimi anni per creare dei servizi ad hoc per adempiere a questo crescente fabbisogno. In particolar modo Yahoo presenta 2 servizi innovativi con i quali è possibile personalizzare sia il dominio di ricerca, sia il layout di visualizzazione dei risultati ottenuti. Inoltre, utilizzando Yahoo Boss con l'ausilio di Yahoo SearchMonkey, è possibile ricercare dei dati strutturati all'interno delle pagine Web che, in questo modo, di fatto sono in grado di sostituire il tradizionale database in cui erano contenuti i dati d'interesse aziendale. Google invece, nel suo servizio, permette solo di restringere il dominio dei siti in cui effettuare la ricerca e di modificarlo in base alle proprie esigenze attraverso l'utilizzo di sotto-domini di ricerca identificabili con delle etichette univoche. Queste limitazioni sono state effettuate in favore di una notevole semplificazione del lavoro da svolgere per implementare il servizio. Questa tesi, perciò, si occupa dell'analisi dettagliata di questi servizi, mettendone in evidenzia pregi e difetti attraverso delle comparazioni effettuate in diversi contesti. Inoltre, per testarne le effettive potenzialità, è stata proposta una sperimentazione di queste nuove risorse all'interno di un portale dedicato alle aziende impegnate nel settore del risparmio energetico. Le funzionalità principali di questo progetto sono: 2 Sommario • la registrazione delle aziende al portale e la creazione del relativo account necessario per accedere ai servizi personalizzati offerti; • la creazione di un profilo, attribuendo un significato semantico ai dati aziendali, all'interno del portale per le imprese che non possiedono un proprio sito internet oppure la possibilità di generare i microformat da inserire nella propria pagina Web per le aziende che ne sono in possesso; • la gestione di un motore di ricerca verticale interno per consentire una ricerca specifica, relativamente ai prodotti offerti dalle aziende registrate, sia al pubblico, sia alle imprese del network; • l'implementazione di funzionalità di gestione del database e dei dati aziendali appositamente create per l'amministrazione del portale; • la visualizzazione avanzata dei risultati di ricerca proposti dal motore di ricerca interno, per consentire agli utenti sia una visione più completa dei prodotti aziendali sia l'utilizzo di un insieme di servizi associati al risultato. Infine questa sperimentazione è servita per far emergere ulteriori differenze tra i servizi analizzati, tra le quali: • il Grado di personalizzazione, infatti mentre Yahoo consente di arricchire i risultati standard con foto o con dati aggiuntivi ricavati dai microformat di diverse pagine Web, Google utilizza un approccio completamente diverso puntando sulla minimizzazione del tempo di elaborazione trascurando completamente sia la personalizzazione della query di ricerca sia la modifica del layout dei risultati ottenuti; 3 Sommario • le architetture necessarie per il corretto funzionamento, infatti se da una parte Google CSE non richiede particolari architetture dal lato server per funzionare, Yahoo Boss, essendo un servizio rest, necessita di un server PHP o Java per interpretare i risultati ottenuti. Questo porta ad un inevitabile aumento del tempo di risposta del servizio; • il ranking dei risultati, che è completamente modificabile con il servizio di Yahoo in quanto i risultati sono forniti su di un file esterno ed invece resta impossibile da manipolare con Google CSE, in quanto gli stessi risultati vengono inseriti direttamente all'interno della pagina visualizzata dal client. Per questi motivi, anche se i servizi sono concepiti per rispondere allo stesso fabbisogno, sono utilizzabili in contesti completamente diversi in base ai requisiti aziendali richiesti. Contenuti Sommario..................................................................................................2 4 Contenuti 1. Introduzione...........................................................................................7 1.1 Il problema dei motori di ricerca......................................................7 1.2 servizi custom search....................................................................11 1.3 Organizzazione della tesi...............................................................15 2. Tecnologie per la ricerca Web..............................................................17 2.1 Prefazione......................................................................................17 2.1.1 Motori di ricerca generalisti....................................................18 2.1.2 Microformat............................................................................22 2.2 Le tecnologie utilizzate..................................................................26 2.2.1 Google CSE.............................................................................27 2.2.2 Yahoo Boss.............................................................................36 2.2.3 Yahoo SearchMonkey..............................................................47 2.3 Analisi comparativa ......................................................................57 3. Caso d'uso: un portale per il risparmio energetico..............................64 3.1 Prima sperimentazione..................................................................64 3.1.1 Requisiti..................................................................................66 3.1.2 Design preliminare..................................................................67 3.1.3 Design di progettazione..........................................................73 3.1.4 Implementazione....................................................................79 3.2 Seconda sperimentazione .............................................................86 3.2.1 Requisiti..................................................................................88 3.2.2 Design preliminare..................................................................89 3.2.3 Design di progettazione..........................................................94 3.2.4 Design dei microformat..........................................................99 3.2.5 Implementazione..................................................................105 4. Conclusioni finali................................................................................117 5 Contenuti 4.1 Prefazione....................................................................................117 4.2 Considerazioni sui servizi analizzati.............................................119 4.3 Sviluppi futuri...............................................................................129 4.4 Lavoro svolto e ringraziamenti....................................................135 4.5 Conclusioni..................................................................................140 Bibliografia.............................................................................................146 Capitolo 1: 6 Introduzione Introduzione 1.1 Il problema dei motori di ricerca La situazione aziendale attuale presenta numerosi problemi legati sia alla gestione della grande mole di dati rilevanti prodotti, salvati all'interno della propria banca dati, sia alla ricerca veloce e precisa delle informazioni all'interno di essa. Per questi motivi molte aziende dedicano molto tempo e denaro nel tentativo di produrre ed implementare un proprio motore di ricerca integrato con i propri servizi, o prodotti aziendali offerti, sulla propria pagina Web. Questo sforzo, però, risulta a volte inutile in quanto, oltre ai problemi citati in precedenza, sopraggiungono anche ulteriori complicazioni dovute: • alla scalabilità, in quanto un Web server o una batteria di server non riescono a gestire un grandissimo numero di utenti che accedono contemporaneamente alla base di dati o ai servizi offerti dell'azienda. Questo lo si può facilmente risolvere duplicando le basi di dati e i Web server, ma con costi molto elevati e con problematiche di sincronizzazione e di consistenza dei dati aziendali rilevanti; • alla manutenzione, infatti all'interno dell'azienda dovrà essere presente un tecnico specializzato nella gestione del Web server o della base di dati per evitare sia i numerosi periodi di inattività del servizio a causa di guasti, più o meno gravi, sia l' eventuale incoerenza dei dati dovuta agli errori casuali implementazione del servizio aziendale; 7 legati alla Introduzione • all'aggiornamento dei servizi offerti sul sito aziendale o dei dati, infatti, soprattutto al giorno d'oggi, le tecnologie informatiche in generale, ma soprattutto quelle per il Web, sono in continuo aggiornamento e quindi non è sempre facile aggiungere nuovi servizi o tecnologie al proprio vecchio sito aziendale integrandoli perfettamente con quelli già presenti; • alla sicurezza, infatti per esporre la propria base di dati all'esterno dell'azienda bisogna implementare numerose misure di sicurezza per evitare attacchi alle informazioni aziendali rilevanti da parte di malintenzionati. L'implementazione di sistemi di difesa come firewall o dmz, oltre che comportare un notevole sforzo economico iniziale per l'implementazione, se non sono già presenti, portano anche ulteriori spese future per la manutenzione, la modifica o il rinnovo della licenza se si tratta di un software; • alla visibilità del sito aziendale e quindi del motore di ricerca, infatti, escludendo le grandi aziende, poche altre godono di questa caratteristica nel Web, in quanto la maggior parte dei clienti ricerca prodotti o servizi sui motori di ricerca generalisti. Quindi la grande spesa per la creazione di un motore di ricerca non inciderebbe di molto sulla visibilità dei servizi o prodotti aziendali. • Alla ricerca strutturata delle informazioni, in quanto l'implementazione di un servizio di ricerca per chiave primaria semplice all'interno della base di dati aziendale non permette ricerche complesse o strutturate personalizzabili, secondo le esigenze, da parte dell'utente; • all'implementazione dei servizi che utilizzano la base di dati, in quanto bisogna considerare i costi d'integrazione delle tecnologie già presenti in azienda, come ad esempio l'architettura dedicata allo 8 Introduzione storage dei dati o al database stesso. Quest'ultimo, in particolare, dovrà essere ripulito dai dati ripetuti, danneggiati o inconsistenti presenti. Inoltre si dovrà anche introdurre, se non ancora presente, uno standard aziendale per l'inserimento dei dati nella base di dati per evitare errori di sintassi futuri che potrebbero compromettere il funzionamento dei servizi di ricerca o di visualizzazione delle informazioni. Per tutti questi motivi molte aziende preferiscono utilizzare i servizi standard offerti dal Web come i motori di ricerca generalisti, ad esempio quelli standard offerti da Google o da Yahoo. Essi sono conosciuti dalla maggior parte delle persone e non necessitano di alcun prerequisito per l'utilizzo, se non quello di inserire le informazioni in una semplice pagina Web. Purtroppo anche questo metodo presenta notevoli svantaggi, tra cui : • il ranking dei risultati che viene gestito interamente dal motore di ricerca in base alle proprie politiche di ordinamento fondate sulla popolarità e sull'attinenza con le parole ricercate. Questo aspetto risulta molto svantaggioso per le piccole aziende che non si vedranno quasi mai tra i primi risultati proposti a causa della presenza di aziende più grandi o popolari, che offrono lo stesso servizio; • la visualizzazione di qualsiasi tipo di risultato della ricerca è sempre standard, e consiste in un collegamento al sito del risultato proposto, una breve descrizione e poco altro. Questo problema penalizza le aziende che possiedono molti dati relative ai propri prodotti da visualizzare, come ad esempio illustrazioni, specifiche tecniche, prezzo o descrizioni per ogni servizio; • efficienza nella ricerca dei dati, infatti con i servizi standard è possibile solo ricercare le informazioni attraverso una query di 9 Introduzione ricerca composta solo da una stringa di testo, impedendo, di fatto, ricerche più precise all'interno della grande mole di dati presente sul Web. A questo problema si aggiunge anche il fatto che i database aziendali non possono essere presi in considerazione e che non è possibile inserire dei dati in qualche modo strutturati all'interno delle pagine Web. Di conseguenza i modi con cui un azienda può diversificare o specificare il proprio servizio sul motore di ricerca generalista sono veramente pochi; • impossibilità di effettuare una ricerca in un dominio di pagine Web limitato, perciò risulta molto difficile focalizzare l'attenzione sui propri prodotti o servizi da parte delle aziende, in quanto devono confrontarsi con tutta la mole di dati presente sul Web, senza la possibilità di indirizzare la ricerca nel proprio contesto. Questo di certo è svantaggioso per un'impresa che voglia effettuare delle ricerche che mettano in risalto i propri prodotti o i propri servizi rispetto a quelli dei concorrenti; • impossibilità di inserire dei servizi strettamente correlati al risultato della ricerca proposta dal motore di ricerca, come ad esempio la mappa con l'itinerario per raggiungere l'azienda o la possibilità di scaricare o visualizzare dei file legati in qualche modo al prodotto oppure la possibilità di accedere alle informazioni sui recapiti aziendali attraverso l'uso di una vcard. Quindi anche la scelta dei motori di ricerca generalisti, come la precedente, non sembra risolvere il fabbisogno aziendale che si sta evidenziando negli ultimi anni. 10 Introduzione 1.2 servizi custom search Google e Yahoo, due tra le più grandi aziende leader nel settore della ricerca sul Web, hanno deciso di sviluppare dei servizi ad hoc analizzando il crescente fabbisogno di possedere un motore di ricerca completamente personalizzabile da parte delle imprese. L' obiettivo principale era quello di fornire un servizio che avesse sia le caratteristiche positive dei motori di ricerca generalisti, sia il grado di personalizzazione e adattabilità disponibile nei siti privati aziendali senza però dover costringere le aziende a forti spese per l'implemento o per la manutenzione del servizio. Fu così che Google presentò Custom Search Engine, un servizio che offriva tutte le principali caratteristiche di quello standard generalista di Google, ma che aveva il vantaggio di presentare anche dei metodi per la personalizzazione da parte delle aziende interessate a questo servizio. Google CSE risolse gran parte dei problemi discussi in precedenza, innanzitutto permise di specificare il dominio di ricerca, indicandolo al momento dell'attivazione del servizio oppure dichiarandolo dinamicamente su un file xml presente sul server contenente il sito aziendale. Inoltre introdusse un metodo per permettere una semplice ricerca strutturata. Questo si poté realizzare grazie all'utilizzo di etichette univoche da associare ad un particolare gruppo di pagine Web. In questo modo fu possibile collegare ad un'etichetta tutti i siti d'interesse che avessero qualcosa in comune o di particolare rispetto agli altri siti, ad esempio il settore riguardante i prodotti venduti, i tipi di servizi o elaborati offerti, la regione o provincia di residenza, il nome dell'impresa produttrice o esportatrice, il proprietario dell'azienda o altro. 11 Introduzione Queste etichette sono poi selezionabili quando si effettua la ricerca per limitare ulteriormente il dominio della ricerca stessa ai siti associati dinamicamente ad esse, indirizzando così l'utente verso il risultato desiderato. Per quanto riguarda il ranking dei risultati della ricerca Google CSE introdusse un parametro per permetterne la modifica, sia pur minima, da parte delle aziende. Questo valore può essere associato alle varie pagine del dominio di ricerca in modo dinamico per aumentare o diminuire il coefficiente di ranking, calcolato dall'algoritmo di ordinamento di Google CSE, utilizzato per determinare la posizione del risultato nella ricerca effettuata dall'utente. Sul fronte della personalizzazione del layout dei risultati Google decise di riutilizzare la visualizzazione classica degli stessi per mantenere un tempo di risposta minimo che non dipendesse dal modo d'implementazione. Infatti questo servizio può essere implementato facilmente su una qualsiasi pagina html senza il supporto di nessuna tecnologia server-side. Infine Google CSE fu integrato, sotto forma di consigli di ricerca, anche nel motore di ricerca generalista standard, sia per cercare di rendere quest'ultimo un po' più strutturato sia per aumentare la visibilità dei servizi personalizzati creati dalle aziende più piccole e meno popolari. Seguì lo stesso obiettivo anche Yahoo seppur con politiche differenti, infatti strutturò Yahoo BOSS come un servizio rest, cioè creò una risorsa reperibile sul Web ad un indirizzo url fisso a cui inviare la query di ricerca ed alcuni parametri per ricevere su di un file xml i risultati della ricerca da visualizzare. Proprio questa caratteristica risulterà poi la più grande differenza rispetto al servizio offerto da Google, infatti, per interpretare e per visualizzare i risultati restituiti dalla risorsa di Yahoo, occorre implementare su di un server php o java un'applicazione apposita. Questa dovrà inviare, in modo opportuno, la richiesta al server specifico di Yahoo BOSS e successivamente dovrà interpretare correttamente i risultati, ottenuti su un apposito file, in base alle esigenze aziendali . 12 Introduzione Inoltre questa scelta permise un altissimo grado di personalizzazione del proprio motore di ricerca, in quanto, a discapito di un tempo di risposta dipendente dal proprio server e dalla tecnologia utilizzata, offrì la possibilità di visualizzare nel modo desiderato le informazioni ottenute e di modificare, anche completamente, il ranking fornito dal servizio in base ai requisiti dell'azienda. In questo servizio fu introdotta anche la possibilità di inviare un elenco di indirizzi di pagine Web tra i vari parametri, in modo da poter creare un proprio dominio di ricerca dinamico in base alla situazione. Da questo però si può facilmente evincere che Yahoo ha preferito lasciare all'azienda l'incombenza di crearsi un'interfaccia utente per effettuare una ricerca strutturata utilizzando delle parole chiave, denominate keywords, e un dominio specifico in base alle proprie esigenze. Infine Yahoo, a differenza di Google, concesse anche la possibilità di filtrare ulteriormente la ricerca con delle particolari condizioni, ad esempio eliminando i risultati non in italiano, violenti oppure di carattere pornografico, attraverso ulteriori parametri inviati nella richiesta al server del servizio. Visto l'enorme successo che ottennero BOSS e CSE, Yahoo decise di creare un'ulteriore risorsa: Yahoo SearchMonkey, un servizio pionieristico per la ricerca di dati strutturati all'interno delle pagine Web. Questo nuovo servizio si occupa di setacciare il Web alla ricerca di pagine contenenti informazioni strutturate secondo alcuni standard: i microformat. Successivamente indicizza i dati trovati e li associa alla pagina Web processata nella propria base di dati. Questo servizio fu introdotto per offrire, se necessario, un ulteriore supporto a Yahoo BOSS che fosse in grado di inviare, per ogni risultato ottenuto dalla ricerca, oltre alle solite informazioni legate ad una pagina Web, anche ulteriori informazioni come ad esempio indirizzi di immagini, di file o di servizi. 13 Introduzione Questa fu un'importante innovazione per tutte le aziende che possedevano dati sui propri servizi, infatti inserendo alcuni tag html specifici nel proprio sito Web erano in grado di inserire delle informazioni aggiuntive visualizzabili e ricercabili su di un motore di ricerca senza interagire con il proprio database. Fu possibile inoltre associare dei servizi ai prodotti dell'impresa o alle informazioni aziendali. Ne sono esempi la visualizzazione della vcard aziendale o della licenza pdf di un prodotto, l' inserimento di un collegamento ad un altro sito contenente materiale attinente al risultato proposto, la possibilità di spedire facilmente una mail all'azienda produttrice oppure la visualizzazione su di una mappa del percorso da seguire per raggiungere un determinato fornitore. SearchMonkey diede anche l'opportunità di creare dei servizi rest personalizzati per ricavare informazioni da più fonti presenti sul Web, anche se non presentavano delle particolari strutture di dati, in modo da non costringere le aziende, che volevano sfruttare questo servizio, a implementare i microformat nelle proprie pagine Web. Infine per aumentare la visibilità dei dati aziendali che hanno bisogno di un layout particolare per i risultati, fu consentita anche la creazione di maschere di visualizzazione specifiche per gli indirizzi url a cui necessitano. Queste interfacce personalizzate saranno poi integrate nel motore di ricerca generalista di Yahoo in modo da consentire la visualizzazione dei microformat particolari anche al di fuori del proprio motore di ricerca creato con YAHOO BOSS con l'ausilio di SearchMonkey. Dopo un'attenta analisi dei servizi offerti da Yahoo e Google si può evincere facilmente che, anche se in modo diverso, entrambi sono un ibrido delle soluzioni tecnologie aziendali utilizzate in precedenza per rispondere al problema della personalizzazione di un motore di ricerca. Inoltre sono state create sfruttando delle tecnologie ben note già presenti sul Web e per questo motivo si può supporre che avranno una notevole diffusione nell'ambito aziendale e privato. 14 Introduzione 1.3 Organizzazione della tesi La tesi è strutturata in capitoli che si susseguono in base al naturale ordine cronologico dello studio sui motori di ricerca che è stata effettuata. Infatti nei primi capitoli sarà discussa, dopo un'analisi introduttiva del problema, la parte di ricerca teorica delle nuove tecnologie utilizzabili per costruire un motore di ricerca personalizzato e successivamente sarà spiegato in dettaglio il lavoro svolto durante la sperimentazione dei servizi precedentemente analizzati. Infine saranno tratte le conclusioni finali emerse dalla ricerca eseguita ed eventuali prospettive future. In dettaglio la tesi ha la seguente struttura: • Capitolo 1: dopo un breve sommario del lavoro svolto e delle conclusioni dedotte, saranno descritti sia il problema attuale, legato alla costruzione di un proprio motore di ricerca, con il quale devono scontrarsi le aziende oggigiorno, sia le soluzioni tecnologiche adottate fino ad ora, analizzando pregi e difetti di ciascuna. Successivamente saranno introdotte in modo sintetico le idee fondamentali che stanno alla base delle implementazioni dei nuovi servizi offerti da Google e da Yahoo per cercare di risolvere queste problematiche aziendali. Infine dopo un'analisi sintetica dei due servizi e delle principali caratteristiche sarà presentata la struttura della tesi e del lavoro teorico e sperimentale svolto. • Capitolo 2: saranno descritti minuziosamente, dopo una breve spiegazione del significato e del funzionamento di un motore di ricerca generalista e dei microformat, i nuovi servizi introdotti in precedenza. Successivamente verrà riportata un'analisi dettagliata e comparativa delle risorse messe a disposizione dai due servizi. Infine sarà riportata una tabella riassuntiva contenente tutti gli aspetti che sono emersi durante l'analisi teorica e sperimentale. 15 Introduzione • Capitolo 3: in questa parte verrà invece presa in considerazione la parte sperimentale della tesi. Nella prima parte si inizierà proponendo una descrizione del primo caso concreto di studio descrivendo il dominio , le specifiche aziendali proposte, le classi d'utenza che interagiranno con l'elaborato e le funzionalità richieste dal problema. Successivamente saranno descritte sia le tecnologie Web utilizzate per l'implementazione sia le tecnologie fisiche necessarie per il corretto funzionamento, come ad esempio il database utilizzato o la struttura logica usata per lo storage dei dati. Infine saranno descritte l'interfaccia utente e tutte le funzionalità proposte dal portale Web. Nella seconda parte invece verrà proposta la descrizione del secondo caso di studio attraverso le nuove specifiche aziendali e le nuove classi d'utenza. Successivamente sarà di nuovo introdotta la parte riguardante le problematiche e le caratteristiche dell'implementazione dell'applicazione risolutiva, attraverso diagrammi er , schemi uml e una descrizione dell'interfaccia utente. • Capitolo 4: dopo un breve riassunto dei contributi apportati dalla tesi, saranno descritte alcune delle possibili prospettive di lavoro future, alcuni sviluppi e usi successivi dell'applicazione e le considerazioni finali. 16 Introduzione Capitolo 2: Tecnologie per la ricerca Web 2.1 Prefazione Nel settore delle tecnologie per la ricerca nel Web sono compresi tutti i servizi che in qualche modo, più o meno efficacemente, ci permettono di reperire delle informazioni tra la grande mole di dati esistente nel mondo per rispondere alle nostre esigenze. Ne fanno parte, quindi, sia i motori di ricerca generalisti, che effettuano ricerche non strutturate e poco efficaci, sia quelli verticali, che possono setacciare in modo più intelligente solo una determinata parte del Web. Sicuramente tra questi ultimi metodi, uno tra i più evoluti risulta essere quello della ricerca e classificazione dei microformat, cioè di alcune informazioni strutturate inserite nelle pagine Web. Codesti dati, nonostante debbano seguire una struttura ben definita e non espansibile, possono contenere tipologie di informazioni differenti, come ad esempio il prezzo e alcuni dettagli relativi ad un particolare prodotto venduto, i recapiti dell'azienda produttrice, le metodologie di pagamento e di spedizione sopportate e molto altro. Per questo motivo ci occuperemo in seguito dell'analisi di questi servizi. A scopo riassuntivo proporremo, a fine capitolo, oltre ad una tabella contenente le caratteristiche e i servizi offerti da ciascuna risorsa (dopo un'attenta analisi) anche dei consigli sull'utilizzo di un particolare servizio piuttosto che un altro relativamente al contesto aziendale in cui ci troviamo e ai requisiti richiesti. 17 Tecnologie per la ricerca Web 2.1.1 Motori di ricerca generalisti I motori di ricerca generalisti sono dei sistemi automatici che si occupano di analizzare dei dati, precedentemente raccolti ed indicizzati, per proporre poi, quando richiesto dall'utente, dei risultati inerenti alla richiesta effettuata. Ne esistono di diversi tipi attivi sul Web. Tra i più importanti e conosciuti, soprattutto nel panorama italiano, si possono citare sicuramente quelli offerti da Google, Yahoo e Microsoft live search. Questi servizi si basano su complesse fasi di analisi, di successive classificazioni all'interno delle proprie basi di dati ed infine, di calcolo dei risultati in risposta alle richieste da parte dei propri utenti. In particolar modo la fase di analisi è gestita da programmi appositi denominati crawler, spider o robot. Queste applicazioni si occupano di visitare automaticamente degli uri, cioè degli indirizzi univoci che identificano una risorsa o una pagina nel Web, contenuti all'interno di un elenco apposito. Durante l'analisi della pagina vengono inseriti nel database del motore di ricerca tutti i dati ritenuti importanti o utili al fine di trarre informazioni dall'url in questione. Una volta che queste applicazioni finiscono di processare la risorsa proseguono percorrendo in successione tutti gli hyperlink contenuti all'interno della pagina visitata. In questo modo, in un lasso di tempo ragionevole, questi programmi riescono a processare un insieme di pagine sempre maggiore nel Web salvando una grande mole di dati all'interno del proprio database. In periodi di tempo prefissati verranno poi programmate delle ulteriori visite alle pagine salvate nella base di dati in modo da tenere in costante aggiornamento i dati posseduti dal motore di ricerca. Per velocizzare questo processo le grandi aziende, come Google, dedicano intere batterie di server a tali applicazioni in modo da rendere l'operazione di analisi e d'immagazzinamento delle 18 Tecnologie per la ricerca Web informazioni il più possibile parallela, come mostrato nello schema riassuntivo in figura 1. Figura 1: schema della fase di analisi La fase d'indicizzazione delle informazioni, contenute nella base di dati del motore di ricerca, serve, invece, a rendere effettivamente disponibili i dati precedentemente immagazzinati. Questa funzionalità inoltre classifica le nuove informazioni secondo un determinato criterio basato su parole chiave in modo che le ricerche successive siano più rapide e performanti. In questo modo le pagine Web processate vengono contraddistinte con delle etichette univoche che ne rispecchiano approssimativamente la loro natura o i loro contenuti. Per un'impresa, la fase più importante del 19 Tecnologie per la ricerca Web processo eseguito da un motore di ricerca risulta essere quella relativa all'ordinamento dei risultati, infatti , tramite questa procedura, si delineerà la visibilità di una determinata impresa che possiede un sito Web. Infatti se si ottiene una posizione molto bassa nel ranking di queste risorse, non si verrà quasi mai proposti tra i primi risultati visualizzati da un utente che effettua una richiesta al servizio. Perciò molte imprese ricorrono all'ottimizzazione della propria pagina Web per i vari motori di ricerca disponibili. Queste tecniche consistono, ad esempio, nell'inserimento dei contenuti rilevanti all'inizio della pagina html, nella creazione di una propria sitemap contenente l'elenco delle informazioni da far processare al crawler, nel rendere i titoli delle varie pagine il più attinenti possibile al loro contenuto, nell'evitare i Javascript in-line che non vengono analizzati dai motori di ricerca oppure nell'utilizzo dei mark up che consentono di inserire delle strutture semantiche all'interno della pagina Web attraverso l'uso di microformat. Infine un motore di ricerca deve gestire la fase dell'interrogazione da parte di un utente. Per la creazione dell'elenco dei risultati da visualizzare si possono utilizzare diverse politiche, le più diffuse sono: • l'attinenza con le parole chiave inserite dall'utente. Questo risulta il metodo senza dubbio più importante e diffuso su cui si fonda il criterio di ordinamento dei risultati. Questo algoritmo analizza la query effettuata ricercando le parole chiave, con le quali sono indicizzati i dati all'interno della base di dati, secondo una logica booleana. A questo punto ordina i risultati in base al numero di espressioni booleane rispettate; • il filtraggio secondo particolari restrizioni introdotte dall'utente. In questo modo vengono esclusi a priori dalla lista dei risultati quelli che non lo rispettano. Alcuni esempi di filtri possono essere la lingua 20 Tecnologie per la ricerca Web con cui sono scritti, il formato del file, alcune frasi presenti o assenti dal documento ricercato ed altri ancora; • il numero di volte che le parole ricercate sono ripetute all'interno della pagina. Questo metodo viene utilizzato per scegliere l'ordine tra 2 o più risultati che soddisfano tutti i requisiti della ricerca effettuata; • la posizione delle parole chiave. Con questo criterio avranno un ranking maggiore le pagine con la parola chiave all'interno del titolo rispetto a quelle in cui è presente, ad esempio, nel tag body; • il numero di siti indicizzati che contengono il link del risultato analizzato. Questo criterio penalizza indirettamente i siti poco popolari e poco pubblicizzati in quanto assegna un coefficiente maggiore alle pagine che possiedono un numero più alto di hyperlink esterni che le puntano; • il numero di volte in cui il sito è stato scelto da utenti precedenti. Questo criterio sfrutta i dati statistici relativi alla prima scelta degli utenti che hanno effettuato ricerche simili a quella proposta; • i link sponsorizzati, infatti il ranking dei siti partner del motore di ricerca utilizzato sarà maggiore; • l'attinenza delle informazioni contenute nei microformat con la ricerca. Questo metodo rappresenta l'obiettivo che, negli ultimi anni, è diventato di fondamentale importanza per le aziende leader nel settore in quanto, attraverso i dati semantici, sarà possibile effettuare ricerche più dettagliate ed efficienti e non legate solamente al titolo o alle parole inserite nel testo di una pagina web. Per questo motivo diventerà di fondamentale importanza, per le aziende e per i privati, l'implementazione di microformat specifici all'interno dei propri siti Web. 21 Tecnologie per la ricerca Web 2.1.2 Microformat I microformat sono una parte di mark-up con i quali è possibile inserire delle strutture semantiche all'interno di una pagina Web senza comprometterne la comprensibilità da parte degli utenti che la consultano. Possiedono una struttura ben definita e poco espandibile per permetterne il riconoscimento ed una facile interpretazione da parte dei vari crawler dei motori di ricerca. Questa tecnologia permette quindi di dare un significato ben preciso alle informazioni inserite all'interno delle pagine, utilizzando particolari attributi dei tag html : • Rel: utilizzato nel tag html <a> per descrivere la relazione esistente tra la pagina puntata dal collegamento descritto e la pagina che lo contiene. • Rev: questo attributo, presente anch'esso nel tag <a>, specifica una seconda relazione che lega la pagina html con l'hyperlink contenuto. • Class: usabile in qualsiasi tag html, descrive il nome della classe di cui l'elemento fa parte ed è il metodo più utilizzato nei vari tipi di microformat. Questo perché può essere utilizzato anche nei <div> o negli <span> che rendono più facile sia la creazione di un layout strutturato nelle pagine html, semplificandone la comprensione agli utenti, sia l'inserimento di vari tipi d'informazione, diversificandosi dagli attributi rel e rev che permettevano solo l'utilizzo di link. Oltre a permettere l'estrazione dei dati d'interesse da parte dei crawler, i microformat, sono molto utili anche agli utenti che visitano una pagina Web che li contiene. Infatti, attraverso il browser, è possibile visionare e salvare queste informazioni sul proprio computer, come ad esempio l' indirizzo e la mail di una determinata azienda o la data e il luogo di un meeting. Per 22 Tecnologie per la ricerca Web consentire l'inserimento di diverse tipologie di dati, sono stati creati diversi microformat. Tra i più utilizzati: • hResume che può contenere informazioni relative ad eventi, come ad esempio il luogo, la data di inizio, la data di fine e una descrizione. Questo microformat può essere utilizzato per riassumere esperienze lavorative o scolastiche oppure per inserire le informazioni riguardanti un meeting aziendale passato o futuro. • hCalendar sintetizza dei dettagli riguardanti appuntamenti o impegni aziendali, come ad esempio le coordinate geografiche del luogo di un meeting, una descrizione delle tematiche trattate, il settore di attinenza, la data di inizio e la durata dell'evento oppure l'url del sito della manifestazione. Può essere molto utile in quanto attraverso un browser si può caricare automaticamente l'evento su un'agenda elettronica. • hAtom contiene informazioni relative alle news o ai feeds, come ad esempio la categoria della notizia, il nome dello scrittore e i suoi dati anagrafici, la data di pubblicazione e quella dell'ultimo aggiornamento, il titolo, il contenuto oppure un breve sommario. • hReview consente di inserire i dati relativi ad una recensione, infatti contiene i dati del recensore, la valutazione espressa e il titolo. Questo microformat è molto utile quando si ricercano dati relativi a prodotti musicali, cinematografici o a servizi per il pubblico, ad esempio alberghi o ristoranti. Infatti è possibile ordinare i risultati ricercati in base alla recensione media ottenuta. • Dbpedia viene invece utilizzato per contenere le informazioni relative alla maggior parte dei lemmi contenuti su wikipedia, come ad esempio l'immagine relativa al risultato o le sue informazioni principali. 23 Tecnologie per la ricerca Web I microformat successivi saranno approfonditi maggiormente in quanto saranno utilizzati nella sperimentazione del servizio offerto da Yahoo per la ricerca dei dati strutturati all'interno delle pagine Web e perché si prestano maggiormente a contenere i dati d'interesse delle aziende analizzate. • hCard è in grado di sintetizzare i dati relativi ad una persona o ad un'azienda, in quanto può contenere: l'url del sito e del logo aziendale, il nome e cognome del proprietario, il recapito di telefono fisso e mobile, il numero di fax, l'indirizzo di posta elettronica. Inoltre può includere anche lo stato, la provincia o regione, il cap, il paese e la via della sede aziendale. Questi dati sono inseriti in una qualsiasi pagina html attraverso questa struttura: • Goodrelations invece si occupa di contenere le informazioni relative ai servizi offerti dalle aziende, permettendo di inserire, ad esempio, il prezzo, le dimensioni oppure i metodi di pagamento e di spedizione 24 Tecnologie per la ricerca Web sopportati dall'azienda produttrice. Inoltre è possibile specificare attraverso l'utilizzo di un microformat hCard, posto all'interno di quello di Goodrelations, tutti i dati relativi al produttore e alla propria sede oppure, utilizzando un hReview, si possono inserire delle recensioni che il proprio prodotto ha ricevuto. Infine, nell'eventualità che un azienda possieda ulteriori dettagli che riguardano i propri prodotti, è stato permesso l'inserimento di ulteriori dati facoltativi, tra cui: una breve descrizione, il prezzo di listino scontato, l'indirizzo url della garanzia, un'immagine del prodotto, un breve commento illustrativo, gli orari settimanali di vendita o di assistenza al pubblico oppure il codice univoco assegnato al servizio. Questi dati devono attenersi alla seguente struttura: 25 Tecnologie per la ricerca Web 2.2 Le tecnologie utilizzate Di seguito verranno introdotti i servizi offerti da Google e da Yahoo, per consentire la creazione di un proprio motore di ricerca da parte delle aziende, soffermandosi particolarmente sui metodi d'implementazione e sul grado di personalizzazione consentito in modo da facilitarne poi la comprensione quando verranno sperimentati in un caso concreto. Yahoo BOSS, Google CSE e Yahoo SearchMonkey, anche se sono stati concepiti per rispondere allo stesso fabbisogno, cioè quello che si è creato negli ultimi anni nelle imprese che desiderano personalizzare la ricerca all'interno del proprio sito Web senza, però, incappare nelle problematiche legate all'implementazione di un proprio motore di ricerca, possiedono molti servizi e caratteristiche differenti. Per questo motivo questi servizi si prestano a soddisfare determinati prerequisiti aziendali, come ad esempio la possibilità di avere un'ampia gestione del metodo di visualizzazione o di ordinamento dei risultati, l'opportunità di ricercare delle particolari strutture di dati per aumentare l'efficacia delle ricerche svolte oppure l'obbligo di avere un determinato tempo di risposta del servizio. Inoltre si prestano ad essere utilizzate da diverse classi d'utenza. Infatti Google CSE si può integrare facilmente in una qualsiasi pagina html, senza la necessità di nessuna tecnologia server-side, invece la risorsa messa a disposizione da YAHOO dev'essere supportata da un'adeguata applicazione residente su di un server php o java che si occupi della gestione della richiesta al servizio e dell'interpretazione della risposta ottenute, Quest'ultimo però, offre molti più vantaggi, legati all'interpretazione dei microformat, se associata all'utilizzo di YAHOO SearchMonkey rispetto alla concorrente. 26 Tecnologie per la ricerca Web 2.2.1 Google CSE CSE, custom search engine, come già detto in precedenza, è il servizio per effettuare ricerche molto più efficaci all'interno di un determinato contesto proposto da Google. Questa risorsa è attivabile e configurabile attraverso un pannello di controllo a interfaccia Web a cui si può accedere solo dopo aver creato un apposito account presso il gestore del servizio. Attraverso questa interfaccia Web è possibile configurare: • Le informazioni base, che comprendono, oltre al nome e alla descrizione del proprio motore di ricerca, la lingua con cui verranno visualizzati i risultati e alcune parole chiave che possano identificare questo servizio, come ad esempio i settori trattati o il nome del proprietario o dell'azienda che lo utilizzerà. Inoltre è possibile settare alcune preferenze di ricerca, come ad esempio la possibilità di inserire o meno altri indirizzi Web proposti da Google o di limitare la ricerca solo ai siti contenuti nel dominio oppure il permesso di accorpare ai risultati i link sponsorizzati dal servizio. • Il dominio di ricerca, composto da un elenco di tutti gli indirizzi delle pagine Web che si vogliono inserire nel proprio motore di ricerca e da quelli che si vogliono escludere. Si possono inserire fino a un massimo di 5000 siti, se non si inseriscono etichette o keywords. In alternativa si deve considerare che la somma di tutte queste direttive e dei siti inviati al server non deve superare le 5000 unità. • Le label, che permettono di classificare i siti presenti nel dominio di ricerca in gruppi attraverso delle etichette che li associano in base al contenuto o al settore a cui si riferiscono. Attraverso queste etichette è possibile indirizzare le ricerche da parte degli utenti creando delle 27 Tecnologie per la ricerca Web specie di sotto-domini più specifici e attinenti al contesto, automaticamente e senza nessun tipo d'iterazione con il programma. Queste etichette verranno proposte al di sotto della casella di testo nella quale inserire la query al servizio di Google per permettere il perfezionamento della ricerca agli utenti che lo ritengano opportuno. Attraverso le label è anche possibile la modifica del ranking dei risultati ad esse associati, infatti attraverso la modalità di queste etichette 'eliminate' è possibile escludere i risultati dalla ricerca. Impostandola invece come 'boost' è possibile aumentare o diminuire il ranking dei risultati legati a questa determinata etichetta attraverso un parametro che può variare da -1 a +1, considerando che il valore di default è uguale a 0,7. Infine, impostando la modalità come 'filter' si possono promuovere i risultati associati a dominio esclusivo di ricerca. Un esempio pratico di label potrebbe essere il seguente: Successivamente le label vanno associate alle pagine Web del dominio di ricerca in questo modo: L'unico vincolo che le label devono rispettare riguarda la lunghezza massima che non deve superare i 100 caratteri. 28 Tecnologie per la ricerca Web • Il layout e la formattazione, per poter modificare il metodo di visualizzazione dei risultati ottenuti in risposta dalla query effettuata dall'utente. Purtroppo non sono previste molte personalizzazioni, infatti si possono cambiare solo i colori delle varie parti di cui è composto il risultato, cioè il titolo, lo sfondo, la descrizione, i link visualizzati e poco altro. Inoltre è possibile inserire un'immagine o il logo aziendale da visualizzare di fianco alla casella di testo per la ricerca e un collegamento che porta al sito aziendale che ha configurato il servizio. Infine è concessa la possibilità di mutare l'interfaccia mostrata all'utente, cambiando il colore di sfondo e lo stile con cui è riportato il logo di Google. • L'account Adsense, che permette di inserire gli annunci pubblicitari di Google all'interno della pagina, in modo da trarre dei profitti in base al numero di utenti che utilizza il motore di ricerca. Questa possibilità può essere molto utile per le grandi aziende che possono così avere dei profitti dal proprio sito aziendale. • Le keywords, che permettono di suggerire all'utente alcuni consigli per rendere la propria query di ricerca più specifica. Ad esempio se un utente intende trovare i risultati associati al risparmio energetico inserendo però solo la parola 'energia' come testo da ricercare nelle pagine Web, Google CSE, attraverso le keywords, proporrà delle specificazioni, sotto forma di link posizionati appena sopra i risultati trovati, che potranno modificare la stringa da ricercare. Per il caso appena descritto possono essere un esempio concreto di keywords quelle che concatenano alcune parole come “risparmio”, ”rinnovabile”, ”elettrica”, ”nucleare” oppure “termica” alla query string, rendendo i risultati ottenuti più specifici e attinenti alla ricerca effettuata dall'utente. Le keywords possono essere inviate al servizio in un secondo momento con la seguente struttura: 29 Tecnologie per la ricerca Web Queste utilità di specificazione sono concatenate dal servizio alla richiesta digitata dall'utente utilizzando la parola 'more:'. Purtroppo Google permette l'utilizzo di una sola keyword per ogni iterazione con il proprio servizio e ne visualizza al massimo 16 per volta. Questi vincoli possono essere facilmente superati implementando una semplice interfaccia a lato server per permettere all'utente di scegliere tutte le keywords che ritiene appropriate passando poi una query string opportunamente modificata al servizio di Google. Un ulteriore vincolo è presente sulla lunghezza massima delle keywords che non può superare i 100 caratteri in quanto poi si avrebbero dei problemi legati alla visualizzazione, nell'interfaccia del servizio, del link che serve per richiamarle. • I sinonimi, che sono delle keywords particolari che permettono di espandere la query di ricerca con parole dal significato simile attraverso delle condizioni booleane OR. Sono molto utili per consentire una ricerca più ampia all'interno del database del motore di ricerca in quanto si possono inserire più parole con lo stesso significato da ricercare nell'indice. Un esempio pratico potrebbe essere quello in cui un utente che effettua una ricerca inserisce 'pannelli solari'. In questo caso vogliamo che la query venga espansa con dei sinonimi, quindi concateneremo anche le parole 'pannelli fotovoltaici' e 'impianti ad energia solare'. Un ulteriore esempio potrebbe essere quello nel quale si sta cercando una parola al plurale, che difficilmente verrà trovata all'interno dell'indice 30 Tecnologie per la ricerca Web per cui cui verrà aggiunto anche il suo singolare. Di seguito verrà riportata la struttura a cui bisogna attenersi per implementare questo servizio: L'unico vincolo a cui devono sottostare queste particolari keyword riguarda la lunghezza massima che il sinonimo può raggiungere, che anche in questo caso è fissata in 100 caratteri. Successivamente, per quanto riguarda la fase d'implementazione del servizio, bisogna inserire, all'interno della pagina in cui si desidera visualizzare l'interfaccia di ricerca offerta da Google CSE, il seguente stralcio di codice: 31 Tecnologie per la ricerca Web Infine occorre creare una pagina apposita per la visualizzazione dei risultati restituiti dal motore di ricerca che bisogna inserire nel campo action del form creato in precedenza. In questa pagina va poi riportato il seguente codice: Esso è reperibile, come quello relativo alla form per l'immissione dei dati, attraverso l'apposito link presente sul pannello di controllo on-line. Google permette di scegliere, oltre a quella descritta in precedenza, anche delle implementazioni diverse. Infatti è possibile configurare il servizio in modo che compaia anche tra i gadget selezionabili per una qualsiasi pagina personale di Google, permettendo di fatto anche agli utenti che non conoscono il sito aziendale di poter utilizzare il servizio appena creato. In questo modo sarà anche possibile, attraverso un particolare collegamento, ricreare il motore di ricerca appena configurato anche su altre pagine Web scaricando solo gli stralci di codice necessari, pur non disponendo dell'account che ha creato e configurato il servizio. Infine per le aziende che non possiedono un proprio sito nel quale inserire il proprio motore di ricerca, Google può creare delle pagine apposite nelle quali inserire il motore di ricerca stesso. Queste saranno poi raggiungibili attraverso l'utilizzo di un collegamento specifico che verrà visualizzato al momento della creazione di questo particolare tipo di implementazione. 32 Tecnologie per la ricerca Web Dopo aver configurato ed implementato il servizio è inoltre possibile modificare i dati inseriti inizialmente solo attraverso i seguenti procedimenti: • Dal pannello di controllo on-line; nel quale oltre a poter modificare le informazioni di base del servizio come la lingua, la descrizione, il titolo ed il tipo d'utilizzo, si possono mutare anche le keywords ed i relativi siti associati. Inoltre è possibile sia reinserire, anche completamente, gli indirizzi dei siti che formeranno il dominio di ricerca, sia importare le informazioni basilari sul tipo di visualizzazione voluta, come ad esempio il colore o la dimensione del carattere. • Usando file xml collocati sul proprio Web server. In questo modo è possibile aggirare molti ostacoli che si creano quando si agisce con il pannello di controllo, come ad esempio l'impossibilità di inserire tutti gli indirizzi del dominio di ricerca in un'unica operazione, cosa che costringe l'utente a inutili perdite di tempo in fase di inserimento dei dati. Un'altra ragione per preferire quest'ultimo metodo è data dal fatto che si può agire programmaticamente sull'insieme dei siti in cui si vuole ricercare. Infatti in questo modo, si può aggirare anche il limite introdotto da Google relativamente al numero massimo dei siti presenti nel dominio. Questo perché generando dinamicamente il file in base ai parametri di ricerca, si può creare una ricerca meglio definita consentendo sempre un dominio composto dal massimo numero permesso, utilizzando solo siti attinenti al contesto di ricerca ed eliminando cosi quegli url specifici per un'altra situazione. Un altro fatto positivo consiste nel poter tenere costantemente aggiornate le proprie keywords e il proprio dominio in modo semplice e veloce. Questo può essere molto utile alle aziende che devono gestire alcune notifiche FEED RSS o che vogliono pubblicare e ricercare dei dati che sono in 33 Tecnologie per la ricerca Web costante aggiornamento. É possibile, inoltre, strutturare il file xml in sottolivelli, per permetterne una distribuzione su più server o per evitare di riscriverlo completamente ogni volta scegliendo i sottodomini, in base alle esigenze. Si possono configurare fino a 5 sottolivelli composti da 50 file di dimensione massima pari a 3 MB per ognuno e a 10 MB totali. Inoltre la struttura del file xml dovrà attenersi al seguente schema: Invece, per poter creare dei sotto-domini attraverso diversi file xml, la sintassi corretta per dichiararne la posizione nel file xml padre a cui il servizio di Google si riferisce è la seguente: Infine è possibile inserire, nel xml, informazioni relative sia alle labels usate per consentire la modifica del ranking dei risultati proposti da Google CSE, sia alle keywords. 34 Tecnologie per la ricerca Web • Inviando file XML o OPML al server del servizio. Questo metodo è una variante di quello precedente, in quanto, invece di creare il file xml sul proprio server, lo si deve inviare tramite metodo post, al seguente indirizzo Web: http://www.google.com/coop/api/default/annotations/. In questo modo però si perde la possibilità di creare dei sotto-domini attraverso altri file xml richiamati all'interno del xml principale. Si può però evitare di occupare spazio sui propri server. E' permesso inviare al server di Google CSE al massimo 5000 annotations suddivise in file che ne possono contenere fino a 2000 ciascuno. Google mette a disposizione anche dei servizi supplementari relativi al recupero di informazioni di carattere statistico sull'utilizzo giornaliero del proprio servizio. Stando alle dichiarazioni degli sviluppatori di Google CSE, visto il grande successo ottenuto con questa applicazione, prossimamente saranno incorporati dei servizi aggiuntivi utilizzabili all'interno del proprio motore di ricerca. Infatti sarà possibile per alcuni tipi di ricerche particolari, come indirizzi, immagini o documenti, creare delle visualizzazioni apposite. Un esempio classico potrebbe essere quello in cui, ricercando un indirizzo, venga visualizzata direttamente la mappa con le informazioni relative al recapito, sfruttando i servizi offerti da Google maps. Google offre il suo servizio gratuitamente sia alle istituzioni no-profit, sia ai privati o alle aziende, con l'unica differenza che questi ultimi hanno l'obbligo di visualizzare sia il marchio aziendale di Google, sia le ricerche sponsorizzate dal servizio all'interno della pagina Web di ricerca e dei risultati. Per poter inserire questi risultati particolari non bisogna modificare in alcun modo il servizio precedentemente configurato, infatti Google CSE si occuperà da solo di questa operazione, inserendo gli sponsor in un particolare spazio riservato nel div creato nella pagina web che implementa il servizio. 35 Tecnologie per la ricerca Web 2.2.2 Yahoo Boss L'accesso a Yahoo BOSS è fornito gratuitamente agli sviluppatori che possiedono un account su Yahoo!. Una volta che si sono ottenute le credenziali per poter accedere al network bisogna registrare la propria applicazione in modo da poter richiedere una particolare chiave univoca denominata appid. Questa chiave sarà molto importante ai fini dell'implementazione in quanto tutte le volte che bisognerà utilizzare il servizio bisognerà inviarla, aggiungendo, se necessario, ulteriori parametri, all'indirizzo seguente: http://boss.yahooapis.com/ysearch/{service}/v1/{query}?appid={ID}/[Parametri] In questo modo è stata lasciata allo sviluppatore l'incombenza della scelta del linguaggio di programmazione per poter gestire, sul proprio Web server, l'invio della richiesta http e l'interpretazione della relativa risposta nel formato json o xml. Utilizzando un servizio rest, Yahoo ha evitato l'introduzione di inutili vincoli, lasciando un alto grado di libertà agli sviluppatori che si cimenteranno nella creazione di un proprio motore di ricerca. Come si può notare dalla struttura della richiesta http da effettuare a Yahoo BOSS, sono disponibili diverse categorie di servizi, richiamabili inserendo le seguenti parole nell'apposito spazio: • Web, Questo rappresenta il servizio per inviare le richieste di ricerca degli utenti per ottenere in risposta le informazioni standard dei risultati, come ad esempio la descrizione, il link di collegamento, il titolo oppure la data dell'ultima modifica apportata alla pagina Web. La ricerca verrà eseguita all'interno del dominio personalizzato, se specificato, altrimenti verrà eseguita in tutto il Web. • Boss site explorer. Questo servizio è utilizzato per avere delle informazioni legate al traffico e all'utilizzo del motore di ricerca 36 Tecnologie per la ricerca Web associato all'appid specificata nei parametri passati dalla richiesta. Può ritornare ad esempio oltre ad alcuni dati statistici legati all'utilizzo giornaliero del servizio, anche l'elenco delle url, indicizzate da Yahoo, che hanno utilizzato almeno una volta la nostra applicazione oppure una lista dei sotto-domini contenuti negli indirizzi del dominio di ricerca utilizzato. • News. Attraverso l'uso di questo servizio è possibile ottenere, come risultati, solo delle notizie e le relative informazioni. Ad esempio la data e l'ora in cui è stata scritta, la fonte ed il suo indirizzo internet, l'url dell'articolo oppure il titolo. Queste informazioni verranno restituite nel seguente formato: • Image. Utilizzato se si desidera effettuare delle ricerche tra le immagini indicizzate da Yahoo o presenti nel dominio di ricerca specificato. Risulta molto utile se si cercano delle foto riguardanti dei particolari prodotti o località oppure se si vogliono associare delle immagini a qualche risultato ottenuto. Per poter utilizzare quest'ultimo servizio si deve implementare un'applicazione che effettui 2 richieste contemporanee, una con il servizio Web e una con quello image , e successivamente si occupi di associare le immagini trovate ai relativi servizi. Le informazioni ritornate da BOSS per ogni immagine 37 Tecnologie per la ricerca Web possono essere le sue dimensioni, l'url dell'anteprima e quello effettivo della foto, il titolo, la data in cui è stata effettuata ed il formato. Infine il servizio adotterà il seguente formato di risposta: • Spelling suggestion. Questa risorsa, invece, viene utilizzata per cercare di aiutare l'utente che utilizza il servizio, a digitare correttamente la parola ricercata confrontandola con quelle inserite nell'indice di Yahoo e proponendo in risposta le parole che più si avvicinano a quella introdotta erroneamente nella query string. In questo modo il programmatore potrà proporre un'interfaccia apposita che permetta ai suoi utenti di selezionare la parola che veramente intendevano ricercare per poi inviarla a BOSS e ottenere i risultati corretti. La risposta del servizio avrà questo formato: Oltre al tipo di servizio desiderato, nella richiesta da inviare al server di Yahoo BOSS bisogna inserire nell'apposito spazio, ovviamente, la query di 38 Tecnologie per la ricerca Web ricerca scelta dall'utente. Questa dev'essere normalizzata per essere idonea ad una richiesta http e per questo si dovranno sostituire gli spazi vuoti con la relativa codifica ASCII. Inoltre si dovrà tenere in considerazione che la lunghezza massima della richiesta, conteggiando anche tutti i parametri inseriti, non superi gli 8178 caratteri, quindi la query string potrà avere una dimensione massima variabile in base al numero di parametri specificati. Essi dovranno essere inviati al servizio tramite metodo GET, e potranno assumere i seguenti valori: • Appid. Questo parametro è obbligatorio e serve a identificare la risorsa residente sul server Yahoo a cui si vuole inoltrare la richiesta http. Inoltre serve a Yahoo per conteggiare gli accessi effettuati ad una certa applicazione in quanto fornisce gratuitamente solo 10000 query giornaliere. • Format. Anche questo parametro risulta essere obbligatorio, in quanto si specifica il tipo di file in cui verranno inseriti i risultati proposti dal servizio in base alla query di ricerca effettuata. La scelta è consentita solo tra due tipi di file: l'xml o il json. Essa assume significato solo per gli sviluppatori che in questo modo, dispongono di libertà maggiore nella scelta del linguaggio di programmazione utilizzabile, in quanto i servizi offerti, le caratteristiche e le strutture di risposta delle due estensioni disponibili, sono le medesime. • Count. Serve per indicare al server di Yahoo quanti risultati inserire nel file di risposta. Il valore di default è 10 e quello massimo è 50. In Yahoo BOSS la paginazione dev'essere gestita dal programmatore, per questo, attraverso la variabile count, è possibile impostare il numero di risultati che si vogliono visualizzare per ogni pagina. Il vincolo introdotto di 50 risultati massimi per ogni query rappresenta un limite per questo servizio: per ottenere tutti i risultati e poi riordinarli completamente secondo una propria politica bisognerà fare più query 39 Tecnologie per la ricerca Web consecutive al servizio ed attendere sia il tempo impiegato per soddisfare tutte le risposte sia quello di ricerca in diversi file da parte dell'applicazione sul proprio server. • Start. Questo è un altro parametro che viene utilizzato per risolvere il problema della paginazione dei risultati. Infatti Boss è un servizio senza memoria, quindi se noi effettuiamo la stessa richiesta per diverse volte, mancanti invece di ricevere la parte dell'array dei risultati otterremmo la stessa parte dell'elenco ricevuta in precedenza, in quanto questo servizio ricalcola l'elenco totale dei risultati e ci invia sempre la prima parte di 50 risultati per default. Per risolvere questo problema è stato introdotto il parametro start che rappresenta il ranking del primo risultato voluto in risposta. Ad esempio se count e start sono impostati su 50 otterremo la seconda parte dei risultati di una query, cioè quelli dalla posizione 50 alla 100. • Lang. Indica il codice della lingua con cui si vuole effettuare la ricerca, di default assume il valore 'en' che rappresenta la lingua inglese. • Region. Indica il codice relativo allo stato in cui si vuole effettuare la ricerca, il valore predefinito è 'us' cioè Stati Uniti. • Type. Indica la categoria dei risultati che vogliamo riceve in risposta, ad esempio pdf, msword o xml. Di default assume il valore di 'abstract', in modo da permettere delle ricerche che ritornano una stringa di 300 caratteri tratti dalla pagina Web per ogni risultato. • Filter. Rappresenta un ulteriore vincolo che si può aggiungere alla query, infatti attraverso questo parametro si possono filtrare tutti i risultati che hanno dei contenuti pornografici, inserendo -porn, o violenti, attribuendogli il valore -hate. In un contesto aziendale questo parametro non assume un grande significato ma in un settore privato o pubblico è molto importante. Questi particolari filtri di default non sono impostati. 40 Tecnologie per la ricerca Web • Sites. Rappresenta l'unico modo per impostare un dominio di ricerca personalizzato. Questo parametro assumerà, come valore, l'elenco completo degli indirizzi presso i quali si vuole effettuare la ricerca. Purtroppo non sono previsti sistemi per la memorizzazione di questi dati sui server di Yahoo, come imposto dalla politica delle risorse rest, quindi bisogna inoltrare tutti gli indirizzi separati da virgole tutte le volte che si desidera effettuare una richiesta al servizio. Considerando che il numero massimo di caratteri inviabili attraverso la richiesta http equivale a 8178, si possono indicativamente inoltrare solamente 200 – 250 indirizzi per volta. Inoltre ad ogni richiesta bisogna attendere sia il tempo di invio di tutti i dati contenuti nella richiesta, sia quello relativo alla ricezione e all'interpretazione di tutti gli indirizzi delle pagine Web inviati da parte dei server di Yahoo. D'altra parte però, in questo modo, è consentita la modifica del dominio di ricerca in pochissimi istanti, rendendo immediatamente attivi i cambiamenti apportati. Oltre ai parametri precedentemente descritti, che permettono di configurare il proprio motore di ricerca nel modo desiderato, è presente un ulteriore attributo da inoltrare al servizio di Yahoo. Infatti attraverso il valore associato a questa particolare variabile è possibile ottenere diverse informazioni aggiuntive correlate ai risultati proposti dal servizio. Questo parametro prende il nome di 'view' e lo si può settare con uno dei seguenti valori: • Keyterms. Tramite questo servizio è possibile indicare al server di Yahoo di aggiungere, alle informazioni standard restituite per ogni risultato, anche un elenco di parole chiave o frasi ad esso correlate. Questo per permettere allo sviluppatore di aiutare, attraverso un'apposita interfaccia, i propri utenti nella creazione di una query più specifica. Questo servizio ritorna al massimo 20 keyterms per ogni risultato proposto. Ad esempio, se tra i risultati ottenuti in risposta 41 Tecnologie per la ricerca Web fosse presente un sito dedicato al risparmio energetico, una possibile combinazione di keyterms restituita potrebbe essere la seguente: • SearchMonkey_feed. Questa view risulta sicuramente la più importante, soprattutto per le aziende che vogliono effettuare delle ricerche mirate utilizzando dei dati strutturati all'interno delle proprie pagine Web, in quanto ritorna, per ogni risultato proposto, tutti i microformat che sono stati indicizzati dai crawler di SearchMonkey. In questo modo è possibile applicare degli ulteriori filtri attraverso la propria applicazione server-side ricercando all'interno di queste strutture di dati. Essa supporta tutti i tipi di microformat compatibili con SearchMonkey ed inoltre queste informazioni non presentano alcun tipo di vincolo sul numero o sulla lunghezza massima. Purtroppo il servizio non può effettuare delle ricerche interpretando il significato di questi microformat, perciò se si desidera ad esempio filtrare la ricerca con un range di prezzi, sul luogo di produzione, sul nome del produttore oppure sulla categoria del servizio offerto, bisogna impostarla sulla propria applicazione. D'altra parte questa view risulta molto utile nei casi seguenti: qualora si voglia arricchire il risultato proposto all'utente con delle informazioni aggiuntive; qualora si desideri inserire dei servizi supplementari legati ad esse senza implementare complicati algoritmi di ricerca che setacciano la pagina web del risultato o il database aziendale in cerca di informazioni 42 Tecnologie per la ricerca Web supplementari. Questi dati saranno ritornati attraverso la seguente struttura: • Language_identifier. Aggiunge alle informazioni standard un parametro che identifica la lingua utilizzata nel documento o nel risultato ritornato dal servizio. Ad esempio se consideriamo una pagina Web in inglese otterremo questo dato aggiuntivo: • SearchMonkey_rdf . Consente di visualizzare tutti i microformat come nella view 'SearchMonkey_feed', però li restituisce all'interno di una struttura diversa. La scelta della view è lasciata al tipo d'implementazione che si utilizza in quanto i dati restituiti dal servizio sono i medesimi e non dipendono in alcun modo dal tipo di microformat inserito nella pagina Web dei risultati proposti dal motore di ricerca. Riproponiamo di seguito l'esempio con gli stessi dati precedenti per 43 Tecnologie per la ricerca Web sottolineare ulteriormente il diverso metodo utilizzato per contenere i medesimi dati: I risultati standard proposti, indifferentemente dal formato del file di risposta selezionato, presentano la medesima struttura. Tra le informazioni che Boss ritorna, le più importati sono le seguenti: • Abstract. Rappresenta un estratto di 300 caratteri da una pagina Web, e tramite questo dato è possibile visualizzare all'utente che effettua la ricerca, un'anteprima del risultato proposto. Risulta molto utile anche al programmatore che ricercando dei termini particolari in questa stringa di testo potrà escludere a priori il risultato, evitando ad esempio errori di disambiguazione. 44 Tecnologie per la ricerca Web • Date. Rappresenta la data relativa all'ultima modifica apportata al documento o alla pagina Web ed è inserita nel formato aaaa/mm/gg. Questo parametro può essere utilizzato per stabilire a priori se un determinato risultato è obsoleto o se i suoi contenuti sono in costante evoluzione. • Click url. Consiste nell'url da utilizzare se si vogliono inserire dei collegamenti nella pagina Web nella quale si intende visualizzare i risultati. Tramite questo indirizzo è possibile effettuare una redirect tramite un dominio di Yahoo. • Dispurl. Questo dato rappresenta invece l'url da visualizzare nella pagina a titolo dimostrativo, per permettere all'utente di capire immediatamente quale sarà l'indirizzo effettivo della pagina relativa al risultato. • Title. Consiste nel titolo del risultato proposto o della sua pagina Web. • Size. Rappresenta la dimensione in byte del risultato. • Url. Questo parametro contiene l'indirizzo effettivo del risultato. Oltre ai parametri legati ai risultati, il servizio ritorna anche delle informazioni numeriche riferite allo stato attuale dei risultati fin qui ottenuti: • count, che indica il numero dei risultati presente nel resultset, può assumere al massimo un valore pari a 50; • start, che rappresenta il numero della posizione del primo risultato inserito nel file restituito dal servizio. Questo parametro è molto utile soprattutto quando il programmatore deve gestire la paginazione dei risultati ottenuti, infatti tramite il valore di start riesce a riordinare tutti i resultset ottenuti ricreando l'ordine suggerito da Boss; • totalhits, il quale indica il numero totale dei risultati trovati dal servizio di Yahoo per la query di ricerca inserita dall'utente; 45 Tecnologie per la ricerca Web • deephits, che rappresenta invece il numero di risultati proposti da BOSS, in risposta alle chiavi di ricerca inviatogli dall'utente, senza considerare i duplicati. Di seguito è proposto uno stralcio di xml contenente dei risultati generici, per mostrare in che modo vengono proposte tutte le informazioni descritte fino ad ora: Questa struttura può essere integrata tramite le informazioni aggiuntive provenienti dalle varie view che si possono richiedere. Allo sviluppatore è lasciata autonomia per quanto riguarda la scelta sia del modo con cui presentare i risultati agli utenti sia dell'ordine con cui visualizzarli. Questa scelta consente da una parte un ampio grado di personalizzazione del servizio ma presenta anche degli svantaggi, come ad esempio la gestione della paginazione dei risultati o dell'eliminazione dei risultati che non sono ritenuti corretti tramite l'implementazione di un filtro. Infine per richiedere 50 risultati per una particolare query di ricerca e le relative view di searchmonkey, avremo bisogno di almeno 10 richieste al servizio, quindi un sito con molti utenti può superare facilmente la soglia delle 10000 richieste giornaliere gratuite. 46 Tecnologie per la ricerca Web 2.2.3 Yahoo SearchMonkey SearchMonkey non è un servizio come quelli precedentemente descritti, infatti è sostanzialmente un framework che permette la creazione di applicazioni tese al potenziamento dei risultati ottenuti attraverso il motore di ricerca generalista di Yahoo. Inoltre, attraverso particolari crawler, questo servizio permette l'estrazione dei microformat dalle pagine Web analizzate indicizzandole nel proprio database. SearchMonkey Esegue quest'ultima operazione in modo da rendere queste particolari strutture di dati facilmente interpretabili anche da Yahoo BOSS, che li ritorna associati ai propri risultati attraverso l'uso di particolari servizi. Il principale difetto di questo servizio sta nel fatto che le applicazioni, implementate per creare delle visualizzazioni particolari per alcuni tipi di risultati, non possono essere inserite nel proprio motore di ricerca o in una pagina Web ma solo all'interno del motore di ricerca generalista di Yahoo. Inoltre dovranno essere selezionate dagli utenti registrati al dominio di Yahoo per venire attivate, ma solamente nella pagina personale dell'account che l'ha selezionato. Per questo motivo, le aziende interessate a produrre delle applicazioni particolari per la visualizzazione dei propri prodotti, dovranno prima di tutto pubblicare il loro programma e poi pubblicizzare questo servizio specifico per permettere agli utenti di conoscerne l'esistenza. Per poter configurare queste particolari applicazioni bisogna possedere un account nel network di Yahoo per gli sviluppatori ed accedere alla pagina principale del servizio. Attraverso questa interfaccia Web è possibile settare, oltre al nome del servizio, alla sua categoria e ad una breve descrizione, i seguenti parametri: • Type. Attraverso questo parametro è possibile la scelta del metodo con cui effettuare la visualizzazione dei risultati. Potremo scegliere tra enhanced result o infobar. Il primo permetterà di modificare 47 Tecnologie per la ricerca Web completamente lo stile classico di visualizzazione, in quanto al posto della solita descrizione si potrà inserire , oltre ad un immagine, anche dei collegamenti per eventuali servizi oppure delle informazioni supplementari. Scegliendo l'altra opzione si potrà solamente affiancare una barra alla descrizione e al titolo del risultato contenente dei servizi aggiuntivi, come ad esempio il ranking o il collegamento alla pagina per il noleggio del prodotto. Immagine 3: esempio dei metodi di enhanced result e di infobar. • Trigger Url. Rappresenta il parametro più importante del servizio, in quanto in esso si dovranno inserire gli url di tutti i risultati in cui si vuole utilizzare l'applicazione creata. Infatti solo se il risultato proposto dal motore di ricerca di Yahoo avrà l'indirizzo contenuto in questo dominio sarà visualizzato attraverso l'applicazione creata, altrimenti verrà mostrato all'utente nel modo standard. • Immage domains. Contiene un elenco di url da cui verranno estratte le immagini da affiancare ai risultati, se non contenute negli indirizzi specificati nel campo trigger url. In questo modo si possono estrarre,ad esempio, le immagini da una pagina Web contenente il catalogo dei prodotti e i dati dal sito dei fornitori o dell'azienda. • Link domains. E' composto da una lista di url dai quali verranno estratti i link dei servizi da associare ai risultati, se non presenti negli indirizzi specificati nel campo trigger url. In questo modo si potrà mostrare ad esempio i dati relativi a un prodotto prelevati da un determinato url e il link al servizio di noleggio o installazione estratto da un altro indirizzo. 48 Tecnologie per la ricerca Web • Data service. Contiene l'elenco dei microformat e dei relativi campi che si vogliono visualizzare nel risultato, in modo da impostare la query che il servizio dovrà effettuare al proprio database per ottenere tutti i dati da visualizzare. In questo servizio, per implementare la propria applicazione, è consentito solo l'utilizzo di php ed il codice dovrà essere inserito nella relativa casella di testo dell'interfaccia Web offerta dal servizio stesso. I servizi creati dovranno attenersi ad una struttura prestabilita, infatti si potranno inserire, nell'apposito array di valori da passare a SearchMonkey, solo i seguenti parametri : • i dettagli dell'immagine, che comprendono il nome dell'illustrazione e l'indirizzo da cui prelevarla; • i servizi offerti, rappresentati da link che puntano a delle pagine che contengono dei servizi associati al risultato, come ad esempio il sito di un corriere per la spedizione del prodotto ricercato oppure un portale che offre una comparazione della risorsa trovata con altre simili. SearchMonkey consente di inserirne al massimo 4 per ogni risultato proposto; • alcune informazioni aggiuntive, che saranno visualizzate con il nome del parametro ed il relativo valore. Il servizio impone l'inserimento di 4 coppie nome-valore, ma se si desidera visualizzarne di meno si può inserire al posto del nome la parola chiave 'SMDEFAULT' che indica l'assenza di informazioni da visualizzare in quella posizione; • le direttive per l'infobar , che comprendono tutte le informazioni da visualizzare nella barra al di sotto dei risultati. Se questi parametri saranno settati azzereranno quelli precedentemente inseriti, in quanto non è possibile mischiare i 2 tipi di visualizzazione consentiti. 49 Tecnologie per la ricerca Web Di seguito proporremo un esempio esteso di una possibile applicazione: Una volta terminate le fasi di creazione e di configurazione del servizio bisogna inviare la propria applicazione a Yahoo che deciderà se pubblicarla o se eliminarla dopo un'attenta analisi. Altri servizi offerti da SearchMonkey riguardano, invece, la creazione di un proprio microformat personalizzato e l'implementazione della relativa applicazione da inviare al crawler di Yahoo, in modo da permettergli di effettuare l'estrazione di questi dati e di indicizzarli all'interno dei campi dei microformat supportati. Per configurare un nuovo tipo di microformat basta solo scrivere i dati che si vogliono inserire in alcuni tag, come i div o gli span, specificandone un nome univoco utilizzando l'attributo class o rev. Lo svantaggio di questo servizio è il fatto che SearchMonkey, per interpretare ed indicizzare i dati, impiegherà molto più tempo rispetto ai microformat standard, quindi non è molto conveniente utilizzare un proprio microformat se si intende inserirci dei dati che verranno spesso aggiornati. Un 50 Tecnologie per la ricerca Web esempio di struttura personalizzata da inserire in una pagina html potrebbe essere la seguente: Successivamente, sempre attraverso l'interfaccia Web messa a disposizione degli sviluppatori, si deve procedere alla creazione di un'applicazione che sia in grado di estrapolare i dati da questo particolare microformat. In questo servizio, che prende il nome di 'Page custom data service', si possono impostare, oltre al nome ed una breve descrizione, anche i trigger url, cioè quei particolari indirizzi Web in cui SearchMonkey utilizzerà l'applicazione che si sta creando per interpretare e memorizzare i dati contenuti. Questa risorsa dovrà essere scritta in XSLT e dovrà contenere tutte le informazioni e le regole per permettere al crawler di indicizzare correttamente i dati contenuti nella pagina. Questa possibilità risulta molto utile sia per le aziende che possiedono dati non inseribili in un unico microformat standard sia per quelle che possiedono un tipo di microformat obsoleto o non supportato da SearchMonkey sul proprio sito e non vogliono aggiornarli o cambiarli. Purtroppo risulta essere anche molto limitativa in quanto, oltre al fatto che i microformat creati verranno riconosciuti solo dal crawler di Yahoo (tra l'altro dopo un lungo lasso di tempo) bisogna considerare che queste strutture di dati si potranno inserire solo nelle pagine aventi indirizzi determinati, registrati al momento della creazione dell'applicazione. Questo impedisce di fatto l'espansione e il riutilizzo, al di fuori dell'ambito aziendale, dei microformat creati, in quanto se riadattati in altri contesti, non saranno riconosciuti e quindi non saranno indicizzati neanche da SearchMonkey. Un esempio di 51 Tecnologie per la ricerca Web applicazione utilizzabile per estrarre i dati dal microformat precedentemente descritto, inserendoli nel formato standard hCard e hReview potrebbe essere il seguente: 52 Tecnologie per la ricerca Web Questa applicazione consentirà l'estrazione e il salvataggio dei dati nel seguente formato: Anche in questo caso bisognerà attendere il tempo di approvazione del servizio, da parte di SearchMonkey, per renderne effettivo l'utilizzo. Successivamente è anche possibile creare una particolare maschera per visualizzare il microformat appena generato, utilizzando una infobar o una enhanced result nel modo più congeniale possibile. Infine SearchMonkey permette l'implementazione di applicazioni rest residenti sui server Yahoo, richiamabili attraverso un particolare indirizzo Web, per la creazione di risultati strutturati formati da dati presi da pagine Web che possono o contenere microformat personalizzati come quelli visti in precedenza oppure addirittura non contenere alcun tipo di struttura semantica. Questo servizio è molto utile soprattutto per il fatto che si differenzia dalla risorsa precedentemente descritta perché può ritornare il file contenente le informazioni direttamente al proprio server. Esso potrà cosi gestire programmaticamente l'utilizzo e la visualizzazione di queste informazioni. Il problema relativo all'utilizzo diffuso di questo servizio sta nel fatto che si dovrà in qualche modo diffondere l'utilizzo del microformat creato, altrimenti SearchMonkey non sarà in grado di estrarre alcun tipo di dato. Se invece si vuole impostare una ricerca di dati all'interno di pagine Web che non contengono alcun tipo di struttura semantica, bisogna considerare il fatto che stiamo estraendo le informazioni da tag html generici, quindi è necessario conoscere la disposizione e il contenuto dei tag a priori per poter creare delle applicazioni in grado di estrarli. Per questo motivo l'utilizzo in domini ampi di 53 Tecnologie per la ricerca Web questa risorsa diventa molto difficile ed, invece, risulta molto utile alle aziende che possiedono già un sito e che vogliono estrarre i dati dalle proprie pagine senza dover integrare microformat. Un altro caso d'uso per queste applicazioni potrebbe riguardare le aziende che vogliono trarre informazioni da portali o siti esterni che contengono pagine generate dinamicamente. Infatti, esse possiedono necessariamente una struttura dei tag e delle informazioni contenute sempre uguale. Per configurare questo servizio bisogna innanzitutto inserire un nome per l'applicazione, una descrizione dell'applicazione e i seguenti parametri: • parametri passati, che rappresenta l'elenco dei parametri che vogliamo passare al servizio, ad esempio dovremo indicare 'dc:identifier' se vorremo inviare un dominio di url in cui ricercare i dati da restituire; • endPoint, cioè l'indirizzo a cui effettuare la richiesta per poter utilizzare la nostra applicazione. Di solito ha la seguente struttura: http://search.yahooapis.com/SiteExplorerService/V1/pageData?appid dove appid indica il codice univoco che Yahoo ha associato all'account dello sviluppatore. Oltre a questo parametro bisognerà passare al servizio anche ulteriori parametri come 'result', che indica il numero di risultati che vogliamo nella risposta 'query', che conterrà tutti i valori precedentemente descritti; • formato file di risposta, scelto in base alle preferenze dello sviluppatore in quanto le informazioni e la struttura dei dati sarà la medesima per entrambi i file consentiti. Si potrà scegliere tra dataRSS format e OpenSearch with dataRSS extension. Per questo servizio presenteremo solo un esempio relativo all'estrazione di un'immagine e dei relativi dati da una pagina Web, in quanto l'esempio in cui si ricercano dati inseriti nelle pagine tramite particolari tipi di microformat è già stato proposto in precedenza. 54 Tecnologie per la ricerca Web Supponiamo di voler estrarre le informazioni relative a delle immagini da alcune pagine Web che contengono questa struttura: Per questo scopo si potrebbe utilizzare un'applicazione che sia in grado di ricercare questa particolare struttura in una pagina Web, cosi strutturata: 55 Tecnologie per la ricerca Web Questa risorsa, richiamata inserendo 1 solo url, contenente lo stralcio di html proposto in precedenza, nel parametro query, ritornerà un file con i seguenti dati nel formato scelto dallo sviluppatore: Questo servizio risulta inutile se si utilizza Yahoo Boss con le view in quanto i dati ritornati sono i medesimi usando i seguenti microformat supportati nativamente da SearchMonkey : Tabella 1 : elenco dei microformat supportati da SearchMonkey e relativo dominio. 56 Tecnologie per la ricerca Web 2.3 Analisi comparativa Le caratteristiche delle soluzioni analizzate sono riassunte nella tabella seguente. Servizi Offerti Essere registrati al Essere registrati al Essere registrati al Precondizioni network di Google e network di Yahoo e network di Yahoo e per accedere possedere un Appid possedere un Appid possedere un Appid al servizio relativo al servizio relativo al servizio relativo al servizio Google CSE. Yahoo Boss. Yahoo Boss. Bisogna configurare nel relativo pannello ad interfaccia web i parametri principali del servizio, tra cui: Configurazione informazioni base,Il dominio di ricerca,le label,Il layout e la formattazione, l'account Adsense, le keywords ed i sinonimi. Metodo di Essendo un servizio rest, si configura completamente con dei parametri inviati tramite una richiesta http. Si può impostare il dominio di ricerca, dei filtri particolari, il numero di risultati ottenuti ed i tipi di view associate ai Per aggiungere tutte le informazioni contenute nei microformat ai dati standard dei risultati occorre scegliere la view SearchMonkey_feed o SearchMonkey_rdf tramite la richiesta http effettuata al servizio. risultati desiderati. Occorre inserire 2 Serve implementare Server side risulta come stralci di codice un'applicazione sul se implementassimo Javascript in 2 pagine proprio server che si solo il servizio BOSS, web distinte, uno per occupi di ricevere la inoltre è consentito query di ricerca l'utilizzo di un'altra effettuare la ricerca e dall'utente, di inviarla risorsa rest per estrarre l'altro per mostrare i al servizio e di dei microformat non risultati ottenuti. visualizzare i risultati. standardizzati. Implementazione creare l'interfaccia per 57 Tecnologie per la ricerca Web Servizi Offerti Nessuno, basta una semplice pagina HTML. Se invece si Linguaggio di programmazion e di supporto necessario desidera poter creare domini di ricerca in modo dinamico, bisogna creare un programma apposito in php o java che È necessario usare È necessario usare un'applicazione php o un'applicazione php o java per gestire la java per gestire la richiesta e per richiesta e per visualizzare i risultati visualizzare i risultati nel nel modo desiderato. modo desiderato. modifichi il file XML apposito. Si possono inserire fino a 5000 pagine web Dominio di ricerca nel dominio di ricerca, Si possono inviare inoltre esso è tramite parametro configurabile sia allegato alla richiesta attraverso un file XML http solo 8178 apposito, sia attraverso caratteri totali, che il pannello di controllo consentono all'incirca disponibile on-line. 200 – 250 url. Si possono inviare tramite parametro allegato alla richiesta http solo 8178 caratteri totali, che consentono all'incirca 200 – 250 url. È possibile creare delle classificazione degli indirizzi all'interno del dominio di ricerca label ed assegnarle ad alcuni siti del dominio di ricerca, in questo modo si riesce a Non consentita. Non consentita. dividere i siti in sotto domini utilizzabili in base alle evenienze. 58 Tecnologie per la ricerca Web Servizi Offerti Si può implementare È consentito solo un È consentito solo un un servizio in grado di aiuto Aiuti nella ricerca presentare agli utenti ricercati. correzione aiuto grammaticale dei termini simili o più query specifici a quelli di tramite di l'uso della l'uso Spelling suggestion. Molto basso, in quanto di risposta del servizio dipende solo dal tempo sia dalla velocità di impiegato dal servizio. elaborazione dei risultati del server su cui è implementato. Informazioni Un collegamento alla restituite per ogni risultato pagina del risultato, il nome e un breve testo contenente la descrizione. Spelling suggestion. Variabile, infatti dipende sia dal tempo di risposta del servizio sia dalla velocità di elaborazione dei risultati del server su cui è implementato. Il collegamento alla pagina del risultato, pagina del risultato, un un breve testo breve testo contenente contenente la la descrizione, la data descrizione, la data dell'ultima modifica, il dell'ultima modifica, il titolo e la dimensione titolo e la dimensione della pagina del della pagina web. risultato. Attraverso le view si possono ottenere supplementar delle informazioni Nessuna. della Il collegamento alla Informazioni i disponibili della ricerca query di ricerca tramite dipende sia dal tempo risposta correzione della grammaticale Variabile, infatti Tempo di di supplementari come per ogni le keywords associate risultato. al risultato o la sua Attraverso le view SearchMonkey_feed o SearchMonkey_rdf si possono ottenere informazioni relative ai microformat lingua. 59 Tecnologie per la ricerca Web Servizi Offerti Si possono impostare Filtri consentiti Si possono impostare Si possono impostare dei filtri che eliminano dei filtri che eliminano i dei filtri che eliminano i i risultati con contenuti risultati con contenuti di risultati di alcuni url del di tipo pornografico o tipo pornografico o dominio attraverso violento attraverso violento attraverso l'apposito file xml. l'impostazione di un l'impostazione di un parametro specifico. parametro specifico. Completamente personalizzabile in Visualizzazio ne dei risultati Standard di Google, è quanto i risultati sono consentito solo forniti su di un file xml cambiare il colore dei o json e quindi la caratteri. visualizzazione è gestita solo dallo sviluppatore. Completamente personalizzabile in quanto i risultati sono forniti su di un file xml o json e quindi la visualizzazione è gestita solo dallo sviluppatore. Completamente Minima, attraverso dei personalizzabile in Completamente particolari label che quanto i risultati sono personalizzabile in Modifica del associano un forniti su di un file xml quanto i risultati sono ranking coefficiente ai risultati, o json e quindi forniti su di un file xml o proposto di default vale 0,7 e lo l'ordine di json e quindi l'ordine di si può impostare da -1 visualizzazione è visualizzazione è gestito a +1. gestito solo solo dall'applicazione. dall'applicazione. Supporta i seguenti Integrazione con i microformat Nessuna. Nessuna. microformat: dc, foaf, vcard, vcal, review, sioc, gr, dbpedia, fb. 60 Tecnologie per la ricerca Web Servizi Offerti Si possono impostare Integrazione con il una sorta di aiuto nelle motore di ricerche o come ricerca gadget per la propria generalista delle maschere di Viene presentato come visualizzazione Nessuna. personalizzate dei propri risultati utilizzabili, dopo averle selezionate, pagina personale. all'interno della propria pagina personale. Costo Gratuito, bisogna solo Gratuito se non si Gratuito se non si visualizzare il logo di superano le 10000 superano le 10000 Google. query giornaliere. query giornaliere. Tabella 2: analisi e confronto delle soluzioni descritte nel capitolo Dalla tabella riassuntiva si può facilmente evincere che i servizi proposti da Yahoo e Google, anche se consentono entrambi la creazione di un motore di ricerca verticale facilmente personalizzabile evitando molte spese legate alla sua implementazione all'interno dell'azienda, sono completamente diversi tra di loro. Le differenze principali, evidenziate attraverso l'analisi e la successiva sperimentazione di queste risorse, sono: • Le informazioni ritornate, infatti Google CSE offre all'utente, che effettua una ricerca, solo delle informazioni basilari per i risultati proposti, invece il servizi offerti da BOSS tramite delle particolari risorse, denominate view, possono ritornare un insieme molto più ampio di informazioni, legate ad esempio ai microformat o alle parole chiave associate ad un risultato. In questo modo consente la possibilità di effettuare dei filtri o dei ranking personalizzati, basati 61 Tecnologie per la ricerca Web sui dati supplementari ottenuti, implementando un'applicazione apposita sul proprio server. • Il ranking e la visualizzazione dei risultati, che sono quasi completamente vincolate alle scelte del servizio in CSE. Invece utilizzando BOSS, il layout di visualizzazione dei risultati è gestito completamente dall'applicativo sul proprio server e quindi anche il ranking proposto da Yahoo risulta completamente modificabile in base ai propri criteri o al contesto. • Il modo in cui sono resi disponibili allo sviluppatore, infatti Yahoo Boss e Yahoo SearchMonkey sono dei servizi rest, cioè richiamabili e configurabili solo attraverso una richiesta http. Invece Google CSE è un servizio richiamabile solo attraverso un Javascript ed è configurabile sia on-line, tramite l'apposito pannello di controllo, sia attraverso un file xml apposito. • Le risorse messe a disposizione, che risultano essere molto diverse. Infatti, se da una parte CSE non consente alcun tipo di interazione con la propria interfaccia utente (permettendo però attraverso la visualizzazione di alcuni semplici link, all'interno di essa, di modificare il dominio di ricerca o di specificare la query di ricerca) BOSS offre dei metodi per trarre delle informazioni per costruire una qualsivoglia interfaccia per indirizzare la ricerca dell'utente. • Le problematiche dovute all'implementazione, infatti se si utilizza BOSS si deve anche gestire la paginazione dei risultati e il metodo di visualizzazione, invece implementando Google CSE non ci si deve preoccupare di questi fattori, in quanto bisogna solo inserire in un div il codice che fornisce il servizio. 62 Tecnologie per la ricerca Web Per cui Yahoo BOSS e Google CSE si prestano a situazioni aziendali completamente diverse e con dei requisiti particolari, infatti se si desidera: • Utilizzare un dominio di ricerca composto da molti siti conviene utilizzare CSE in quanto permette di inserire fino a 5000 indirizzi oppure 1000 se si introducono 5 label, invece dei soli 200 – 250 consentiti dal servizio di Yahoo. • Inserire molte informazioni specifiche da ricercare nelle pagine Web. In questo caso conviene utilizzare i microformat e quindi SearchMonkey, perché CSE non li supporta e non sarà mai in grado di ricercarli. • Eseguire aggiornamenti frequenti del dominio di ricerca in base alle richieste degli utenti. In questo frangente bisogna utilizzare necessariamente BOSS, infatti essendo un servizio rest configurabile attraverso i parametri inviati tramite una richiesta http, permetterà di aggiornare il dominio cambiano semplicemente i parametri che noi gli inviamo, mentre invece con CSE si dovranno attendere diversi minuti prima che le modifiche apportate diventino effettive. • Implementare un motore di ricerca evitando le spese di programmazione o di manutenzione di un applicativo di supporto. In questo caso bisognerà scegliere senza dubbio CSE in quanto non necessita di nessun tipo di supporto ed invece per BOSS occorre un'applicazione in php o java per permetterne il corretto funzionamento. • Modificare il ranking dei risultati promuovendo i propri prodotti o servizi. Se l'azienda si trovasse di fronte a questo particolare requisito dovrà selezionare il servizio di Yahoo per creare il proprio motore di ricerca in quanto non è possibile, se non in minima parte, la modifica del ranking di Google. 63 Tecnologie per la ricerca Web Capitolo 3: Caso d'uso: un portale per il risparmio energetico 3.1 Prima sperimentazione In questa prima sperimentazione si è creato un portale dedicato alle aziende che si occupano del settore del risparmio energetico. Questa risorsa dovrà gestire i dati relativi alle aziende registrate al network implementando, inoltre, un motore di ricerca verticale che permetta la ricerca tra i contenuti delle pagine web delle imprese. Oltre a questo dovrà contenere anche un motore di ricerca interno che permetterà sia la selezione delle aziende che si occupano di determinati campi o che offrono particolari servizi, sia la visione dei dati dei relativi recapiti. Infine, per le aziende che non possiedono un proprio sito internet, il portale dovrà creare un profilo interno pubblico, contenente i dati rilevanti aziendali, da inserire poi nel dominio di ricerca del servizio di custom search selezionato. Per questo caso d'uso è stato scelto di sperimentare il servizio di Google CSE. In questo modo è stato possibile valutarne le effettive potenzialità per quanto riguarda le seguenti caratteristiche: • Il Tempo di risposta del servizio, è risultato sempre appropriato, in quanto non dipende dal modo in cui si è scelto di implementare il servizio, inoltre consente prestazioni molto elevate anche in caso di query molto lunghe e complesse, ad esempio concatenando molte condizioni in or. 64 Caso d'uso: un portale per il risparmio energetico • L'integrazione del servizio con il portale. Dal punto di vista della grafica Google CSE presenta come interfaccia di inserimento dati solo una casella di testo in cui inserire la query di ricerca, e un bottone per inviarla al servizio. Quindi è facilmente integrabile in qualsiasi layout assegnabile alla propria pagina web. Per quanto riguarda la visualizzazione bisogna creare una pagina apposita perché la parte di risultati ne occuperà gran parte dello spazio, dal momento che non è possibile né gestire la paginazione né il numero di risultati proposti per ogni pagina. Dal punto di vista delle tecnologie utilizzabili sul lato server non presenta particolari incompatibilità in quanto non richiede nessun tipo di applicazione per consentirne il corretto funzionamento. Infine, per quanto riguarda la qualità del servizio, i risultati proposti si sono sempre rivelati attinenti alla query di ricerca inserita dall'utente. • Il tempo di modifica del dominio di ricerca, che varia molto a seconda del periodo in cui si vuole effettuare la modifica al file xml contenente le informazioni relative al dominio. Mediamente Google CSE configura il nuovo dominio in 50 – 60 minuti, rendendo di fatto impossibile il cambio di dominio di ricerca dinamico in base alla ricerca da effettuare. In questo caso però possono essere utilizzate le label che di fatto creano dei sotto-domini di ricerca escludendo tutti i siti che non possiedono la particolare etichetta selezionata. Invece le modifiche risultano immediate se si utilizza il pannello di configurazione on-line. Ovviamente per quanto riguarda BOSS i tempi di modifica del proprio dominio di ricerca sono da considerarsi nulli, poiché i parametri vengono configurati al momento dell'invio della richiesta http dall'applicativo implementato. 65 Caso d'uso: un portale per il risparmio energetico 3.1.1 Requisiti I requisiti funzionali relativi alla prima sperimentazione sono i seguenti: • Classi d'utenza : ◦ Aziende che possiedono un proprio sito web ◦ Aziende che non possiedono un proprio sito web ◦ Utenti pubblici ◦ Gestore del sito • Funzioni richieste per ogni classe d'utenza: ▪ Aziende con sito web ◦ Registrazione e creazione di un account ◦ Modificazione dei propri dati ◦ Inserimento dei dati nel motore di ricerca verticale ▪ Aziende senza sito web ◦ Registrazione e creazione di un account ◦ Modificazione dei propri dati ◦ Creazione di un profilo pubblico interno ◦ Inserimento dei dati nel motore di ricerca verticale ▪ Gestore ◦ Approvazione o eliminazione delle nuove aziende ◦ Inserimento dei settori d'attinenza delle aziende ◦ Inserimento di url esterni nel dominio di ricerca ▪ Tutti gli utenti ◦ Visualizzazione dei dati relativi ad un'azienda ◦ Ricerca contenuti ◦ Ricerca aziende in base al settore d'attinenza 66 Caso d'uso: un portale per il risparmio energetico 3.1.2 Design preliminare Analizzando gli aspetti del problema si può evincere che il portale deve permettere alle aziende di potersi registrare al social network che esse possiedano o meno un proprio sito aziendale, permettendo anche l'inserimento di alcune informazioni riguardanti i recapiti aziendali e delle informazioni di base per poter riconoscere univocamente le aziende registrate nel network. Durante la registrazione verrà anche creato un'account per accedere ai servizi del portale che permetterà di modificare i dati inseriti in precedenza. Successivamente, se l'azienda non è provvista di un proprio sito Web, sarà creato automaticamente un profilo all'interno del portale contenente tutti i dati aziendali, in modo da permettere la ricerca di queste informazioni da parte dei motori di ricerca. Questo comporterà anche un aumento della visibilità dell'impresa sul web, in quanto anche i motori di ricerca generalisti indicizzeranno le informazioni contenute in questi profili e di conseguenza le riproporranno all'interno dei risultati proposti agli utenti. Infine, per quanto riguarda l'implementazione del servizio di Google, bisognerà settare il dominio di ricerca inserendo gli indirizzi delle pagine web aziendali o dei profili creati. Per consentire la gestione del portale e dei suoi contenuti sarà creato un utente speciale, che attraverso il suo account potrà accedere a servizi che gli consentiranno di eseguire determinate azioni: • Approvazione o eliminazione delle aziende, che sarà una funzione molto importante per il gestore in quanto gli permetterà di tenere sotto controllo le aziende e i dati inseriti nel portale, evitando problemi legati all'inserimento di aziende che non appartengono al settore e di dati fasulli, creati appositamente per impedire il corretto 67 Caso d'uso: un portale per il risparmio energetico funzionamento dei servizi offerti. La possibilità di valutare il contenuto dei dati inseriti dalle aziende verrà concesso nel momento successivo alla registrazione delle aziende e ad ogni modifica delle informazioni. Fin quando un'impresa non otterrà l'approvazione da parte del gestore, avrà la possibilità di modificare i propri dati, tranne quelli che ne permettono l'identificazione, ma non sarà inserita nel dominio di ricerca e non sarà visibile agli utenti del portale. • Inserire i settori, che permetteranno di classificare le aziende e di effettuare delle ricerche in base a questi parametri. Per consentire delle ricerche più dettagliate i settori saranno utilizzati per impostare il nome delle label del servizio di Google CSE. • Inserire url esterni, per consentire delle ricerche anche in alcuni siti Web che non sono registrati nel portali, ma che sono attinenti con il risparmio energetico. In questo modo, al gestore, è data anche la possibilità di gestire e di modificare il dominio di ricerca di CSE. Per permettere anche agli utenti non registrati di accedere ai dati forniti dal portale, in modo da aumentare il bacino d'utenza e di conseguenza anche la visibilità delle aziende nel Web, alcuni servizi offerti sono stati resi pubblici: • Ricerca, che perette di effettuare sia la ricerca di contenuti (tramite Google CSE) sia delle aziende in base al settore di competenza. • Visualizzazione delle informazioni aziendali, infatti è stato ritenuto opportuno rendere pubblici questi dati relativi ai contatti, in quanto sono reperibili ovunque e permettono agli utenti interessati di contattare direttamente l'azienda che quindi ne giova anche sotto il profilo pubblicitario. 68 Caso d'uso: un portale per il risparmio energetico Le considerazioni effettuate fino ad ora sono riassunte nel seguente use case: Immagine 2: Use case relativo alla prima sperimentazione Come si può evincere dallo use case proposto, la fase di registrazione da parte delle aziende assumerà un ruolo determinante all'interno del portale e per questo motivo, dopo un'attenta analisi, si è scelto di richiedere alle imprese le seguenti categorie di informazioni: • Identificazione, situata nella prima parte dell'interfaccia, questa categoria di informazioni conterrà tutti i dati relativi all'account che si andrà a creare successivamente. Verrà richiesto di inserire un username ed anche una password che serviranno successivamente per poter accedere ai servizi aziendali. 69 Caso d'uso: un portale per il risparmio energetico • Informazioni generali, nella quale si chiederanno informazioni relative all'azienda come ad esempio il nome del proprietario e quello della ditta che si intende registrare. Quest'ultima informazione verrà utilizzata per il riconoscimento univoco dell'impresa all'interno del portale. Inoltre si è deciso di lasciare la possibilità all'impresa di inserire l'url dell'immagine del proprio logo e una breve descrizione, in modo tale da migliorare la visualizzazione dei dati aziendali all'utente. • Contatti. In questa categoria sarà richiesto di specificare l'indirizzo del proprio sito Web, se l'azienda ne dispone di uno, e di inserire i vari recapiti. Questi ultimi saranno composti dal numero di telefono e di fax della sede aziendale, della mail e dell'indirizzo di domicilio completo. Queste informazioni supplementari non saranno obbligatorie in quanto non indispensabili riguardo alla funzionalità del portale.. • Settori d'attinenza, in cui un'azienda dovrà identificarsi e se ne potranno scegliere anche diversi tra quelli proposti dal gestore. Si è scelto di permettere ad un azienda di non selezionare alcun campo, o di poterne aggiungere in futuro, in quanto questi parametri saranno sempre tenuti in costante evoluzione, da parte del gestore. E' probabile quindi che un'azienda prima o poi trovi un campo che la rappresenti pienamente. Inoltre per consentire la presenza di un utente gestore, che avrà categorie di servizi diversi rispetto a quelli relativi alle aziende registrate, si è pensato di introdurre un parametro che lo distingua dagli altri. Infine, per distinguere le imprese in fase di approvazione dalle altre, si è introdotto un campo apposito che indicherà lo stato attuale in cui si trova l'azienda. Questo valore non modificherà in alcun modo i servizi personali 70 Caso d'uso: un portale per il risparmio energetico disponibili per le aziende, ma impedirà sia l'inserimento della pagina Web aziendale nel dominio di ricerca, sia l'accesso ai dati sensibili da parte degli utenti del portale. Nel class diagram proposto nell'immagine 3, sono schematizzate tutte le informazioni trattate in quest'ultimo paragrafo. Immagine 3: Class diagram relativo alla prima sperimentazione Non tutti i dati aziendali devono essere inseriti all'interno della pagina Web contenente il profilo e quindi, per permettere la visualizzazione riassuntiva delle informazioni anche delle aziende che possiedono un proprio sito Web, è stato necessario implementare un sistema di storage. Per questo motivo si è deciso di implementare un database in cui verranno inseriti tutti i dati richiesti al momento della registrazione delle aziende. Inoltre, per consentire il corretto utilizzo del servizio Google CSE, si è dovuto implementare un'applicazione in grado di gestire dinamicamente il file xml contenente il dominio di ricerca personalizzabile e le varie label. L'indirizzo url di questa risorsa sarà comunicato attraverso il pannello di configurazione apposito messo a disposizione da Google. 71 Infine si è Caso d'uso: un portale per il risparmio energetico scelto di non scindere ulteriormente il file xml in quanto non sono stati ritenuti necessari dei sotto domini di ricerca in questa sperimentazione. Lo schema delle risorse e dei servizi utilizzati è rappresentato nello seguente Deployment diagram: Immagine 4: Deployment diagram relativo alla prima sperimentazione Per consentire la modifica del dominio di ricerca anche al gestore (che potrà inserire degli url esterni per ampliarlo) il file xml sarà modificabile anche attraverso i servizi che il portale gli metterà a disposizione. Per questo motivo si dovrà implementare anche una piccola applicazione in grado di generare automaticamente questo file, inserendo sia gli indirizzi url delle aziende e dei profili presenti sul portale, sia gli indirizzi dei siti esterni. Inoltre si dovrà configurare le label del servizio CSE in modo opportuno sfruttando i settori selezionati dalle aziende al momento della registrazione. 72 Caso d'uso: un portale per il risparmio energetico 3.1.3 Design di progettazione Il database utilizzato per contenere i dati discussi nel capitolo precedente è strutturato secondo il seguente schema logico: Immagine 5: Diagramma logico del database relativo alla prima sperimentazione. Questa struttura è stata configurata per consentire le seguenti relazioni tra la tabelle: • Azienda – Utente, in relazione 1 a 1, in quanto è stata effettuata la scelta di consentire la registrazione di una particolare azienda per ogni utente, dal momento che l'account per accedere ai servizi è associato all'impresa e non al suo proprietario. Per questo motivo è anche stata scelta come chiave primaria della tabella il nome dell'azienda. Inoltre, in questo modo, è consentita anche l'opzione che permette ad una persona fisica di possedere più di un'azienda senza creare problemi all'interno della base di dati. Infine si è creato un particolare account, che non avrà associata nessun azienda, cioè quello del gestore del portale. 73 Caso d'uso: un portale per il risparmio energetico • Azienda – Campi, in relazione N a N, in quanto ogni azienda potrà sia avere diversi settori d'attinenza sia non averne nessuno. D'altra parte sarà consentito l'inserimento di settori che non abbiano associata nemmeno un'azienda oppure che ne abbiano diverse. Per consentire questa associazione è stata introdotta la tabella 'campiAssociati' che conterrà le chiavi esterne delle tabelle 'campi' e 'azienda'. Inoltre sono stati introdotti i seguenti vincoli per i valori da inserire nel database: • Username,Password, Nome azienda,che dovranno essere composti da meno di 255 caratteri e saranno obbligatori. Per quanto riguarda l'username e il nome dell'azienda dovranno essere anche univoci. • Indirizzi url vari. Non essendoci vincoli particolari dovuti a Google CSE, è stata effettuata la scelta di consentire una lunghezza massima di 100 caratteri sia per gli indirizzi delle pagine sia per quelli legati all'immagine del logo aziendale. L'unico campo obbligatorio risulta quello legato alla pagina Web aziendale, in cui verrà inserito l'url del profilo interno se dovesse mancare il sito aziendale. • Telefono,fax,mail, che avranno a disposizione 50 caratteri e saranno facoltativi, in quanto i recapiti aziendali serviranno solo per consentire alle aziende di essere contattate e non avranno nessun altro scopo. • Indirizzo sede. Questo campo è stato suddiviso in stato, città, cap e domicilio. Sono tutti facoltativi ed a parte il cap che può essere composto da soli 6 caratteri, gli altri parametri possono raggiungere una lunghezza massima pari a 100. • Descrizione. E' facoltativa e potrà essere composta al massimo da 2000 caratteri, in modo da consentirne anche un inserimento preciso all'interno di determinati spazi del profilo aziendale. 74 Caso d'uso: un portale per il risparmio energetico Di seguito spiegheremo in modo più dettagliato i servizi che il portale dovrà consentire alle aziende. Nell'immagine 6 è proposto un sequence diagram contenente le operazioni che un azienda che non possiede un sito Web deve effettuare per registrarsi al portale. Inoltre saranno illustrate tutte le operazioni che quest'ultimo dovrà eseguire per consentire un corretto supporto a questa operazione. Immagine 6: registrazione di un'azienda che non possiede un proprio sito Web. Se invece si fosse trattato della registrazione di un'azienda che possedeva una propria pagina Web, le differenze sarebbero state minime, in quanto l'applicativo si sarebbe limitato a controllare i dati che venivano inseriti per evitare errori all'interno delle tabelle del database, senza occuparsi dell'implementazione della pagina del profilo pubblico. 75 Caso d'uso: un portale per il risparmio energetico Dopo la registrazione, l'azienda dovrà attendere la convalida da parte del gestore, in questo modo si potrà garantire un grado più alto di sicurezza, perché il portale effettuerà un controllo sintattico dei contenuti, per verificare che siano attinenti ai vincoli imposti dal database ed il gestore umano valuterà le informazioni inserite in modo semantico per escludere le aziende che non sono attinenti al settore del risparmio energetico. Per fare questo l'utente gestore dovrà autenticarsi e dovrà selezionare il servizio relativo alla convalida delle imprese. A questo punto,dopo aver visualizzato ed analizzato i dati aziendali, potrà decidere se convalidare l'azienda oppure eliminarla definitivamente. In quest'ultimo caso verrà disattivato anche il relativo account. Questa procedura è descritta nel seguente sequence diagram: Immagine 7: approvazione di un'azienda da parte del gestore. 76 Caso d'uso: un portale per il risparmio energetico La procedura relativa all'approvazione da parte del gestore si avrà tutte le volte che un'azienda proverà a modificare i propri dati. Questo servizio di modifica delle informazioni precedentemente inserite è reperibile accedendo con le credenziali relative all'azienda che vuole apportare i cambiamenti. Per quanto riguarda il profilo aziendale, esso verrà creato subito dopo aver portato a termine correttamente la procedura di registrazione senza attendere la fase di convalida dei dati. Per rendere automatica questa procedura si è deciso di nominare queste pagine con il nome normalizzato dell'azienda a cui si riferiscono. I file verranno poi inseriti in una directory appositamente creata per contenere i profili. Ad esempio, se si registra un'azienda che non possiede un proprio sito Web di nome 'Azienda1 SPA', il relativo profilo sarà disponibile all'indirizzo: Indirizzo del portale/Profili/Azienda1_SPA.php Il gestore avrà a disposizione anche un servizio relativo all'inserimento dei settori d'attinenza per le imprese. Questo servizio è di fondamentale importanza per permettere a Google CSE di creare dei sotto domini di ricerca. Infatti questi parametri saranno inseriti all'interno del file xml, associati agli indirizzi delle pagine Web delle varie aziende registrate, con la funzione particolare delle label. Infine il gestore avrà a disposizione un servizio che gli permetterà di espandere il dominio di ricerca associato al servizio offerto da Google, inserendo alcuni indirizzi di pagine Web esterne al portale che ritiene attinenti al contesto del risparmio energetico. Anche in questo caso si dovrà selezionare il servizio tra quelli proposti dopo aver effettuato correttamente il login con le credenziali relative all'utente gestore. 77 Caso d'uso: un portale per il risparmio energetico Nell'immagine 8 è descritta la corretta successione di operazioni che il gestore e un'azienda che desidera iscriversi devono seguire per poter configurare correttamente il servizio Google CSE: Immagine 8: activity diagram relativo alla corretta configurazione di CSE. Successivamente bisognerà implementare 2 pagine apposite per l'utilizzo del servizio offerto da Google, una per inserire l'interfaccia per permettere all'utente di effettuare una ricerca e una per inserire i dati ricevuti in risposta. Infine si dovrà comunicare al server di CSE la posizione del file xml creato, per permettergli di caricarlo correttamente. 78 Caso d'uso: un portale per il risparmio energetico 3.1.4 Implementazione Per configurare correttamente il dominio di ricerca, dopo aver inserito le informazioni precedentemente descritte, si dovrà implementare un'applicazione il cui compito sarà quello di creare un file xml contenente le seguenti informazioni: • annotation. In questa struttura si potrà inserire l'url relativo ad un sito Web che si intende inserire nel dominio di ricerca. L'xml potrà contenere al massimo 5000 strutture questo tipo; • label. All'interno di questo tag associato ad una annotation si potrà inserire il nome di una label. Di default ogni url avrà la label relativa all'identificativo associato all'applicazione CSE configurata, nel nostro caso varrà '_cse_ijmnracopbo '. Di seguito proporremo un esempio completo della struttura a cui dovrà attenersi il file xml: 79 Caso d'uso: un portale per il risparmio energetico Esso verrà salvato sul proprio server, successivamente si dovrà indicare la posizione nell'apposito spazio presente sul pannello di controllo on-line offerto da Google, in modo da consentire a CSE di aggiornare i propri dati. Dopo aver configurato il servizio si devono creare le pagine relative alla visualizzazione dei risultati e all'interfaccia utente. Quest'ultima è neccessaria per consentire l'inserimento della query da ricercare da parte dell'utente ed è configurabile solo attraverso il pannello di controllo on-line di CSE. In figura 9 è raffigurata la pagina web nella quale è stato implementato il motore di ricerca. Immagine 9: Interfaccia utente di Google CSE. Questa pagina invierà la richiesta al server di CSE che inoltrerà i risultati a quella relativa alla visualizzazione dei risultati. Quest'ultima consentirà innanzitutto di effettuare un'altra richiesta al servizio oppure di modificare quella precedentemente inoltrata. Infine, oltre alle informazioni relative ai risultati verranno mostrate anche tutte le label associate ad essi, per permettere di filtrarli secondo la categoria selezionata. Un esempio della risposta di Google CSE ad una query inserita dall'utente è mostrata nell'immagine 10, nella quale si può notare anche l'unica differenza esistente nel layout dei risultati rispetto al servizio generalista di Google, cioè quella legata al colore scelto per i link e per le descrizioni. 80 Caso d'uso: un portale per il risparmio energetico Immagine 10: visualizzazione dei risultati di Google CSE. Per consentire la ricerca tra le aziende registrate al social network è stato implementato anche un motore di ricerca verticale interno al portale. Esso permetterà all'utente di ricercare le aziende secondo il settore d'attinenza e successivamente di visualizzarne il sito Web, se disponibile, oppure il profilo interno. Inoltre sarà possibile accedere ai dati relativi ai contatti o 81 Caso d'uso: un portale per il risparmio energetico alle informazioni riguardanti l'impresa desiderata. In figura 11 è rappresentata l'interfaccia con la quale è possibile effettuare la ricerca appena descritta. Immagine 11: interfaccia per la ricerca delle aziende appartenenti ad un settore. I dettagli relativi ad un'azienda verranno visualizzati in modo schematico per permettere agli utenti di accedere facilmente alle informazioni legate al contatto. Un esempio di questa visualizzazione è mostrata in figura 12. Nello stesso modo saranno inseriti i dati anche all'interno del profilo aziendale, nel quale sarà possibile inserire anche una breve descrizione dell'azienda, per permettere al crawler di Google di ricercare le informazioni anche all'interno del testo della pagina. Immagine 12: dettagli relativi ad un'azienda. Selezionando i collegamenti relativi ai settori presenti nel profilo aziendale, si potranno ricercare le altre aziende registrate sul portale dello stesso 82 Caso d'uso: un portale per il risparmio energetico campo, in modo da facilitare la ricerca delle imprese simili da parte dell'utente. Se un'azienda desidera registrarsi al social network dovrà accedere alla pagina 'registrazione' ed inserire i dati relativi alla propria attività, ai propri recapiti, e selezionare i settori relativi al risparmio energetico d'attinenza. In figura 13 è raffigurata la prima parte dei dati richiesti al momento della registrazione. Immagine 13: inserimento dei dati relativi alla azienda al momento della registrazione. Per evitare l'inserimento di dati errati all'interno della tabella 'azienda' del database, sono stati implementati dei sistemi di controllo in Javascript che impediscono di inviare richieste di registrazione se i campi 'username', 'password', 'nome azienda' sono vuoti. Inoltre si effettueranno dei controlli sul possesso o meno di una pagina Web dell'impresa. Per questo sarà richiesto di inserire una descrizione per il profilo o un url, in base alla 83 Caso d'uso: un portale per il risparmio energetico scelta effettuata. Infine sarà effettuato un controllo in Ajax per la verifica dell'username e del nome dell'impresa scelti, poiché questi parametri serviranno ad identificare univocamente gli utenti e le loro aziende all'interno del portale. Questo servirà, durante la registrazione, per mostrare un messaggio d'errore non appena si inserissero dei valori già presenti nel database nei campi univoci specificati in precedenza. Successivamente verranno richiesti i contatti aziendali e i campi relativi alle categorie dei prodotti o servizi offerti. In figura 14 è rappresentato un esempio di inserimento di queste informazioni da parte di un'azienda. Immagine 14: inserimento dei contatti aziendali al momento della registrazione. In questa parte, non sono stati introdotti dei controlli in quanto i dati da inserire non devono rispettare nessun vincolo particolare e sono facoltativi. Per confermare la registrazione bisognerà premere sul bottone 'invia', a questo punto bisognerà attendere l'approvazione da parte del gestore, anche se sarà possibile utilizzare le credenziali immesse per accedere ai servizi dedicati alle aziende o per modificare le proprie informazioni. 84 Caso d'uso: un portale per il risparmio energetico Invece, per quanto riguarda l'utente gestore, il suo account sarà già attivo senza bisogno di registrarsi. E' possibile inserire diversi utenti di questo tipo nel portale, ma un utente non potrà essere sia aziendale sia amministratore. I servizi messi a disposizione di questo particolare account sono accessibili solo dopo essere entrati con le credenziali corrette. Dopo di che si potrà selezionare dal apposito menu la possibilità di approvare o eliminare un'azienda(ne è riportato un esempio in figura 16), inserire un nuovo settore oppure aggiungere degli indirizzi esterni al dominio di ricerca. Immagine 15: inserimento degli indirizzi esterni da parte del gestore. Quest'ultimo servizio consentirà al gestore di avere il controllo anche sulle ricerche degli utenti. Infatti se l'amministratore dovesse immettere alcuni indirizzi di pagine che godono di un alto ranking in Google, essi avranno maggiore probabilità di venire inseriti come primi risultati proposti da CSE. Immagine 16: Approvazione da parte del gestore. Per gestire la modifica del file xml di Google, si è scelto di implementare un'applicazione apposita in php per permetterne uno sviluppo futuro anche da parte di altre persone, in quanto è un linguaggio con licenza open source ed è largamente utilizzato nella programmazione di pagine Web. 85 Caso d'uso: un portale per il risparmio energetico 3.2 Seconda sperimentazione Nella seconda sperimentazione abbiamo implementato lo stesso portale utilizzato dalle aziende inerenti al settore del risparmio energetico, ma si sono aggiunte nuove funzionalità e servizi per la varie tipologie d'utenza. Sicuramente la più importante tra le novità introdotte riguarda la possibilità di permettere alle aziende di indicare una specializzazione del settore d'attinenza e di inserire dei prodotti ad essa associati. Inoltre si dovrà implementare un motore di ricerca interno specifico per i prodotti offerti dalle imprese che permetta di filtrare i risultati in base a delle particolari esigenze degli utenti. Alcuni esempi di filtri potrebbero essere quelli relativi allo stato o alla città di residenza dell'azienda, il settore specifico di una prestazione oppure il nome del produttore. I risultati proposti da questa risorsa consentiranno all'utente di interagire con le informazioni nei seguenti modi: • scaricando le informazioni dei contatti. Infatti dovrà essere permesso il download della vcard aziendale contenente tutti i dati relativi al fornitore del servizio, in modo da consentire un rapido accesso alle informazioni principali anche sul proprio computer senza interagire di nuovo con il portale; • inviando una mail al produttore. Questo servizio consentirà di contattare rapidamente l'azienda produttrice per ulteriori dettagli relativi al prodotto; • visualizzando la posizione della sede aziendale su Gmap. Questo dovrà permettere agli utenti di avere delle informazioni dettagliate riguardanti la posizione geografica della sede aziendale e 86 Caso d'uso: un portale per il risparmio energetico di ottenere anche un itinerario completo per raggiungerla attraverso i servizi offerti da Google map; • effettuando una ricerca di prodotti simili nel Web. Questo servizio consentirà di effettuare ricerche specifiche riguardanti i prodotti simili a quello preso in considerazione, attraverso Google CSE o Yahoo BOSS; • visitando il sito Web dell'azienda produttrice. Utile per reperire facilmente le informazioni che non sono contenute nel risultato visualizzato. Per consentire una ricerca più specifica delle informazioni contenute nelle pagine Web aziendali si è deciso di utilizzare dei particolari tipi di microformat. Per questo motivo queste strutture semantiche sono state integrate nei profili creati dinamicamente dal portale per le aziende che non possiedono un proprio sito Web. Successivamente, si dovrà creare un servizio aggiuntivo apposito per consentire anche alle imprese che possiedono già una propria pagina su Internet di implementare i microformat. Per quanto riguarda l'utente gestore rimarranno quasi immutati i sevizi a cui potrà accedere, infatti bisognerà solo permettergli di inserire anche le specializzazioni dei settori d'attinenza delle aziende. Per questa sperimentazione si è scelto di utilizzare il servizio Yahoo BOSS con l'ausilio di SearchMonkey per sfruttare le potenzialità offerte dall'utilizzo dei microformat all'interno delle pagine Web. Per cui l'inserimento di tutti i dati al momento della registrazione delle aziende risulterà molto importante ai fini dell'implementazione di tutti i servizi offerti dal portale. Questo perché tutte le informazioni verranno inserite all'interno di particolari campi dei microformat in modo da essere poi richiamate al momento della visualizzazione dei risultati tornati da Yahoo. 87 Caso d'uso: un portale per il risparmio energetico 3.2.1 Requisiti Di seguito elencheremo solo i requisiti che sono stati aggiunti a quelli della prima sperimentazione, in quanto quelli descritti in precedenza sono ancora validi. • Classi d'utenza : ◦ Uguali alle precedenti • Funzioni richieste per ogni classe d'utenza: ▪ Aziende con sito web ◦ Possibilità di visionare i microformat ◦ Scelta di sotto-settori più specifici ◦ Inserimento dei servizi o prodotti offerti ◦ Inserimento dei prodotti nel motore di ricerca verticale ▪ Aziende senza sito web ◦ Scelta di sotto-settori più specifici ◦ Inserimento dei servizi o prodotti offerti ◦ Creazione di un profilo contenente i microformat ◦ Inserimento dei prodotti nel motore di ricerca verticale ▪ Gestore ◦ Inserimento dei sotto-settori specifici per ogni campo ▪ Tutti gli utenti ◦ Ricerca di prodotti o servizi ◦ Ricerche specifiche tramite Yahoo BOSS ◦ Accesso ai servizi supplementari associati ai prodotti 88 Caso d'uso: un portale per il risparmio energetico 3.2.2 Design preliminare A differenza della prima sperimentazione, durante la registrazione, le aziende potranno immettere anche i propri prodotti ed alcune informazioni relative ad essi dopo averne scelto il settore d'attinenza all'interno di una tassonomia a 2 livelli. I dati che si potranno includere saranno: • il Nome, relativo al servizio offerto. Esso potrà anche non essere univoco in quanto alcune aziende possiedono prodotti i cui nomi non sono specifici e quindi risultava inutile ai fini della successiva ricerca differenziarli con sigle o codici; • una url pagina Web. Questa rappresenterà la pagina Web specifica dedicata al prodotto, se disponibile, oppure l'indirizzo di una qualsiasi documentazione legata ad esso, come ad esempio il pdf delle istruzioni d'uso o delle specifiche tecniche. • L'url contenente l'immagine. Questo campo, anche se non obbligatorio, sarà di fondamentale importanza per colpire l'attenzione dell'utente che effettua una ricerca e per fornire una rapida panoramica delle caratteristiche estetiche del prodotto. • La Descrizione. In questo campo si potranno inserire tutte le informazioni aggiuntive che non è stato possibile immettere in precedenza. In questo modo è stato ridotto il numero di campi da compilare da parte delle aziende senza però diminuire il grado di personalizzazione dei prodotti. • Il prezzo relativo al servizio immesso. Successivamente sarà possibile effettuare delle ricerche in base al prezzo del prodotto, quindi, pur non essendo un campo obbligatorio, rappresenta un'informazione di fondamentale importanza per la descrizione del prodotto stesso. 89 Caso d'uso: un portale per il risparmio energetico Queste informazioni verranno inserite in un particolare microformat che verrà immesso, insieme a quello relativo ai contatti aziendali, dentro tutti i profili interni creati dinamicamente. Per permettere l'utilizzo di queste tecnologie anche alle aziende che non necessitano della creazione di queste risorse (in quanto ne possiedono già una) sarà implementato un servizio che mostrerà i microformat, debitamente compilati, in un'apposita casella di testo. In questo modo sarà possibile copiare il codice per poi inserirlo facilmente nelle pagine Web in cui necessitano. In figura 17 è rappresentato lo use case che sintetizza le nuove funzioni appena introdotte. Immagine 17: Use case relativo alla seconda sperimentazione 90 Caso d'uso: un portale per il risparmio energetico Se un'azienda non dovesse disporre di prodotti o servizi oppure non ne ritenesse necessario l'inserimento nella base di dati del portale (ad esempio per evitare frequenti aggiornamenti delle informazioni), potrà selezionare solo il proprio settore oppure specificarlo con i relativi sotto campi senza però inserire nessun tipo di informazione legata al prodotto. Sarà invece possibile inserire diversi prodotti per ogni categoria selezionata in modo da permettere all'azienda di presentare un'ampia gamma di servizi offerti anche se questi non si differenziano di molto da quelli precedentemente introdotti. Infine sarà consentito di inserire lo stesso prodotto all'interno di diverse categorie se fosse necessario ai fini aziendali. Immagine 18: Class diagram relativo alla seconda sperimentazione 91 Caso d'uso: un portale per il risparmio energetico Per consentire il corretto funzionamento di Yahoo BOSS non è necessario l'ausilio di un particolare file xml (come accadeva con CSE nella sperimentazione precedente), in quanto bisogna inviare gli indirizzi del dominio di ricerca all'interno di un particolare paramento tramite una richiesta http. Si è introdotto un file di testo solo per memorizzare gli url esterni inseriti dal gestore, poiché si è deciso di non immetterli nel database per velocizzare l'operazione di lettura e scrittura. Nel seguente deployment diagram è rappresentato lo schema funzionale che si dovrà implementare per il corretto utilizzo dei servizi di Yahoo. Immagine 19: Deployment diagram relativo alla seconda sperimentazione 92 Caso d'uso: un portale per il risparmio energetico Nella richiesta a BOSS verrà specificato anche l'utilizzo del supporto di SearchMonkey tramite un'apposita view, in modo da ricevere in risposta anche i dati contenuti nei microformat presenti nelle pagine Web registrate e nei profili creati. Infine i risultati saranno inseriti in un particolare file xml che verrà interpretato dall'applicativo presente sul web server. In questo modo si potrà implementare un layout specifico per ogni tipo di risultato, mostrando i prodotti ad esso associati e i contatti aziendali. Per implementare la ricerca specifica dei prodotti e per ricevere i metadati contenuti negli indirizzi del dominio di ricerca, si sarebbe potuto implementare un servizio rest di SearchMonkey, a cui sarebbero stati inviati gli indirizzi dei risultati tornati da BOSS. Quest'ultimo si sarebbe solo occupato di tornare Successivamente un ognuno elenco di di risultati questi in base alla sarebbe stato query. rinviato ad un'applicazione SearchMonkey appositamente configurata in grado di estrarre i dati dei microformat. Per evitare questo inutile giro di informazioni e la conseguente perdita di tempo si è deciso di implementare Boss con l'ausilio delle view 'SearchMonkey_feed'. In questo modo però si è obbligati ad usare i microformat standard all'interno delle pagine Web e nei profili per evitare la perdita delle informazioni. Per quanto riguarda la ricerca implementata sui prodotti aziendali si è deciso di effettuarla sul database e non di utilizzare un apposito servizio SearchMonkey. In questo modo è stato possibile ricercare anche i prodotti delle aziende che non avevano ancora inserito i microformat nella propria pagina Web, per consentire loro di adeguarsi a queste tecnologie in modo graduale senza escluderle dai risultati di ricerca. Per permettere l'implementazione di questi servizi bisognerà quindi modificare anche la struttura del database, perché sia compatibile sia con le caratteristiche del portale precedenti sia con i nuovi servizi. 93 Caso d'uso: un portale per il risparmio energetico 3.2.3 Design di progettazione Il database utilizzato per memorizzare i dati utilizzati dal portale è strutturato secondo il seguente schema logico: Immagine 20: diagramma logico del database relativo alla seconda sperimentazione La struttura utilizzata nella sperimentazione precedente è stata mantenuta ed è stata ampliata per permetterne l'utilizzo anche in questa. Dallo schema in figura 20 si possono evincere facilmente le relazioni permesse e le relative cardinalità: • Azienda – Prodotto. Sono in relazione 1 a N in quanto ogni impresa potrebbe avere diversi servizi offerti o nemmeno uno. I prodotti invece devono avere solo un'unica azienda associata. Per consentire la comproprietà di un servizio è stata lasciata la possibilità di reinserirlo nel database in associazione ad un'altra azienda. Il portale li tratterà come 2 servizi distinti in modo da evitare problemi di incoerenza dei dati relativi allo stesso oggetto. 94 Caso d'uso: un portale per il risparmio energetico • Settore – sotto settore. Anche in questo caso la relazione risulta essere 1 – N, in quanto ogni campo potrà avere diverse specializzazioni ed ognuna di queste potrà avere a sua volta solo un settore generico a cui riferirsi. In questo modo si potrà costruire una tassonomia a 2 livelli per inserire i prodotti aziendali. Questi ultimi dovranno essere classificati all'interno di questa gerarchia in modo da permettere l'implementazione della loro ricerca applicando un filtro basato sull'ambito a cui si riferiscono. • Azienda – utente e Azienda – settore. Sono già state descritte nel capitolo 3.1.3. La tabella relativa alle informazioni dei servizi aziendali conterrà i seguenti vincoli: • Nome azienda, Nome servizio. Questi valori saranno obbligatori, in quanto serviranno per identificare un prodotto all'interno della base di dati utilizzata. Potranno essere lunghi al massimo 255 caratteri • Id_campo e Id_sottocampo. Questi valori rappresentano la chiave esterna associata alle tabelle legate alla categoria del prodotto offerto dall'azienda. Per questo motivo si è scelto di assegnare una lunghezza massima di 6 cifre e saranno obbligatori. • Indirizzi url. Considerato che questi indirizzi non saranno inviati al servizio BOSS tramite richiesta http, è stata scelto di consentire un massimo di 150 caratteri per l'indirizzo della foto e di 100 per quello della pagina Web del prodotto, inoltre questi campi sono facoltativi. • Descrizione e prezzo. Questi parametri non saranno obbligatori e dovranno attenersi ad una lunghezza massima di 2000 caratteri per il primo e di 10 cifre per il secondo. La chiave primaria di questa tabella sarà composta dal nome dell'azienda, dalla categoria a cui si riferisce e dal indirizzo della propria pagina web in 95 Caso d'uso: un portale per il risparmio energetico modo da consentire gli inserimenti dei dati relativi ai prodotti in comproprietà e per permettere l'inserimento di prodotti aventi lo stesso nome oppure che si riferiscono a diverse categorie. Per consentire alle aziende di inserire i propri prodotti correttamente nella base di dati del portale si dovranno apportare delle modifiche alla pagina di registrazione implementata in precedenza. Infatti bisognerà creare una gerarchia a 2 livelli in cui inserire i servizi offerti che sostituirà la semplice scelta multipla del campo d'attinenza implementata in precedenza. In figura 21 sono riportate tutte le azioni che un'azienda con un proprio sito Web dovrà effettuare per eseguire la nuova registrazione al portale. Immagine 21: registrazione di un'azienda che possiede un proprio sito Web. 96 Caso d'uso: un portale per il risparmio energetico Le differenze con il caso in cui l'azienda che effettua la registrazione non avesse un proprio sito Web sono minime. Infatti se si verificasse quell'eventualità, l'applicativo dovrebbe occuparsi anche di creare il profilo aziendale contenente tutti i dati relativi all'impresa e strutturati secondo gli standard dei microformat scelti. Per quanto riguarda il gestore, l'unico servizio che è stato implementato in aggiunta alla sperimentazione precedente riguarda la possibilità di inserire dei sotto settori al momento della creazione dei campi. In figura 22 è mostrata la procedura de eseguire per accedere a questo servizio aggiuntivo per il gestore. Immagine 22: aggiunta di un settore e delle relative specializzazioni. 97 Caso d'uso: un portale per il risparmio energetico In figura 23 è mostrata la procedura che viene attivata ad ogni ricerca effettuata con il servizio Yahoo BOSS da parte di un utente. Immagine 23: activity diagram relativo all'utilizzo del motore di ricerca di BOSS 98 Caso d'uso: un portale per il risparmio energetico 3.2.4 Design dei microformat Dopo un'attenta analisi delle informazioni da inserire nelle pagine Web per rappresentare l'azienda, i suoi contatti e i prodotti o servizi offerti, si è giunti alla scelta dei tipi di microformat da usare. A causa dell'elevato tempo di risposta che sarebbe stato necessario, non è stata possibile l'implementazione di un'applicazione rest di SearchMonkey. Quindi, considerato che si è obbligati ad usare Boss con la relativa view di SearchMonkey si è reso necessario l'utilizzo di strutture semantiche standard tra quelle riconosciute da Yahoo. Tra i microformat supportati nativamente da BOSS sono stati scelti l'hcard, per rappresentare le informazioni legate all'azienda e ai contatti, e Gr per contenere le informazioni associate ai prodotti offerti. Per quanto riguarda l'hcard verranno utilizzati i seguenti campi: • fn organization url. All'interno di questo marcatore inseriremo come valore del parametro 'href' di un collegamento l'indirizzo del sito aziendale, se disponibile, oppure quello del profilo creato all'interno del portale. Inoltre bisognerà immettere anche il nome dell'impresa come valore testuale del tag <a>; • fn n. In questo campo bisognerà immettere tutte l informazioni legate al proprietario, come ad esempio il nome, il cognome oppure un username legato a qualche social network. • Given – name. Sarà l'unico parametro che inseriremo nel tag 'fn n' in quanto rappresenta il nome completo del titolare. Abbiamo escluso le altre informazioni poiché non sono utili al fine di implementare un servizio dedicato alle aziende. Si potrebbe utilizzare in futuro anche il campo riguardante il nickname del proprietario presso il forum del portale se se ne dovesse implementare uno. 99 Caso d'uso: un portale per il risparmio energetico • Adr. Indica la parte in cui verranno inseriti tutti i dati riguardanti i recapiti legati in qualche modo alla persona o all'azienda precedentemente descritte; • type. Indica la categoria delle informazioni contenute nel tag 'adr' del microformat. Nel nostro caso abbiamo inserito 'work' in quanto i dati saranno riferiti al recapito aziendale e non abbiamo ritenuto necessario inserirne altri riguardanti il domicilio del proprietario o di qualche altra sede. • Street – address. Contiene l'indirizzo effettivo dello stabilimento aziendale, composto da una stringa di testo contenente il nome della via, del piazzale o del viale e da un campo numerico nel quale è possibile inserire il numero civico; • locality. Anche lui è un sotto campo del tag 'adr' come i precedenti, serve per indicare il nome della città in cui si trova la sede dell'impresa. • Postal – code. Rappresenta il cap legato al paese dello stabilimento aziendale; • country – name. Questo è l'ultimo sottocampo che verrà inserito nel tag 'adr' e rappresenta il nome dello stato di residenza della sede. Con tutti i parametri descritti fino ad ora si avrà la possibilità di utilizzare ad esempio il servizio di Gmap per mostrare l'itinerario per raggiungere il contatto rappresentato o la sua posizione geografica corretta sulla cartina topografica mondiale. • Tel. Rappresenta i recapiti telefonici legati all'azienda. In questo tag si può specificare il tipo di contatto nel sottocampo 'type',che ad esempio potrà assumere uno dei seguenti valori: telefono, fax, casa, lavoro oppure cellulare. Successivamente bisognerà inserire l'effettivo numero telefonico all'interno del campo 'value'. 100 Caso d'uso: un portale per il risparmio energetico • Mail. Contiene il contatto relativo alla casella di posta elettronica utilizzata dall'azienda per scambiare informazioni relative ai propri prodotti con i clienti. Queste informazioni saranno inserite nel microformat secondo questa struttura: Per quanto riguarda i dati relativi ai prodotti saranno inseriti in un microformat Goodrelations e saranno utilizzati i seguenti campi: • gr:Offering. E' il tag principale che indica la presenza di un prodotto all'interno della pagina. Tutti i campi e le informazioni saranno inserite in questo tag. Inoltre se si devono inserire diversi prodotti all'interno della stessa pagina bisognerà duplicare questa risorsa per ogni prodotto che si vuole descrivere. Prima di specificare i 101 Caso d'uso: un portale per il risparmio energetico campi e i relativi valori è necessario inserire la definizione del namespace a cui essi si riferiscono in modo da consentire al crawler di SearchMonkey di estrapolare in modo corretto le informazioni contenute; • gr:HasPriceSpecification. informazioni relative Questo campo contiene tutte le al prezzo del prodotto nelle varie valute mondiali descritte attraverso i sotto tag gr:HasCurrency/Value e gr:HasCurrency/Value; • gr:HasCurrency/Value. In questo parametro va inserito un valore numerico float che indicherà il prezzo del prodotto descritto. • gr:HasCurrency. Contiene una sigla univoca di tre caratteri che rappresenta una tra le valute mondiali alla quale il prezzo si riferisce. Per il portale è stato scelto l'euro in quanto è la moneta corrente in Italia e in Europa. Per future implementazioni sarà possibile inserire anche la conversione in franchi svizzeri del prezzo. La lista completa delle stringhe disponibili è descritta nella 'ISO 4217 Currency Code List'. • Gr:IncludeObject. Contiene le informazioni generali relative al prodotto descritto, come ad esempio il nome, una descrizione sintetica oppure la categoria a cui si riferisce. Questi dati sono inseriti attraverso i tag gr:typeOfGood, Rdfs:label e rdfs:comment. • Gr:typeOfGood. Indica la categoria generica del prodotto, ad esempio se si stesse descrivendo una finestra, questo parametro potrebbe assumere come valore la parola 'serramenti' o 'infissi'. Questo campo non dovrà superare la lunghezza massima di 60 caratteri. • Gr:description. Contiene una descrizione più specifica del prodotto. All'interno del portale si è deciso di associarla alla categoria, in 102 Caso d'uso: un portale per il risparmio energetico modo da poter inserire la categoria relativa ai prodotti. Di fatto sarà possibile inserire una tassonomia a due livelli per differenziare il servizi offerti dalle aziende anche all'interno dei microformat. Il gestore avrà il compito di scegliere una classificazione che assuma significato anche all'esterno del portale in quanto i microformat saranno interpretabili anche da altri servizi di ricerca. • Gr:ProductOrService. Serve a specializzare il tag Gr:IncludeObject in quanto specifica che le informazioni in esso contenute saranno relative ad un prodotto o ad un servizio e non, ad esempio, ad un'azienda o ad un negozio. • Rdfs:label. Contiene il nome dell'oggetto a cui si riferiscono le informazioni. L'informazione contenuta in questo campo non potrà superare i 60 caratteri di lunghezza; • rdfs:comment. Esso dà la possibilità di inserire una breve descrizione di 200 caratteri al massimo, in modo da poter descrivere ulteriormente il prodotto con informazioni che non sono ancora supportate dalla struttura del microformat. • Rdfs:seeAlso media:immage che conterrà l'url relativo ad un immagine gif, jpg o png e il cui scopo sarà quello di rappresentare il prodotto. Questo campo è sottoposto a particolari vincoli, infatti l'indirizzo non potrà superare i 200 caratteri e la foto dovrà misurare al massimo 85 x 65 pixel. • Product:manufacturer. Contiene le informazioni legate al produttore ordinate secondo le specifiche della vcard descritte in precedenza. Nel nostro caso si è deciso di inserire solo la parte relativa al sito aziendale e al nome dell'impresa in quanto tutte l altre informazioni sono già contenute nella pagina Web attraverso l'uso del microformat vcard. 103 Caso d'uso: un portale per il risparmio energetico • Product: specification. Contiene l'indirizzo della pagina nella quale sono riportate informazioni aggiuntive sul prodotto. Inoltre è anche possibile inserire l'url relativo ad altre risorse, come ad esempio la pagina contenente le faq con il tag 'Product: faq' oppure quella relativa al manuale delle istruzioni d'uso con il campo 'Product: manual'. Gli indirizzi inseriti dovranno attenersi al vincolo di lunghezza massima di 200 caratteri. Un esempio completo della struttura che questi campi dovranno seguire per un corretto utilizzo è riportata nel seguente stralcio di codice: I microformat descritti in questo capitolo verranno inseriti all'interno delle pagine dei profili aziendali; per la modalità di visualizzazione di tali informazioni si rimanda al capitolo successivo. 104 Caso d'uso: un portale per il risparmio energetico 3.2.5 Implementazione Per configurare il servizio offerto da Yahoo si è scelto di implementare un'interfaccia utente che permetta di configurare il dominio di ricerca in base al bisogno, infatti sarà possibile limitarlo attraverso dei filtri. Essi saranno basati sul settore aziendale in cui si vorranno effettuare le ricerche, in questo modo il risultato finale sarà simile a quello offerto da Google CSE con le label. Per quanto riguarda i parametri inviati al servizio si è scelto di utilizzare il formato xml per contenere i risultati restituiti e di non utilizzare nessun tipo di filtro legato ai contenuti o alla regione di ricerca in quanto non necessari per questa sperimentazione. In futuro se si vorrà implementare anche la possibilità di selezionare la lingua, si potrebbe impostare il filtro in base ad essa. Infine si è impostata una paginazione di 10 risultati settando nel modo opportuno i parametri count e start. In figura 24 è mostrata l'interfaccia utente implementata per accedere al servizio di Yahoo. Immagine 24: interfaccia per effettuare una ricerca con Yahoo BOSS 105 Caso d'uso: un portale per il risparmio energetico L'elenco dei siti da inviare a BOSS tramite la richiesta http viene creato dinamicamente dall'applicativo. Infatti questo preleverà la lista dei siti appartenenti al settore scelto dal database attraverso un'apposita query. Successivamente aggiungerà tutti gli indirizzi delle pagine Web riguardanti il settore del risparmio energetico contenuti sul file di testo prodotto attraverso l'account del gestore. I risultati tornati da BOSS saranno visualizzati all'utente nel modo mostrato in figura 25. Ogni result conterrà i seguenti parametri: • informazioni generali. Esse avranno il compito di fornire una panoramica del risultato, in quanto presentano un estratto dalla pagina del sito, il nome e l'indirizzo Web del risultato. Come si può notare la visualizzazione è completamente diversa da quella proposta da Google, in quanto questa è lasciata completamente alla fantasia dello sviluppatore. • Keyterms. Queste informazioni reperite tramite la view apposita di BOSS sono state implementate in modo da permettere di specializzare la ricerca. Infatti saranno proposte all'attenzione dell'utente come dei semplici link che una volta selezionati modificheranno la query di ricerca del servizio aggiungendoci la keyterms scelta. • Vcard aziendale. Questo servizio permetterà di scaricare sul proprio computer la vcard relativa all'azienda selezionata. Questo file verrà creato al momento dell'approvazione del gestore successiva alla registrazione o alla modifica dei dati inseriti da parte delle imprese. Queste risorse saranno nominate con il nome dell'azienda che rappresentano, quindi sarà possibile permetterne il download semplicemente reindirizzando l'utente alla vcard desiderata attraverso il seguente link: <a href='Indirizzo server/vcard/NOME AZIENDA.vcf '> 106 Caso d'uso: un portale per il risparmio energetico Immagine 25: visualizzazione dei risultati tornati da BOSS Invece utilizzando BOSS con l'ausilio di SearchMonkey attraverso l'uso della view 'SearchMonkey_feed' la visualizzazione dei risultati tornati sarà più completa. Infatti si potranno inserire ulteriori informazioni oltre a quelle precedenti come ad esempio la visualizzazione dei prodotti offerti dall'azienda con le relative informazioni ( ne è un esempio la figura 26 ) oppure la possibilità di visualizzare la mappa con l'itinerario per raggiungere la sede aziendale o il negozio autorizzato alla vendita. Nel portale si utilizzerà la visualizzazione dei risultati contenente i prodotti qualora se ne presentasse uno avente delle informazioni sui servizi offerti dall'impresa. In alternativa si mostreranno nel modo illustrato in figura 25. Infine si è scelto di non modificare il ranking dei risultati proposti da BOSS per evitare ulteriori incrementi del tempo di risposta dovuti sia all'attesa delle numerose richieste in parallelo da effettuare al servizio di Yahoo, sia 107 Caso d'uso: un portale per il risparmio energetico all'interpretazione dei xml ricevuti, sia all'eliminazione dei risultati eventualmente ripetuti e alle politiche di ordinamento scelte. Immagine 26: visualizzazione dei risultati tornati da BOSS con l'ausilio di SearchMonkey. I dati aggiuntivi mostrati nella precedente immagine, rispetto a quella mostrata in figura 25, sono permessi grazie alle informazioni aggiuntive ritornate nel xml dei risultati da BOSS se si utilizza la view di SearchMonkey. Infatti verranno inseriti tutti i dati contenuti dai microformat presenti nella pagina Web relativa al risultato. Queste informazioni possono rappresentare una vcard, un prodotto o un qualsiasi metadato supportato da SearchMonkey. Un esempio delle informazioni supplementari inserite nel file dei risultati è mostrato in figura 27 nella quale è riportato uno stralcio del xml ricevuto in risposta da BOSS, contenente i dati relativi ad un microformat gr. Inoltre, utilizzando questo servizio si potrebbe evitare la memorizzazione delle vcard aziendali sul server, in quanto, tutti i dati necessari sarebbero contenuti nel xml dei risultati, rendendo di fatto possibile la creazione dinamica del file contenente i recapiti dell'impresa. Quest'ultima 108 Caso d'uso: un portale per il risparmio energetico eventualità non è stata implementata nel portale perché la possibilità di visualizzare e scaricare la vcard delle aziende è presente in diverse pagine del progetto. Inoltre non si sapeva a priori se le aziende registrate avessero aggiornato il proprio sito Web con i microformat e se il crawler di Yahoo contenesse già i dati necessari. Quindi per fare in modo che le aziende e i relativi dati fossero presenti da subito nel motore di ricerca è stato scelto di non implementare la creazione dinamica delle vcard aziendali. Immagine 27: stralcio di xml contenente i dati tornati da BOSS con la view di SearchMonkey Un altro tipo di ricerca è stato implementato sfruttando i dati memorizzati nel database del portale. Infatti si voleva concedere la possibilità di ricercare velocemente i prodotti aziendali offerti attraverso dei particolari filtri senza attendere il tempo di risposta di BOSS e quello relativo all'interrogazione di un servizio rest apposito di SearchMonkey per ogni risultato proposto dal motore di ricerca precedente. Per questo motivo è 109 Caso d'uso: un portale per il risparmio energetico stato implementato un motore di ricerca in grado di ordinare e filtrare i risultati attraverso la seguente query: Da questa richiesta otterremo in risposta una lista di elementi che conterranno le informazioni evidenziate in verde, successivamente esse verranno visualizzate nel modo rappresentato in figura 28. I parametri evidenziati in blu rappresentano i campi che verranno utilizzati per attuare i filtri immessi dell'utente, rappresentati a loro volta dalle variabili evidenziate in rosso. E' possibile modificare l'ordine con cui vengono presentati i risultati semplicemente settando i parametri mostrati nella parte inferiore dell'interfaccia messa a disposizione dell'utente. Per quanto riguarda il layout dei risultati si è cercato di implementare un'interfaccia simile a quelle implementabili attraverso i servizi messi a disposizione da SearchMonkey. Infatti verranno presentati innanzitutto i dati rilevanti, cioè quelli con cui è consentito impostare il filtro e successivamente la foto del prodotto e la sua descrizione. Infine verranno inseriti alcuni servizi aggiuntivi legati al prodotto e all'azienda produttrice. 110 Caso d'uso: un portale per il risparmio energetico Immagine 28: visualizzazione dei prodotti restituiti dalla ricerca nel database Attraverso questi servizi aggiuntivi sarà possibile inviare una mail all'azienda produttrice, per chiedere ulteriori dettagli riguardo al prodotto selezionato, oppure scaricare tutti i recapiti aziendali nel formato vcard. Questo per consentire agli utenti di contattare l'impresa nel modo desiderato o per poter salvare queste informazioni sul proprio computer in modo semplice e veloce. Inoltre si potrà ricercare nel Web prodotti simili a quello proposti nel risultato visualizzato al fine di confrontare le caratteristiche o il prezzo dei prodotti offerti con quelli di altri fornitori. Per far questo si è implementato, attraverso un link, un servizio in grado d'inviare una query a Google contenente la categoria a cui si riferisce il prodotto selezionato. Infine, si è creato, attraverso le API fornite da Gmap, un servizio in grado di mostrare la posizione geografica di un'azienda. In questo modo sarà possibile anche accedere all'itinerario per raggiungerla. Per poter implementare questo servizio si è dovuta includere la libreria di funzioni, offerte da Google map, reperibile a questo indirizzo: http://maps.google.com/maps?file=api&v=2.x&key=App_id . 111 Caso d'uso: un portale per il risparmio energetico Successivamente sarà possibile utilizzare il seguente stralcio di codice per ottenere le coordinate corrette della longitudine e latitudine della sede aziendale. Infine, tramite questi valori numerici, si potrà visualizzare sulla mappa un puntatore e alcune informazioni riassuntive relative all'impresa, come mostrato in figura 29. Immagine 29: visualizzazione della posizione geografica di un'azienda 112 Caso d'uso: un portale per il risparmio energetico Attraverso il servizio concesso da Gmap è possibile accedere al sito Web di Google per ottenere le indicazioni stradali relative all'itinerario proposto per raggiungere la sede aziendale. Per consentire alle imprese di inserire i propri prodotti scegliendone la categoria, nella tassonomia composta da 2 livelli, è stata necessaria la modifica della pagina della registrazione. Per questo motivo si è implementata un'ulteriore parte in cui verranno chieste queste informazioni (mostrata in figura 30). Immagine 30: settore della pagina per la registrazione dedicato alle informazioni dei servizi Questo nuovo settore, creato all'interno della pagina relativa alla registrazione da parte delle aziende, possiede numerosi controlli Javascript utili per evitare l'inserimento di dati errati da parte delle imprese. Inoltre sarà implementato, sempre attraverso degli script, un sistema che consentirà l'inserimento di numerosi servizi all'interno sia della stessa, sia di diverse categorie. Quest'ultimo creerà o eliminerà dinamicamente le caselle di testo dedite all'immissione dei dati relativi ai servizi aziendali in base alla scelta dell'utente. Per questo motivo sono stati 113 Caso d'uso: un portale per il risparmio energetico creati due pulsanti per consentire l'aggiunta di un nuovo prodotto o la rimozione di uno precedentemente inserito. Sono state apportate modifiche anche alle pagine contenenti i profili delle aziende che non possiedono una propria pagina Web. Infatti sono stati aggiunti i microformat relativi alle informazioni legate all'impresa e ai relativi servizi offerti. Inoltre sono state aggiunte le possibilità di scaricare la vcard aziendale e di visualizzare la mappa recante la posizione dello stabilimento o del negozio descritto nella pagina Web. In figura 31 è riportato un esempio completo riguardante il nuovo layout utilizzato nei profili interni creati dal portale. Immagine 31: visualizzazione dei profili aziendali contenenti i microformat Invece, per consentire l'utilizzo dei microformat alle aziende che già detengono una propria pagina Web contenente le proprie informazioni e i 114 Caso d'uso: un portale per il risparmio energetico propri prodotti, è stata introdotta la possibilità di accedere, tramite le proprie credenziali, ad un apposito servizio. Questo consentirà all'impresa di visualizzare i microformat contenenti le proprie informazioni in un'apposita casella di testo. In tal modo sarà possibile copiarli e inserirli nelle proprie pagine Web in modo semplice e veloce. E' riportato un esempio di tale servizio in figura 32. Immagine 32: visualizzazione dei microformat per le aziende con un proprio sito Web. Per quanto riguarda l'utente gestore, l'interfaccia è rimasta quasi totalmente invariata. Infatti è stato aggiunto solo un servizio per consentire l'inserimento dei settori e dei relativi sotto campi. 115 Caso d'uso: un portale per il risparmio energetico Anche in questa pagina sono stati inseriti dei controlli in Javascript per evitare l'immissione di dati duplicati o errati. Inoltre, sempre attraverso l'uso di script, è stata implementata la possibilità di inserire diversi sotto campi per ogni settore in caselle di testo create dinamicamente dall'applicativo. L'interfaccia utente utilizzata per presentare questo nuovo servizio al gestore è rappresentata in figura 33. Immagine 33: interfaccia relativa al servizio per l'aggiunta dei settori e sotto settori. Per accedere a tutti i servizi personalizzati per gli utenti del portale bisognerà usare le proprie credenziali e selezionare tra i servizi proposti quello desiderato. Infine, per facilitare il confronto tra BOSS e CSE, i servizi di custom search sono stati implementati in contemporanea nella stessa pagina del portale. Per questo motivo sono state effettuate anche alcune scelte legate alla struttura del database per consentirne l'utilizzo da entrambe le applicazioni. Inoltre è stato utilizzato il file xml, che era stato creato appositamente per Google CSE, anche per attingere gli indirizzi delle pagine inserite dal gestore necessarie per la configurazione del dominio di ricerca di BOSS. 116 Caso d'uso: un portale per il risparmio energetico Capitolo 4: Conclusioni finali 4.1 Prefazione In questo capitolo trarremo le conclusioni dal lavoro di ricerca e di sperimentazione svolto fino ad ora, analizzando scrupolosamente i servizi utilizzati. Inoltre cercheremo di derivare dalle nostre analisi anche un modello ideale di servizio, di cui auspichiamo la presenza nel panorama mondiale per consentire alle aziende di implementare un proprio motore di ricerca veloce ed efficace. Infine, prima di mostrare tutta la bibliografia utilizzata come supporto, faremo delle considerazioni riguardo agli sviluppi futuri e ai servizi aggiuntivi che si potranno implementare nel portale preso in considerazione nelle nostre sperimentazioni. Gli argomenti analizzati in quest'ultima parte sono emersi durante l'analisi delle informazioni tratte dalle seguenti attività: • studio delle problematiche aziendali. Questa fase ci ha permesso innanzitutto di focalizzare l'attenzione sulle vere problematiche aziendali legate al contesto dei motori di ricerca, in modo da poter proporre una soluzione che miri a risolverne la maggior parte. Inoltre si sono potuti carpire i principi fondamentali che hanno portato due delle più importanti imprese di motori di ricerca come Google e 117 Conclusioni finali Yahoo a creare dei servizi innovativi per accaparrarsi il settore del custom search. • Analisi delle soluzioni disponibili. In questa parte del nostro studio abbiamo potuto entrare in contatto con alcuni servizi innovativi che, potenzialmente, indicheranno la strada per intraprendere un nuovo tipo di ricerca sul Web, basata su significati semantici e sulla possibilità di manipolare il dominio di ricerca. • Confronto tra i servizi proposti. In questo modo si è potuto approfondire ulteriormente lo studio delle caratteristiche di ogni servizio creato per effettuare ricerche personalizzate, in modo da riuscire a tracciare delle direttive per realizzare un prodotto per le aziende in grado di risolvere alcuni dei maggiori problemi legati a queste nuove tecnologie. • Sperimentazioni. In questa fase si sono potute testare le risorse studiate in precedenza in modo da analizzare le limitazioni implementative ad esse legate e di applicare concretamente le tecnologie descritte. Infatti, durante queste prove, si sono scoperti alcuni limiti legati all'integrazione con la tecnologia utilizzata sul proprio Web server, come ad esempio il tempo di risposta effettivo dei servizi o il metodo di gestione dei risultati. • Analisi dei risultati ottenuti. Questa costituisce l'ultima tappa della ricerca effettuata in questa tesi, ma non la meno importante anzi, risulta di fondamentale importanza in quanto rappresenta la sintesi del contributo apportato dal nostro lavoro. Per tutti questi motivi il presente capitolo servirà a dettagliare il lavoro svolto riassumendo tutti i contributi fondamentali emersi durante lo studio dei servizi custom search. 118 Conclusioni finali 4.2 Considerazioni sui servizi analizzati Durante l'analisi e la sperimentazione delle tecnologie offerte da Google e da Yahoo sono emerse alcune analogie ma anche molte differenze. Sfruttando i dati raccolti cercheremo di proporre dei consigli utili all'implementazione di un servizio completo e facile da utilizzare in sostituzione di quelli attualmente disponibili. A fine paragrafo sarà proposta una tabella riassuntiva contenente tutte le informazioni che andremo a disquisire di seguito: • Il modo in cui sarà reso disponibile agli sviluppatori. In questo senso, sia Google, sia Yahoo, hanno utilizzato dei metodi completamente differenti. Infatti Boss e SearchMonkey sono stati sviluppati come delle risorse di tipo rest, cioè reperibili solo attraverso delle richieste http, in modo da essere facilmente configurabili attraverso l'uso di semplici parametri (come ad esempio l'elenco delle pagine Web da comprendere nel domino di ricerca oppure alcuni particolari filtri). In questo modo, come abbiamo potuto osservare nel corso delle sperimentazioni, si è ottenuto il vantaggio di poter cambiare configurazione dinamicamente in base alla tipologia di ricerca effettuata dall'utente. Di contro si sono evidenziati notevoli svantaggi legati al tempo di risposta del servizio e alla limitazione dei parametri passabili attraverso richiesta http pari a 8178 caratteri. D'altra parte CSE consente di salvare l'elenco degli indirizzi utilizzabili per la ricerca e alcuni parametri di configurazione direttamente all'interno di un file xml, in modo da porre un limite di url molto superiore: almeno di 5 volte maggiore rispetto a quello consentito da Boss. Purtroppo però questo dominio non potrà essere aggiornato dinamicamente in quanto l'xml viene processato 119 Conclusioni finali dai server di Google in intervalli prestabiliti e non al momento della richiesta da parte dell'utente. Un servizio ideale dovrebbe garantire tutte le caratteristiche positive descritte in precedenza cercando di offrire un servizio configurabile dinamicamente, magari con dei parametri recuperati dall'interfaccia utente, senza però avere delle limitazioni dovute alla richiesta http, sui parametri passabili. Per questo motivo si potrebbe implementare una risorsa che permetta di effettuare l'invio di un file contenente l'elenco degli url in cui essa dovrà effettuare la ricerca. In questo modo non si avranno ritardi dovuti all'estrazione delle informazioni in quanto l'elenco sarà già ottimizzato secondo uno standard stabilito al momento della creazione del servizio. • Tipo di ricerca. In questo frangente sia CSE che BOSS effettuano questa operazione solo all'interno del contenuto testuale della pagina senza informazioni assegnare recuperate nessun dai significato crawler. D'altra semantico parte alle invece, SearchMonkey indicizza i dati inseriti nei microformat in modo più intelligente, cioè classificando le informazioni da essi contenute in base al tipo di struttura utilizzato o all'oggetto rappresentato. In questo modo sarebbe possibile effettuare ricerche filtrando i risultati in base al valore di particolari dati, come ad esempio in base al prezzo o alla zona di vendita. Il problema principale dei servizi analizzati durante la nostra esperienza è proprio legato a questa caratteristica che non è stata implementata in alcun modo. Infatti, basti pensare che Google non considera minimamente l'importanza di queste strutture semantiche all'interno delle pagine Web, poiché non le classifica e non offre nessun servizio in grado di estrarle. Boss permette di ricevere i dati relativi ai microformat, però non permette di effettuare ricerche o filtri con essi. Pertanto, prima 120 Conclusioni finali esegue la scelta e l'ordinamento dei risultati da proporre, in base all'attinenza con la query inserita dall'utente rispetto al contenuto delle pagine Web presenti nel dominio di ricerca, e solo successivamente, attraverso la view di SearchMonkey, associa al result tutte le informazioni relative alle strutture semantiche presenti nella pagine Web del risultato stesso. In questo modo si ottengono molte più informazioni rispetto al servizio offerto da Google, ma la ricerca effettuata non dipende in alcun modo dai microformat inseriti nelle pagine Web o dal loro contenuto. Per risolvere questo problema si deve implementare un'applicazione appositamente studiata per riordinare o filtrare i risultati restituiti da Boss in base ai valori contenuti nei campi dell'xml relativi ai metadati associati dal servizio al risultato proposto. Questo metodo presenta il grande svantaggio di aumentare drasticamente il tempo di risposta del motore di ricerca in seguito ad una query effettuata da un utente. Per tutti questi motivi un servizio ideale dovrebbe consentire anche di creare anche dei range di valori per alcuni campi dei microformat più utilizzati, in modo da poter effettuare delle ricerche prendendo in considerazione delle informazioni supplementari oltre alla semplice query testuale. Logicamente quest'ultima considerazione potrebbe rivelarsi utopica in quanto probabilmente bisognerebbe modificare drasticamente il sistema di indicizzazione delle informazioni da parte dei crawler, cercando di porre maggior attenzione a quei determinati valori. Inoltre bisogna considerare che in pochissime pagine Web sono integrate queste strutture semantiche quindi non si può implementare un servizio che funzioni solo per una ristretta cerchia di risorse Web. Ipotizzando che nei prossimi anni i microformat si diffondano in modo da essere presenti nella maggior parte dei siti Web aziendali e privati, un servizio concepito nel modo appena descritto potrebbe ottenere numerosi consensi da parte degli 121 Conclusioni finali sviluppatori e delle imprese desiderosi di implementare dei servizi di ricerca basati su queste tecnologie. • Il ranking dei risultati proposti. I servizi per la selezione dei risultati e per il loro ordinamento sono stati concepiti in maniera differente da Google e Yahoo. Infatti il primo non permette nessuna modifica del ranking che propone allo sviluppatore, se non la concessione di una piccola promozione verso l'alto di alcune pagine attraverso un parametro ad esse assegnato al momento della definizione del dominio di ricerca. In questo modo si è semplificato il compito degli sviluppatori in quanto basterà preservare uno spazio per la visualizzazione dei risultati in una pagina Web e del resto si occuperà il servizio. Yahoo Boss, invece, permette il completo riordinamento dei risultati attraverso un'applicazione apposita in quanto la visualizzazione dei risultati va gestita dello sviluppatore. In questo frangente non si può dire quale dei due metodi sia il migliore, poiché dipende fortemente dal contesto in cui si vogliono utilizzare. Ad esempio un'azienda che non possiede personale in grado di gestire un Web server o un applicativo in php, sicuramente preferirà un servizio simile a quello di Google mentre invece un'impresa che dispone di un programmatore o vuole avere il controllo sui risultati visualizzati dal proprio motore di ricerca sceglierà una risorsa uguale a Boss. • La visualizzazione dei risultati particolari e le informazioni relative ad ognuno di essi. Anche in questo frangente i servizi analizzati propongono due approcci completamente differenti. Infatti Google consente di mostrare i risultati proposti solo in modo classico, ovvero un collegamento ad una pagina Web, una breve descrizione e poco altro, qualunque sia il tipo di risultato da presentare. D'altro conto, Yahoo permette attraverso Boss di 122 Conclusioni finali implementare un proprio layout dei risultati in modo da lasciare un ampio grado di libertà agli sviluppatori. Queste soluzioni presentano notevoli svantaggi, ad esempio la prima non permette di visualizzare delle informazioni aggiuntive (in grado di aiutare l'utente nella selezione del risultato che più lo soddisfa), mentre la seconda obbliga un'impresa ad assumere un Web designer o una figura simile per le difficoltà di gestione della la paginazione dei risultati e del layout desiderato per ognuno di essi. Per un servizio ideale si potrebbero implementare delle maschere predefinite, utilizzabili per dei particolari tipi di dati. In questo senso si sono prodigate sia Google, sviluppando dei layout particolari per i risultati contenenti esclusivamente immagini o video, sia Yahoo che con SearchMonkey consente la creazione di particolari maschere utilizzabili però solamente all'interno delle pagine personali dei clienti registrati al sito del motore generalista offerto da questa azienda. L'implementazione di particolari tipi di maschere dedite alla visualizzazione dei dati standard potrebbe essere molto utile in quanto si potrebbero diversificare i risultati in base alla categoria. Ad esempio si potrebbe scegliere di effettuare delle ricerche solo tra i prodotti o tra le aziende, proponendo come risultati delle maschere in grado di visualizzare i dati relativi ai microformat gr per il primo caso e vcard per il secondo. Anche in questo caso si potrà attivare questo servizio solo dopo aver inserito nella maggior parte dei siti interessati le strutture semantiche precedentemente descritte. • La creazione di nuovi tipi di microformat. Questa possibilità attualmente viene concessa solo da SearchMonkey, che permette di definire un'applicazione rest in grado di estrarre dei dati dalle pagine Web anche se non sono contenute in microformat standard. Purtroppo questo servizio presenta una pesante limitazione, infatti 123 Conclusioni finali consente di utilizzare l'applicazione creata solo nelle pagine i cui gli indirizzi sono stati specificati al momento della creazione dell'applicazione SearchMonkey. La stessa risorsa permette anche la creazione di una maschera per la visualizzazione dei metadati precedentemente estratti. Anche questo servizio è messo a disposizione solo per gli utenti che effettuano una ricerca all'interno della propria pagina personale di Yahoo. Per questi motivi la creazione di un nuovo microformat è consentita ma ne rende praticamente impossibile un utilizzo diffuso nel Web: se si tentasse di usare la stessa struttura semantica in una pagina non contenuta nel 'trigger domain' dell'applicazione, essa non verrebbe attivata nel momento dell'estrazione dei dati che quindi non verrebbero indicizzati. Dal nostro punto di vista un servizio di ricerca nel Web dovrebbe consentire la creazione delle strutture in grado di contenere dei dati specifici in quanto i microformat standardizzati presenti attualmente non sono in grado di coprire tutti le categorie di oggetti o risorse presenti nelle pagine Web mondiali. Logicamente i nuovi tipi di microformat e le relative applicazioni per estrarli dalle pagine dovrebbero essere attivati sui motori di ricerca generalisti solo dopo essere stati approvati e testati da una commissione di esperti in modo da evitare la diffusione di migliaia di standard diversi che rappresentano lo stesso prodotto o servizio. • Le risorse messe a disposizione. In questo contesto Google offre servizi migliori rispetto a Yahoo. Infatti quest'ultimo presenta solo un servizio di correzione sintattica della query di ricerca digitata dall'utente. Google invece permette di implementare dei servizi in grado di consigliare all'utente ricerche più specifiche o addirittura di riscrivere la query in base alle parole digitate nella ricerca. Queste risorse sono attuate attraverso dei particolari tipi di label. Inoltre 124 Conclusioni finali Google fornisce delle funzioni, richiamate automaticamente dall'interfaccia di ricerca, in grado di effettuare il controllo sintattico della stringa di richiesta inviata dall'utente. Migliorare gli aspetti di questi servizi di supporto proposti da Google risulta difficile, quindi in un'ipotetica risorsa per la ricerca sul Web dovrebbero essere presenti delle risorse simili a queste, implementate in modo da consentirne la scelta all'interno della propria pagina Web da parte dello sviluppatore. • I servizi aggiuntivi che si possono implementare ai risultati. Nella seconda sperimentazione si è implementato una risorsa in grado di mostrare i dati relativi ai prodotti e alcuni servizi aggiuntivi associati al risultato proposto. Si può notare facilmente che risorse di questo tipo (come ad esempio quella che permette di visualizzare la posizione della sede aziendale su una mappa geografica oppure quella che consentiva di inviare una mail direttamente al produttore), sono molto utili perché in grado di facilitare la navigazione agli utenti che necessitano di tali servizi. Per questo motivo si potrebbero creare dei servizi 'standard' da associare ai diversi tipi di risultati ritornati dal motore di ricerca. Alcuni esempi di queste risorse di default potrebbero essere: un collegamento a Gmap per i risultati relativi alle aziende, un servizio per la conversione delle valute per i prodotti, un collegamento ad un social network per i dati relativi ad una persona oppure una risorsa per la conversione di formato di un file se si tratta di un risultato relativo a dei documenti. Tra i servizi analizzati solo Yahoo con SearchMonkey ha provato a consentire dei servizi aggiuntivi per particolari tipi di risultati. Rimane però il problema legato alla visibilità infatti tali servizi saranno ancora utilizzabili solo dagli utenti registrati al portale di Yahoo nelle proprie pagine personali. Google invece si è limitata ad aggiungere, solo nel 125 Conclusioni finali proprio servizio generalista, la possibilità di visualizzare la mappa contenente la posizione geografica corretta se il risultato si riferisce ad un indirizzo specifico. • Interfaccia utente. Questa caratteristica risulta di fondamentale importanza per un servizio in quanto permette di definire tutti i parametri che esso riceverà in ingresso. In un servizio ideale l'interfaccia utente dovrebbe essere come quella offerta da Gmap, cioè a blocchi. In questa risorsa, utilizzabile tramite Javascript, è possibile selezionare i servizi che si vogliono concedere all'utente aggiungendoli a quello base offerto di default. Ad esempio alla cartina mostrante la posizione dell'indirizzo inserito si possono aggiungere: una casella di testo per consentire la visualizzazione di un altro punto sulla carina, lo zoom per permettere la modifica del livello di dettaglio voluto sulla mappa visualizzata oppure un etichetta di testo che rappresenta in modo schematico la posizione del puntatore nella cartina politica. Seguendo l'esempio di Gmap un motore di ricerca dovrebbe presentare di default una casella di testo per inserire la query di ricerca e un pulsante per inviarla, inoltre lo sviluppatore potrebbe scegliere quali servizi supplementari mostrare tra i seguenti: un sistema per consentire la scelta tra la ricerca nel Web o in un dominio ristretto di siti, un interfaccia a scelta multipla per consentire la selezione dei settori (le label per Google) in cui ricercare, un elenco per selezionare i filtri sui contenuti desiderati oppure una casella di testo per aggiungere ulteriori dettagli alla query inserita. Inoltre, se supportati, si potrebbero creare dei campi in cui introdurre dei vincoli o dei valori relativi ai microformat più importanti. Dando la possibilità di immettere questi parametri direttamente nell'interfaccia del servizio si potranno implementare anche dei controlli in Javascript per evitare l'inserimento di dati errati 126 Conclusioni finali senza complicare l'implementazione del servizio da parte delle aziende. • Prezzo. Google propone gratuitamente il proprio servizio in quanto guadagna attraverso l'inserimento di spazi pubblicitari all'interno delle pagine in cui verranno mostrati i risultati. Yahoo invece concede a pagamento il proprio servizio per gli utenti che effettuano più di 10000 richieste giornaliere. Una risorsa ideale dovrebbe essere completamente gratuita se utilizzata per fini inerenti la ricerca e lo sviluppo, e a pagamento per gli utenti che la implementano per scopi commerciali o privati nella propria pagina Web. Questi costi potrebbero essere annullati tramite l'immissione di pubblicità all'interno dei siti Web che decidono di implementare il motore di ricerca, concedendo comunque la scelta relativa al metodo di pagamento desiderato. • Integrazione con il motore di ricerca generalista. Sia Google, sia Yahoo considerano i propri servizi di custom search come delle risorse completamente indipendenti rispetto al proprio motore di ricerca generalista. Questo rappresenta uno svantaggio soprattutto per le imprese che desiderano implementare dei servizi personalizzati con caratteristiche innovative. Basti pensare alle aziende che creano un'applicazione SearchMonkey per estrarre i propri microformat. Inoltre, in questo modo si rallenta anche lo sviluppo delle nuove tecnologie in quanto si diffonderanno solo le strutture semantiche già presenti e standardizzate e non quelle sperimentali che magari si prestano meglio ai contesti aziendali. Per questi motivi un servizio di custom search dovrebbe consentire anche alle componenti create dagli utenti, sempre dopo un'attenta analisi, di interagire con il motore di ricerca generalista. 127 Conclusioni finali Le considerazioni descritte in precedenza sono relative ad un servizio di custom search ideale e quindi difficilmente realizzabile attualmente perché la diffusione dei microformat è minima. Inoltre i crawler dei principali motori di ricerca sono stati implementati e ottimizzati per l'indicizzazione e la ricerca di contenuti testuali e quindi difficilmente mutabili in favore di una ricerca semantica basata su valori numerici o alfanumerici. In tabella 3 mostreremo un riassunto delle considerazioni discusse in questo capitolo. Proprietà Descrizione Tipo di ricerca Ricerca consentita sia tra i contenuti testuali della pagina sia all'interno dei dati inseriti nei microformat più importanti e conosciuti, implementando dei filtri o delle classificazioni in base al valore da essi contenuti. Inoltre dovrà rendere possibile sia la ricerca nel web sia la ricerca in un dominio ristretto di siti Web. Risorse disponibili Tutti i servizi per aiutare l'utente nella ricerca, cioè: controllo sintattico oppure suggerimenti di ricerca in base alle parole inserite, per specificare al meglio la richiesta effettuata. Su di un file xml contenente tutte le informazioni richieste, lasciando la scelta del layout al programmatore, Visualizzazio oppure visualizzate automaticamente dal servizio in modo ne dei intelligente, cioè con maschere predefinite in base al tipo risultati di risultato mostrato oppure con servizi aggiuntivi in base al contenuto del risultato proposto. Dati Supportati Tutti i tipi di microformat standardizzati con la possibilità di aggiungerne di nuovi, proposti dagli utenti, dopo averli esaminati e confrontati con quelli già esistenti per evitare di far creare agli utenti sviluppatori strutture già esistenti o simili. Interfaccia Oltre alla classica casella di testo dovrebbe dare la possibilità di aggiungere altri servizi, in modo da facilitare il lavoro del programmatore e di controllare i dati da immettere. 128 Conclusioni finali Proprietà Prezzo Tabella 3: Descrizione Gratuito, utilizzando ricavi dalle pubblicità. caratteristiche di un servizio di custom search ideale dedotte dall'analisi dei servizi offerti da Yahoo e Google. 4.3 Sviluppi futuri Anche per questo aspetto divideremo le considerazioni in modo da approfondire gli sviluppi futuri sia nella parte teorica, sia in quella sperimentale. Per quanto riguarda lo studio effettuato sulle nuove tecnologie per il Web come i servizi per effettuare custom search o per attribuire significati semantici alle informazioni contenute nelle pagine Web si potrebbero avere i seguenti sviluppi: • creazione di un nuovo tipo di microformat personalizzato. Per implementare questa nuova struttura bisognerà innanzitutto analizzare i dati che si vogliono inserire e successivamente valutare se è proprio necessaria la sua creazione o se le informazioni che essa conterrà possono essere distribuite tra i microformat standardizzati già presenti. Ci rifaremo all'esempio pratico relativo al portale per le aziende del settore del risparmio energetico trattato in questo documento, per effettuare degli esempi concreti di dati che si potrebbero inserire in un nuovo microformat. Supponiamo di voler immettere delle informazioni che non sono contenute né in Goodrelations né nella Vcard oppure di voler creare un nuovo microformat per semplificarne la comprensione alle aziende del portale che lo devono implementare. In questi casi bisognerà impelementare delle pagine contenenti la nuova struttura e 129 Conclusioni finali successivamente configurare un'applicazione SearchMonkey apposita per poter estrarre le informazioni contenute nel microformat personalizzato. Se si riuscisse a creare una nuova struttura in grado di contenere tutte le informazioni rilevanti per un'azienda e i suoi prodotti, si potrebbe anche eliminare dal database la parte relativa a queste informazioni e ricavare i dati solo dai profili creati al momento della registrazione delle aziende attraverso un'applicazione rest di SearchMonkey. • Creazione di una maschera per la visualizzazione dei microformat utilizzati. Anche se sarà visibile solo nella pagina personale degli utenti registrati al dominio di Yahoo, questo sviluppo permetterà di aumentare la visibilità dei dati contenuti nel portale, sia che si utilizzino i microformat standard sia che si implementino delle nuove strutture. Ovviamente per ottenere un maggior beneficio da questa azione, bisognerebbe anche pensare ad un sistema per pubblicizzare l'uso di questa maschera qualora si effettuassero delle ricerche legate a prodotti aziendali simili a quelli inerenti al settore del risparmio energetico. Per quanto riguarda la parte sperimentale della tesi, come sviluppi futuri del portale energyCHIT si potrebbero implementare i seguenti servizi o apportare le seguenti migliorie: • maggiori informazioni richieste alle aziende. Per poter effettuare questa operazione bisognerà espandere i microformat utilizzati attualmente nei profili aziendali oppure includerne di nuovi. Innanzitutto si potrebbero inserire maggiori informazioni relative ai prodotti, memorizzando quelle riguardanti alcune caratteristiche (come ad esempio il peso, la larghezza, il colore, la provenienza, l'altezza, la densità specifica) oppure il numero di componenti con cui è formato. Per immettere i dati relativi a caratteristiche 130 Conclusioni finali quantitative si dovrà utilizzare il tag gr:quantitativeProductOrServiceProperty che a sua volta conterrà il sottocampo gr:QuantitativeValue. In questo modo sarà possibile settare dei range per i parametri desiderati sfruttando i valori contenuti da gr:hasMinValue e gr:hasMaxValue. Un esempio pratico di un'implementazione di questa struttura potrebbe essere la durata della batteria di un prodotto in anni solari. Per inserire delle caratteristiche qualitative invece bisognerà utilizzare il tag gr:qualitativeProductOrServiceProperty contenente il sottocampo gr:QualitativeValue. In questo modo sarà possibile immettere nel microformat, ad esempio il dato relativo al colore di un determinato apparecchio oppure al tipo di legno utilizzato per la realizzazione di un serramento. Altri parametri che si potranno inserire nei microformat utilizzati riguardano gli orari d'apertura dei negozi o delle aziende. Per consentire l'immissione di questi parametri si può utilizzare il campo gr:OpeningHoursSpecification specificato attraverso gli attributi contenuti in gr:hasOpeningHoursDayOfWeek che può specificare gli orari d'apertura relativi a tutti i giorni della settimana. Infine si potrebbe inserire la durata della garanzia offerta relativa al prodotto selezionato gr:durationOfWarrantyInMonths. Con all'interno queste del informazioni tag si potranno descrivere minuziosamente i prodotti inseriti nel portale e le aziende registrate. Altri dati non avrebbero alcun senso nel contesto di studio esaminato. • Implementazione di un sistema di feedback. Attraverso questo servizio si potranno implementare delle risorse rivolte agli utenti che desiderano acquistare dei prodotti presenti sul portale. Infatti usufruendo del microformat hReview sarà possibile inserire una valutazione e dei commenti relativi ai servizi offerti dalle imprese nei 131 Conclusioni finali profili aziendali. Successivamente sarà possibile inserire dei controlli di qualità sui prodotti in modo da garantire un servizio migliore agli utenti che ricercano i prodotti relativi al risparmio energetico. Infine bisognerà implementare un sistema di controllo sui commenti inseriti per evitarne un utilizzo inopportuno. Considerando che questa risorsa dovrà essere controllata dal gestore del portale, occorrerà predisporre un servizio opportuno, accessibile solamente attraverso l'uso di un account d'amministratore. • Differenziare i prodotti in base alla categoria a cui sono assegnati. In questo modo si potrebbero associare informazioni diverse in base al campo a cui si riferisce il prodotto. Ad esempio si potrebbero salvare i dati relativi alle dimensioni o al peso per quanto riguarda i prodotti materiali e alcune informazioni legate alla qualità per i servizi aziendali offerti. Si potranno implementare anche delle visualizzazioni differenti in base agli oggetti ricercati dall'utente in modo da diversificare i prodotti dai servizi e dalle aziende. • Implementazione del servizio multilingua. In questo modo si potranno utilizzare tutti i servizi nelle tre lingue conosciute dal bacino d'utenza del portale: italiano, tedesco ed inglese. Per effettuare delle ricerche in base al paese di residenza dell'utente, è possibile settare dei particolari filtri relativi alla lingua nelle quali sono scritte le pagine dei risultati. Questo servizio è configurabile attraverso dei parametri inviati con la richiesta http per BOSS e scegliendo la lingua desiderata sul pannello di controllo on-line per CSE. • Utilizzare un microformat completo per eliminare parti del database. Per poter applicare questa modifica in base ai dati che si desiderano salvare, si potrebbe utilizzare una struttura semantica 132 Conclusioni finali personalizzata oppure espandere quelle già contenute nei profili aziendali. Successivamente andrà implementata un'applicazione SearchMonkey per permettere l'estrazione dei dati contenuti nei microformat ogni volta che ce ne sarà bisogno. Infine bisognerà creare un profilo aziendale per tutte le imprese registrate anche se sono già in possesso di un proprio sito Web . • Mostrare più servizi per ogni risultato ritornato da boss. Utilizzando le view di SearchMonkey sarà possibile implementare diversi servizi aggiuntivi legati ai dati ritornati dai microformat. Alcuni esempi di servizi potrebbero essere quelli già implementati nella risorsa che permette di effettuare delle ricerche tra i prodotti aziendali. Altri esempi potrebbero essere i seguenti: un servizio di conversione di valuta per gli utenti che non utilizzano l'euro, la possibilità di inserire un commento o una valutazione relativi all'azienda o ai suoi prodotti oppure un collegamento alla pagina del fornitore in modo da poter chiedere ulteriori informazioni riguardanti la spedizione o le modalità di consegna. • Implementare una ricerca testuale interna. Questo servizio dovrà consentire agli utenti di ricercare tra le informazioni contenute nel portale tutti i risultati legati ad una query testuale. In questo modo sarà possibile trovare un'azienda o un particolare prodotto semplicemente digitandone il nome o una caratteristica particolare. Questa risorsa cercherà all'interno del database, tra i parametri univoci, quello relativo all'oggetto desiderato e ne mostrerà i dettagli. Si potrebbe anche implementare il servizio in modo che ricerchi anche tra le caratteristiche non univoche degli elementi salvati all'interno della base di dati presentando all'utente diversi risultati simili. 133 Conclusioni finali • Implementazione di un forum per scambi di opinioni. Questa risorsa permetterà agli utenti registrati di scambiarsi opinioni ed esperienze lavorative volte a migliorare le tecnologie esistenti. Inoltre in questo modo le aziende e i clienti potranno comunicare tra di loro per effettuare, ad esempio, alcune richieste di informazioni legate ai prodotti offerti nel portale. • Implementazione di funzioni per news. Il servizio consiste in un’area pubblica contenente news di settore, informazioni di interesse generale oppure notizie di cronaca. Questi contenuti potranno anche essere reperiti dal Web tramite l'utilizzo del meccanismo dei RSS pubblici. Queste notifiche su sottoscrizione potranno essere integrate nel portale in modo da consentirne un aggiornamento automatico oppure supervisionato dall'utente gestore. • Sistema di monitoraggio degli accessi e file log. Questo servizio consentirà al gestore di monitorare i clienti che accedono al portale in modo da consentirgli delle elaborazioni statistiche periodiche. Attraverso il file di log invece, l'amministratore potrà tenere sotto controllo lo stato dell'applicazione evitandone o correggendone gli errori. • Creazione di un'area riservata. In questa zona ad accesso controllato sarà possibile scambiarsi e condividere file, informazioni e documenti. Si dovranno implementare delle misure di sicurezza adatte al contesto, poiché in questa area transiteranno informazioni riservate o confidenziali. Un aumento della diffusione dell'utilizzo dei microformat all'interno delle pagine Web aziendali consentirebbe di estendere l'uso delle funzioni integrate in Boss attraverso le view di SearchMonkey anche alle imprese 134 Conclusioni finali che non possiedono un profilo interno. Attualmente, per consentire questa opportunità si è dovuto implementare un database per memorizzare le informazioni aziendali rilevanti, dal quale attingere i dati tutte le volte che se ne presenti la necessità. 4.4 Lavoro svolto e ringraziamenti Il lavoro che porta a questo elaborato è iniziato la prima settimana di aprile a seguito della segnalazione da parte del Professor Fraternali del progetto EnergyCHIT. Successivamente è avvenuto l'incontro preliminare con i professori Marco Brambilla, Massimo Tisi, Alessandro Bozzon ed Emanuele Della Valle per discutere le caratteristiche principali del progetto e per la scelta delle tecnologie Web utilizzabili per l'implementazione del servizio in modo da soddisfare tutti i requisiti proposti. Da allora fino alla conclusione della tesi di laurea si sono tenuti periodici appuntamenti per verificare il lavoro svolto e per chiarire le direttive del suo sviluppo. In questo modo il ripianificato alla luce lavoro delle ha potuto nuove essere conoscenze, aggiornato delle e tecnologie utilizzate, dai problemi implementativi emersi. La fase attuativa si è composta di molteplici tappe definite e concordate dinamicamente nel corso degli incontri precedentemente descritti. In seguito proporremo un elenco delle attività svolte: • analisi preliminare di Google cse: studio delle funzionalità di base ed avanzate del motore di ricerca personalizzato, studio della personalizzazione attraverso l'interfaccia web ed analisi delle principali personalizzazioni. Di queste fanno parte e hanno costituito argomento di studio, i perfezionamenti applicabili tramite il concetto 135 Conclusioni finali di label, l'esclusione o la promozione di particolari domini e il layout della pagina dei risultati di ricerca; • analisi preliminare di Yahoo Boss: studio delle modalità per accedere alle API di BOSS (appid), studio della composizione dell'url per effettuare la chiamata HTTP al servizio REST e dei principali parametri. Particolare attenzione è stata dedicata a quelli più importanti (in relazione al progetto realizzato successivamente) come “Sites”, usato per la composizione dei domini di ricerca, “format” per il tipo di risposta ritornata dal servizio, e “view” per la specifica di formati aggiuntivi ritornati da BOSS come i keyterms, i searchmonkey_feed ed i searchmonkey_rdf. Si è poi passati allo studio della risposta XML, agli attributi generali (come il numero di risultati e l'indice di partenza per gestire successivamente la paginazione) e agli attributi caratteristici di ogni risultato; • implementazione base dei due servizi: per avere un'idea preliminare delle potenzialità dei custom search engine messi a disposizione da Yahoo e Google si è realizzata un'interfaccia web che usufruisce dei due servizi. Sulla base delle conoscenze già acquisite in altri ambiti si è deciso di utilizzare per la prova la tecnologia ASP.NET di Microsoft e c# come linguaggio di programmazione. Questo per rimandare, almeno in fase preliminare, la scelta preliminare di una tecnologia a scapito di altre. L'implementazione di Google CSE è molto semplice, essendo il servizio quasi esclusivamente personalizzabile dall'interfaccia web apposita. Alla fine della personalizzazione viene generato un codice html da immettere nella pagina dedicata alla casella di ricerca e uno per la visualizzazione dei risultati offerti dal motore di Google, quindi la procedura di creazione e utilizzo del servizio è rapida. Molto più lunga e laboriosa è stata la realizzazione dell'interfaccia di Yahoo BOSS: si è dovuto procedere programmaticamente alla costruzione della 136 Conclusioni finali schermata utente e delle opzioni di ricerca (casella di testo, opzioni di lingua, tipi di file, domini, ecc..), e successivamente si è passati alla composizione dell'url di chiamata HTTP verso i server Yahoo in base ai parametri scelti dall'utilizzatore per la ricerca per poi sviluppare un parser personalizzato per interpretare al meglio la risposta ritornata da BOSS. • implementazione delle funzioni avanzate: una volta generata la base che sfrutta i due servizi, ci si è concentrati sugli aspetti avanzati dei due motori di ricerca personalizzata. Per Google CSE si è approfondito il sistema delle annotazioni tramite feed xml che permette di aggiornare dinamicamente la lista contenente i domini di ricerca e i loro perfezionamenti attraverso etichette (label). Si sono eseguite prove di aggiornamento dinamico del feed e si è verificato che la latenza di aggiornamento del file delle annotazioni da parte di Google fosse accettabile tramite la console per gli sviluppatori messa appositamente a disposizione. Per quanto riguarda invece Yahoo BOSS si è cercato di capirne in maniera più precisa i limiti quantitativi e qualitativi del servizio. Si sono effettuate quindi delle prove tecniche per conoscere l'effettivo numero massimo di risultati ritornati per ogni pagina, quello totale e la lunghezza massima dell'url di chiamata del servizio. Per gli aspetti qualitativi si è studiato l'effettivo valore delle parole chiave del risultato (keyterms), il loro possibile impiego e la diffusione dei formati searchmonkey_feed e searchmonkey_rdf in modo da ottenere risultati contenenti dati semantici. • studio di Yahoo searchmonkey: si è capito come funziona questo particolare servizio, le sue principali funzionalità ed i suoi limiti. Si sono studiati tutti i particolari tipi di microformat e dati semantici che indicizza, facendo degli esperimenti successivi con gli strumenti di validazione. 137 Conclusioni finali • progetto preliminare di EnergyCHIT: dapprima si sono presi in considerazione i tipi di utenti del portale (clienti, aziende, gestori) e le loro esigenze principali in modo da comporre uno use-case che permettesse di tracciare le linee guida generali valide per tutta la durata del progetto. Una volta messe in evidenza le funzionalità obbligatorie offerte dal portale e la loro disposizione, è incominciato il lavoro di costruzione della struttura e grafica del sito web con html, css, e immagini. Ultimato lo scheletro principale ci si è dedicati all'apprendimento del linguaggio di programmazione server-side scelto (PHP 5), a quello client-side (Javascript) e all'implementazione del database MYSQL attraverso la piattaforma di management di database phpmyadmin. Successivamente è iniziata la fase di programmazione vera e propria del portale che ha portato alla prima versione senza microformat di Goodrelations. • implementazione definitiva del portale: partendo dalla valida base costituita dalla versione preliminare del portale, si sono adottati i microformat GR per descrivere le aziende e i loro prodotti. È stato necessario modificare il database per permettere ai membri del network di dividere i prodotti in categorie e sotto categorie. Sono state modificate quindi: l'area di registrazione (per dare la possibilità di aggiungere dei prodotti) e la parte relativa al generatore dei microformat e dei profili delle aziende senza sito web. Sono state poi implementate la funzionalità di visualizzazione interna dei prodotti mediante filtri e la ricerca tramite Yahoo BOSS nei domini del network. Il lavoro precedentemente descritto si potrebbe suddividere idealmente in sole 3 fasi che, se pur collegate tra di loro, possono essere analizzate separatamente: 138 Conclusioni finali • analisi delle tecnologie. Questa fase ha occupato i primi tre mesi dell'intero arco di tempo impiegato a concludere la nostra tesi. In questo periodo si sono dovuti approfondire: le conoscenze relative alle tecnologie Web da utilizzare attraverso le documentazioni ufficiali, alcuni forum dedicati, le implementazioni dimostrative disponibili sul Web e uno scambio di opinioni con i professori impegnati nel progetto. • Sperimentazione. L'implementazione delle tecnologie precedentemente studiate è avvenuta in modo graduale nell'arco dei successivi due mesi, nei quali si sono rafforzate ulteriormente le nostre conoscenze e abbiamo acquisito piena padronanza dei servizi offerti da Yahoo e Google. Nel frattempo abbiamo anche imparato ad utilizzare php che al giorno d'oggi è un linguaggio di fondamentale importanza per chi implementa nuove applicazioni per la creazione o la gestione di siti, portali o semplici pagine Web. • Conclusioni. In questa parte è compresa sia la fase di effettiva stesura della tesi sia l'ulteriore analisi delle tecnologie utilizzate per dedurne i relativi pregi e difetti. In questo modo si è potuto ottenere un servizio ideale avente caratteristiche scelte da entrambi i servizi di Yahoo e Google. Per questi motivi ci siamo occupati di questa fase solo nell'ultimo mese di lavoro, anche se la stesura della tesi era già cominciata in precedenza. Ringraziamo i professori Marco Brambilla, Massimo Tisi, Emanuele Della Valle, Piero Fraternali e Alessandro Bozzon per il supporto che ci hanno offerto, per i consigli in merito alle problematiche che con l'avanzare del nostro lavoro sono emerse e per averci messo a disposizione la loro solida esperienza nel settore delle tecnologie informatiche per il Web. Inoltre siamo loro molto grati anche per l'esempio di professionalità e di correttezza che ci hanno dimostrato in questi sei mesi di lavoro. 139 Conclusioni finali Un ringraziamento particolare va ai nostri genitori, Maria Grazia e Donato, e, Stefania e Ivano, (rispettivamente di Stefano e di Simone) per il supporto morale ed economico che ci hanno offerto in questi anni di studi permettendoci di laurearci presso il prestigioso Politecnico di Milano. Infine ringraziamo tutte le persone che ci sono state vicine e ci hanno incoraggiato in questo percorso. 4.5 Conclusioni Con lo studio iniziale si sono evidenziati i principali pregi e difetti delle possibili soluzioni adottabili nel campo della ricerca, verticale, mirata su un particolare settore o a un range di siti web. Si è deciso poi di implementare le due soluzioni che maggiormente si adattano al contesto del progetto energyCHIT (portale di aziende nel settore del risparmio energetico) , ovvero Google Cse e Yahoo Boss. Come prova preliminare si è deciso di utilizzare la tecnologia ASP.NET con il linguaggio di programmazione c# di Microsoft per realizzare un sito web in cui sono state implementate le caratteristiche principali dei custom search engine. Da questa prova sono emersi chiaramente sia la diversa filosofia, sia il differente approccio con cui le due società fornitrici di questi servizi hanno affrontato il problema relativo alla ricerca personalizzata: Google cse • propone un'interfaccia web che permette la creazione, la configurazione e la personalizzazione in pochi e semplici passi di un motore di ricerca custom che fa della velocità di risposta il suo punto di forza; 140 Conclusioni finali • visualizza in html: non permette di gestire programmaticamente i risultati e la loro visualizzazione ma si prende carico di tutto il layout della pagina, mentre all'utente è lasciata ben poca libertà. La presentazione è in formato html in classico stile Google, assolutamente non modificabile se non attraverso la scelta del colore del carattere relativo alla descrizione e dei link di collegamento alle pagine dei risultati proposti; • è privo di microformat: non indicizza né restituisce alcun tipo di microformat, anche se questi possono essere molto utili per creare delle nuove web application in grado di concedere servizi aggiuntivi agli utenti che effettuano la ricerca. Per questo il servizio di Google può essere visto come semplice strumento di ricerca, limitata ad un numero chiuso di domini. Possibili applicazioni possono essere ad esempio la ricerca personalizzata all'interno di un particolare sito web (semplificando enormemente il lavoro di un webmaster che non deve creare appositamente una funzione che svolga questo compito) oppure un metodo per ricercare contenuti attraverso categorie ben definite e statiche (sfruttando il concetto di “label” associate a siti web, personalizzabili tramite l'interfaccia web di Cse) come implementato nella versione definitiva del portale dedicato alle aziende del settore delle energie rinnovabili. Altro approccio è invece quello di Yahoo Boss : • propone un servizio “rest”, quindi nessun dato è memorizzato sui server di Yahoo (contrariamente a Google), ma si effettua una richiesta http chiamando un url con i parametri di ricerca completamente personalizzabili in base alle esigenze; • effettua la risposta tramite XML o JSON, cioè su due metodi per la rappresentazione dei dati molto utilizzati e conosciuti. Le 141 Conclusioni finali informazioni possono quindi essere gestite come il programmatore desidera eseguendo il parse del file ritornato dal servizio; • restituisce i microformat standard di Yahoo searchmonkey, che possono essere anch'essi classificati e utilizzati da parte del developer a suo piacimento; Con queste libertà si possono sfruttare al massimo le possibilità di personalizzazione della presentazione grafica e dei dati ritornati dal servizio. É possibile inoltre, indicandolo opportunamente nella richiesta http, utilizzare i microformat che Yahoo SearchMonkey indicizza per creare servizi aggiuntivi che sfruttano i dati semantici presenti in una pagina web al contrario delle classiche web application che per cercare di ottenere lo stesso risultato si devono affidare ad un database precedentemente costituito. Questo è sicuramente il punto di forza di Yahoo Boss e Yahoo SearchMonkey. Terminate le considerazioni sulle caratteristiche dei motori di ricerca personalizzati si è potuti passare allo studio di un caso specifico, ovvero la realizzazione di un portale dedicato al settore del risparmio energetico e delle energie alternative. Per garantire la massima fruibilità dei contenuti già generati dalle stesse aziende si sono effettuate scelte congrue che hanno portato alla definizione delle funzionalità definitive : • suddivisione delle aziende in appartenenti o non appartenenti al network di entità coinvolte nel progetto. Per le prime si permette la registrazione al portale (tramite approvazione di un gestore generale) e la fruizione dei servizi offerti, mentre per le seconde esiste la possibilità di essere incluse nel motore di ricerca personalizzato tramite inserimento del dominio web aziendale; 142 Conclusioni finali • creazione di profili delle imprese registrate nel network che non possiedono un proprio sito Web, all'interno dei quali sono presenti tutti i dati relativi all'azienda. Inoltre tali profili sono composti da microformat riconosciuti nativamente da Yahoo SearchMonkey, quindi a fronte di un'eventuale ricerca di Yahoo Boss comprendente il dominio della pagina, si ha la restituzione dei dati semantici comprendenti anche i dati relativi ai prodotti aziendali inseriti al momento della registrazione; • creazione dei microformat per tutte le aziende appartenenti al network, in modo che possano arricchire di dati semantici il proprio sito web per sicuri benefici futuri. Il tipo di microformat scelto per rappresentare i dati aziendali è Goodrelations, lo standard “local” per descrivere l'azienda (nome, indirizzo, contatti, ecc..) e “product” per descrivere ogni prodotto/servizio che l'azienda offre (con descrizione, immagini, prezzo, categoria e sotto settore d'appartenenza, ecc...); • ricerca dei servizi attraverso la consultazione del database interno. La ricerca avviene specificando delle caratteristiche del servizio ( prezzo, settore, città o stato di residenza dell'azienda produttrice, ecc... ) ed i criteri con cui si vogliono ordinare i risultati. Questi filtri vengono poi applicati ai prodotti/servizi presenti nella base di dati e vengono mostrati solo quelli che rispondono ai requisiti specificati dall'utente; • motore di ricerca verticale basato su tecnologia Yahoo Boss che consente la ricerca tra i soli contenuti presenti sul portale energyCHIT e su tutti i siti web delle aziende che fanno parte del network. I risultati sono visualizzati in maniera complessa (non il classico titolo, descrizione e url) con informazioni aggiuntive quali i termini chiave (keyterms) associati all'url di destinazione e utilizzati 143 Conclusioni finali per affinare la ricerca iniziale dell'utente fruitore del servizio. L'applicazione web è in grado di sfruttare i dati semantici ritornati da Yahoo Boss sotto forma di searchmonkey_feed o searchmonkey_rdf per visualizzare i prodotti e relative caratteristiche contenuti nelle varie pagine web prima che l'utente vi acceda direttamente. I microformat di Goodrelations sono presenti nei profili salvati delle aziende che hanno dichiarato di non essere in possesso di un proprio sito web così come nelle pagine delle aziende che hanno utilizzato il generatore di microformat del portale. L'applicazione web esegue la chiamata a Yahoo Boss specificando proprio questi domini di ricerca e riuscendo così a sfruttare fino in fondo le potenzialità dei dati semantici presenti. La web application è anche in grado di fornire in anteprima la Vcard dell'azienda associata ad un particolare risultato, ricercando l'url nel database interno; • lista delle aziende del contesto energyCHIT, nella quale compaiono tutte le aziende del network. È possibile filtrare il contenuto per settore ( energie alternative, riscaldamento, serramenti, ecc.. ), visualizzare il profilo interno al sito nel caso di azienda sprovvista di website oppure navigare nel sito aziendale, o ancora accedere ai dettagli forniti dall'azienda ( dati aziendali e prodotti/servizi offerti); • gestione portale: il gestore globale del sito ha il compito di convalidare la registrazione delle aziende che chiedono di registrarsi al portale o modificano i propri dati. Solo dopo l'approvazione da parte dell'amministratore l'azienda viene inserita nella lista interna del portale e resa disponibile. Il gestore inserisce anche collegamenti esterni al network di energyCHIT che faranno comunque parte del dominio del motore di ricerca. Infine l'amministratore gestisce i settori e i sotto settori d'attinenza con il 144 Conclusioni finali contesto del portale creando una sorta di tassonomia a due livelli nella quale un'impresa potrà inserire i propri prodotti o servizi offerti. Per la gestione del network aziendale (registrazione, modifica dei dati, creazione dei profili, ecc..), per il generatore di microformat e la visualizzazione dei dati provenienti da fonti xml come quelli di Yahoo Boss, si è reso necessario adottare tecnologie adeguate. È stato scelto il linguaggio di scripting lato server PHP che consente una facile interazione con tutti gli strumenti necessari per creare il portale: gestione delle sessioni, creazione di contenuti dinamici, interazione facilitata con il motore di database MYSQL, lettura facilitata di file XML (con il parser simple_xml incluso in PHP5). Dall'analisi dei principali aspetti della ricerca personalizzata e della realizzazione di un reale progetto si è acquisita la consapevolezza di quanto questo settore sia destinato ad evolversi rapidamente. In particolare si dovrà rivolgere l'attenzione al ruolo fondamentale che avranno in futuro i dati semantici. Tramite questo paradigma avremo motori di ricerca sempre più intelligenti ed efficienti in grado di rispondere all'utenza con una precisione non paragonabile a quella attuale. Nel caso specifico della ricerca a domini limitati, incrociando i dati semantici raccolti attraverso la ricerca con applicazioni sviluppate in proprio o con API di altre web apps come quelle di Google, facebook, ecc.. si potranno creare web application che offrono servizi di qualità superiore. 145 Bibliografia Google CSE Home page http://www.google.com/coop/cse/ Gestione http://www.google.com/coop/manage/cse/ documentazio http://code.google.com/intl/en/apis/customsearch/docs/start ne .html Gestione xml http://code.google.com/intl/en/apis/customsearch/docs/ann otations.html#xml_annos Yahoo search Home page http://developer.yahoo.com/search/ Tipi di risultati http://developer.search.yahoo.com/start Yahoo Boss 146 Bibliografia introduzione http://php.html.it/articoli/leggi/3014/yahoo-bossintroduzione-al-web-service/ Esempi Boss http://php.html.it/articoli/leggi/3025/yahoo-boss-esempi-diricerca-sul-web/ Home page http://developer.yahoo.com/search/boss/ Guida PDF http://developer.yahoo.com/search/boss/boss_guide/boss_ guide.pdf documentazio http://developer.yahoo.com/search/boss/boss_guide/ ne Chiamata http http://developer.yahoo.com/search/boss/boss_guide/overvi ew.html Parametri http://developer.yahoo.com/search/boss/boss_guide/Web_ chiamata http Search.html#optional_args_web Risposta xml http://developer.yahoo.com/search/boss/boss_guide/Web_ Search.html#d3e196 Attributi risposta http://developer.yahoo.com/search/boss/boss_guide/ch02s 02.html Spelling suggestions http://developer.yahoo.com/search/boss/boss_guide/Spellin g_Suggest.html Fonti url esempi http://musicmoz.org/ Microformat Web semantico http://www.w3.org/2001/sw/SW-FAQ Microformat http://www.w3.org/2001/sw/SW-FAQ#relmf Rdf http://www.w3.org/2001/sw/SW-FAQ#whrdf RFC rdf http://www.w3.org/TR/rdfa-syntax/ 147 Bibliografia hcard http://microformats.org/wiki/hcard Yahoo SM searchmonkey introduzione http://semanticweb30.wordpress.com/2009/01/27/yahoosearchmonkey/ documentazio http://developer.yahoo.com/searchmonkey/smguide/index.h ne tml application http://developer.yahoo.com/searchmonkey/smguide/quickst art.html SM rdf http://developer.yahoo.com/searchmonkey/smguide/mar kup.html SM microformat http://developer.yahoo.com/searchmonkey/smguide/compa re_microformats.html SM data rss http://developer.yahoo.com/searchmonkey/smguide/unders tand_datarss.html SM vocabulary http://developer.yahoo.com/searchmonkey/smguide/profile _vocab.html#profile-overview SM Vcard http://developer.yahoo.com/searchmonkey/smguide/vcarddetails.html SM GR http://developer.yahoo.com/searchmonkey/smguide/grdetails.html GoodRelations Home page http://www.heppnetz.de/projects/goodrelations/ Introduzione http://www.heppnetz.de/projects/goodrelations/primer/ 148 Bibliografia GR per SM http://www.ebusinessunibw.org/wiki/GoodRelations_and_Yahoo_SearchMonkey Validatore prodotti GR http://developer.search.yahoo.com/help/objects/product Validatore aziende GR http://developer.search.yahoo.com/help/objects/local Esempio prodotto http://www.heppnetz.de/searchmonkey/product.html Esempio azienda http://www.heppnetz.de/searchmonkey/company.html ontologia http://www.heppnetz.de/ontologies/goodrelations/v1 Costruzione website Php intro http://www.w3schools.com/php/default.asp Sessioni php http://www.w3schools.com/php/php_sessions.asp Database mysql http://www.w3schools.com/php/php_mysql_connect.asp Xml dom http://www.w3schools.com/php/php_xml_dom.asp css http://www.w3schools.com/css/default.asp Css how to http://www.w3schools.com/css/css_howto.asp esempi http://www.w3schools.com/css/css_examples.asp Simple xml http://www.w3schools.com/php/php_xml_simplexml.asp javascript http://www.w3schools.com/js/default.asp 149 Bibliografia validazione http://www.w3schools.com/js/js_form_validation.asp DOM http://www.w3schools.com/js/js_obj_htmldom.asp ajax http://www.w3schools.com/ajax/default.asp Http request http://www.w3schools.com/ajax/ajax_xmlhttprequest.asp Response xml http://www.w3schools.com/ajax/ajax_responsexml.asp Hosting altervista http://it.altervista.org/ Gestione file sito web http://s54.altervista.org/lf.pl? sid=f5366fd5ec211a65f548d16fa1a86c9f Gestione db http://www54.altervista.org/phpmyadmin/index.php Dati aziende Pagine gialle http://www.paginegialle.it/ Settore risparmio energetico http://www.paginegialle.it/naviga/0032672005/energia_solare_ed_energie_alternative_impianti_e_comp onenti.html Pagine gialle ch http://yellow.local.ch/ http://www.ratti.com/ http://www.energy-co.it http://www.elettromeccanicagalli.it/ http://www.casariweb.com/ http://www.doxcom.com/ http://www.enersolutions.ch/ 150 Bibliografia http://www.tech-insta.ch/ita/ http://www.interactiongroup.ch http://www.riello.it/ http://www.aermec.it/ http://www.casa-azienda.it/contatti.php http://www.powerpress.it/italiano/azienda.html http://www.primavera84.it/ http://www.torsellini.com/it/index.php Altri supporti UML ingegneria del software – creatività e metodo 151