Nella precedente presentazione delle novità di KDE 4 si era accennato all'infrastruttura di ricerca denominata Tenor come la soluzione che permetterà a KDE di integrare le principali funzionalità del desktop e presentarle tramite semplici interfacce di ricerca.
Grazie a Tenor sarà possibile ricercare documenti, archivi, immagini, musica, email e molto altro, aiutati dalla la capacità di stabilire "relazioni contestuali" tra i documenti indicizzati, grazie al contesto di lavoro e ai metadati attribuiti ai documenti, sia automaticamente sia per mano dell'utente.
Alla base di Tenor c'è un software molto giovane ma che mostra tutti i caratteri distintivi di un progetto di successo. Si tratta di Strigi, il motore di indicizzazione che si preoccupa di estrarre dati e stralci di informazioni dai file, e organizzarli in un database pronto ad essere utilizzato da Tenor. Possiamo paragonare Strigi a Google Desktop per Windows e Spotlight per MacOS X, oppure al "rivale" di casa GNOME: Tracker, anch'esso un progetto molto interessante e basato su concetti simili.
La versione attualmente scaricabile dalla pagina del progetto è la 0.3.11, ed è stata rilasciata nel dicembre del 2006. Al momento Strigi è ad uno stadio di sviluppo prematuro e viene costantemente aggiornato in previsione della (non imminente) uscita della quarta edizione dell'ambiente grafico KDE. Per tale motivo non è consigliabile l'uso di Strigi per un ambiente produttivo, ma è comunque possibile sperimentare sul proprio sistema l'incredibile velocità del sistema di indicizzazione, che oltretutto occupa pochissima memoria.
A parte l'uso veramente irrisorio di memoria - i processi occupano la RAM per un totale inferiore ai 5MB - Strigi è già adesso appetibile per alcune caratteristiche che lo rendono il candidato ideale per valorizzare e dare corpo alle aspettative di KDE 4. Leggiamole nella prossima pagina.
L'indicizzazione dei dati è tra le più veloci, se non la più veloce in assoluto, tra quelle riscontrabili in progetti della stessa categoria.Il lavoro di Strigi, inoltre, cerca di non disturbare in alcun modo le altre operazioni in atto sul sistema, questo lo si ottiene concedendo una priorità più bassa al processo del servizio, che quindi interrompe le sue attività se all'utente servono risorse per effettuare altri compiti.
I file indicizzati da Strigi hanno un codice identificativo sha1, che permette da un lato di scovare duplicati, dall'altro di non dover tornare ad indicizzare un file quando lo si sposta o si rinomina. Questo diventa utilissimo nel caso in cui si dovesse rinominare una directory contenente molti documenti. Il backend di Strigi, ossia il vero motore che estrae e salva i dati, lo si può scegliere tra diverse alternative con un sistema che potremmo definire di "plugin". Disponibili per adesso clucene (usato in un versioni modificate anche da altri progetti) e hyperestraier.
Strigi supporta anche filtri per estrarre informazioni dai diversi tipi di file. Anch'essi si avvalgono di un sitema di plugin, per cui le funzionalità di Strigi possono facilmente essere ampliate con semplici filtri opzionali. Si è scelto di mantenere la compatibilità con i plugin di Kat, il predecessore di Strigi, purtroppo mai arrivato in porto e adesso abbandonato.
Un recente studio [Pdf] condotto da Sun Ireland ha paragonato i principali motori di indicizzazione e ricerca attualmente disponibili per GNU/Linux, e ha ampiamente confermato i punti appena espressi e in generale la bontà del progetto. L'unica pecca al momento è la scarsità di risultati che si ottengono confrontando ricerche con Tracker e con Beagle, ma sappiamo che il team di sviluppo sta lavorando per migliorare anche questo aspetto.
A giudicare dalle ultime indiscrezioni sembra che l'intero progetto Tenor, al momento non molto attivo, verrà ridimensionato, e che Strigi prenderà il suo posto come progetto centrale. È presto per descrivere questi cambiamenti con certezza, ma possiamo dare per certo che KDE 4 avrà un sistema di ricerca integrato in grado di competere degnamente con le alternative attualmente esistenti.