venerdì 30 aprile 2010

I Sistemi di Information Retrieval e i Search Engines nei progetti di knowledge management

Un progetto focalizzato sulla gestione della conoscenza aziendale non può prescindere dall'inserimento di sistemi per la ricerca delle informazioni, anzi questi ne costituiscono un tassello fondamentale. Vengono implementati sistemi per ricerche sulle informazioni interne ad una organizzazione, da integrare con sistemi per la ricerca di informazioni esterne, secondo un criterio testuale o semantico.

In linea generale, l'Information Retrieval è l'insieme delle tecniche utilizzate per il recupero mirato dell’informazione in formato elettronico. Per "informazione" si intendono tutti i documenti, i metadati, i file presenti all'interno di banche dati o nel world wide web. L'IR è un campo interdisciplinare che nasce dall'incrocio di discipline diverse: coinvolge la psicologia cognitiva, l'architettura informativa, la filosofia, il design, la linguistica, la semiotica, la scienza dell'informazione e l'informatica. Per recuperare l'informazione, i sistemi IR usano i linguaggi di interrogazione basati su comandi testuali.

Due concetti sono di fondamentale importanza:
1. le query o "interrogazioni" che sono stringhe di parole-chiavi rappresentanti l'informazione richiesta e vengono digitate dall'utente in un sistema IR (per esempio un motore di ricerca);
2. l’oggetto che è un'entità che mantiene o racchiude informazioni in una banca dati (un documento di testo, per esempio, è un oggetto di dati).

Una tipica ricerca di IR ha come input un comando dell'utente. Poi la sua query viene messa in relazione con gli oggetti presenti nella banca dati. In risposta, il sistema fornisce un insieme di record che soddisfano le condizioni richieste. Spesso i documenti stessi non sono mantenuti o immagazzinati direttamente nel sistema IR, ma vengono rappresentati da loro surrogati. I motori di ricerca del Web (ad es. Google) sono le applicazioni più note di Information Retrieval.

Un motore di ricerca o search engine è un sistema automatico che analizza un insieme di dati, spesso da lui stesso raccolti, e restituisce un indice dei contenuti disponibili classificandoli in base a formule matematiche che ne indichino il grado di rilevanza data una determinata chiave di ricerca.

Il lavoro dei motori di ricerca si divide principalmente in tre fasi:

- Analisi del campo d'azione. Per analizzare il web i motori di ricerca utilizzano dei programmi detti crawler o spider o robot, che si occupano di visitare automaticamente gli URI* contenuti nel database e seguire i successivi URI che trovano all'interno dei documenti analizzati, inserendo di volta in volta nel database tutte le informazioni "sensibili" della pagina: il contenuto testuale, varie informazioni su di essa come la data di ultimo aggiornamento e altre informazioni;

- Catalogazione del materiale ottenuto. Dopo l'analisi delle pagine, a seconda di criteri che variano da motore a motore, alcune di esse vengono inserite nel database e nell'indice del motore di ricerca. La parte testuale archiviata durante la fase di analisi verrà in seguito analizzata per fornire le risposte alle ricerche degli utenti. Molti motori di ricerca sul web rendono anche disponibile una copia dei dati testuali di ogni pagina archiviata per quando la risorsa originale sia irraggiungibile, funzione è denominata “Copia cache”.

- Risposta alle richieste dell'utente. Rispondere alle richieste degli utenti implica la necessità di elencare i siti (o i db in caso di Intranet) in ordine di rilevanza rispetto alla richiesta ricevuta. Per stabilire la rilevanza di un sito vengono cercate nel database quei documenti che contengono la parola chiave inserita dall'utente, dopodiché ogni motore di ricerca sfrutta propri algoritmi per classificare le pagine, controllando, per esempio, quante volte le parole chiave vengono ripetute, quanti link riceve quel documento, in quali punti della pagine sono poste le parole chiave, quanti siti del database contengono link verso quella pagina o quante volte un utente ha visitato quel sito dopo una ricerca.

Per le ricerche sul web, i motori di ricerca forniscono anche risultati sponsorizzati, ovvero mostrano in maggiore evidenza nelle SERP (Search Engine Result Pages, Pagine dei risultati dei motori di ricerca) siti web di aziende che pagano per risultare tra i primi risultati quando si cercano termini (keywords o parole chiave) che sono in relazione all'ambito di competenza dell'azienda stessa. I risultati sponsorizzati dei motori possono apparire anche sui siti che partecipano al loro programma di affiliazione. In particolar modo, Google permette di far apparire nelle proprie SERP, chiaramente distinti dai risultati "naturali", risultati a pagamento comprati con il programma AdWords. In aggiunta a questo offre anche un servizio di sponsorizzazione che si rivolge a tutti i siti che hanno determinati requisiti, chiamato AdSense. Google AdSense (spesso abbreviato con Google AS) usa le capacità del motore di ricerca di interpretare il tema della pagina in cui è posizionato l'apposito codice per fornire annunci a tema.

La possibilità di raffinazione della ricerca varia da motore a motore, ma la maggior parte permette di utilizzare operatori booleani. Su Google e sui motori più moderni è possibile raffinare la ricerca a seconda della lingua del documento, delle parole o frasi presenti o assenti, del formato dei file (Microsoft Word, PDF, PostScript, ecc.), ad esempio a seconda della data di ultimo aggiornamento. È anche possibile cercare contenuti presenti in un determinato sito. Su Exalead , un motore di ricerca aziendale, è possibile raffinare la ricerca più intuitivamente, attraverso un sistema di “filtraggio”.

Le più recenti innovazioni nella produzione di algoritmi e di sistemi di Information Retrieval si basano sull'analisi semantica dei termini e sulla conseguente creazione di reti semantiche. Lo stesso Google ha adottato sistemi per la prevenzione dell'errore e la contestualizzazione dei risultati. È lecito prevedere che nel giro di alcuni anni i motori di ricerca baseranno le proprie tecnologie sia sull'analisi quantitativa dei contenuti (le parole in sé), sia soprattutto su quella qualitativa (il senso delle parole).

Alcuni tra i motori di ricerca semantica più conosciuti e diffusi sono:
- Exalead;
- Autonomy;
- Expert System;
- Polyspot;
- Omnifind.

La nuova frontiera dei motori di ricerca è il web 2.0. Adottando questa logica molti motori e directory internazionali puntano a una maggiore partecipazione degli utenti nella creazione dei contenuti dei motori di ricerca, in modo da eliminare qualsiasi ricorso a spider o a link sponsorizzati. Con questa logica gli utenti possono segnalare essi stessi i link e decidono se dare o meno popolarità ai siti segnalati.


*Un Uniform Resource Identifier (URI, acronimo più generico rispetto ad "URL") è una stringa che identifica univocamente una risorsa generica che può essere un indirizzo Web, un documento, un'immagine, un file, un servizio, un indirizzo di posta elettronica, ecc. L'URL è un URI, o più comunemente chiamato indirizzo web. Gli URI rendono disponibili le risorse secondo una varietà di protocolli quali HTTP, FTP, ecc. Un URI può essere classificato come URL o come URN.

- Un URL (Uniform Resource Locator) è un URI che, oltre a identificare una risorsa, fornisce mezzi per agire su o per ottenere una rappresentazione della risorsa descrivendo il suo meccanismo di accesso primario o la sua "ubicazione" ("location") in una rete. Per esempio, l'URL http://www.wikipedia.org/ è un URI che identifica una risorsa (l'home page di Wikipedia) e lascia intendere che una rappresentazione di tale risorsa (il codice HTML della versione corrente di tale home page) è ottenibile via HTTP da un host di rete chiamato www.wikipedia.org.

- Un URN (Uniform Resource Name) è un URI che identifica una risorsa mediante un "nome" in un particolare dominio di nomi ("namespace"). Un URN può essere usato per parlare di una risorsa senza lasciar intendere la sua ubicazione o come ottenerne una rappresentazione. Per esempio l'URN urn: isbn: 0-395-36341-1 è un URI che consente di individuare univocamente un libro mediante il suo nome 0-395-36341-1 nel namespace dei codici ISBN, ma non suggerisce dove e come possiamo ottenere una copia di tale libro.