Xesam
# Xesam

Xesam (eXtEnsible Search And Metadata) è una specifica promossa da Freedesktop.org che punta alla costituzione di un framework unificato per la ricerca desktop: definisce sia l'API di accesso alle informazioni (implementata da parte dei server compatibili) che il formato con cui i client rappresentano le loro richieste più o meno complesse.

## Dettagli

Il concetto di ricerca desktop in ambiente Linux è stato reso popolare da Beagle, e nel tempo il settore si è arricchito di numerose diverse implementazioni di indexers con diverse e non compatibili interfacce per l'interrogazione ed il reperimento dei files. In tale scenario è stato avviato il progetto Xesam.

L'API Xesam è costruita per operare per mezzo di D-Bus, il che permette di isolare server e client e di renderli sostituibili in modo trasparente: in questo modo una applicazione può sfruttare appieno le funzionalità di ricerca in diversi ambienti operativi (ad esempio, sia KDE che GNOME).

Le richieste dal client al server sono formattate secondo un protocollo XML i cui elementi sono descritti nell'apposita ontologia. Due differenti tipologie di formato sono disponibili: il Query Language, che offre una sintassi più complessa per una migliore definizione della ricerca, e lo User Query Language, con un insieme ristretto di parametri ma facilmente scrivibile direttamente dall'utente.

L'interfaccia descritta dall'API è per lo più asincrona, per permettere ai client (soprattutto quelli grafici) di non restare bloccati durante l'esecuzione della ricerca.

