Science de l'information

Classification et recherches par facettes avec Drupal

Après la rencontre Drupal, c'est également vendredi dernier que, sans tambour ni trompette, j'ai livré une première ébauche d'un module sur lequel je planchais — lorsque le temps le permettait — depuis un bon moment déjà: Faceted Search.

Ce module permet d'effectuer des recherches par facettes. Les contenus sont classés dans des hiérarchies de catégories, puis l'interface de recherche permet de naviguer dans le contenu en creusant à partir de catégories générales vers de plus précises. Dans ce type de classification, les facettes sont idéalement représentées sous formes de taxonomies mutuellement exclusives, si bien que, en combinant les termes de plusieurs facettes, on peut isoler rapidement un sous-ensemble de contenus qui nous intéresse. Ceci est nettement plus flexible qu'une hiérarchie unique de termes qui, certainement, ne saura répondre aux attentes de tous les utilisateurs et qui ne reflétera pas toujours leurs intuitions quant à l'organisation du contenu. Par exemple, dans un système de classification de restaurants par facettes, un utilisateur peut lancer sa recherche suivant le prix, puis l'affiner par localisation et par type de cuisine, tandis qu'un autre peut d'abord choisir un type de cuisine, puis restreindre les résultats selon le nombre d'étoiles accordées à l'établissement (exemple tiré de Wikipédia).

Drupal, via son module de taxonomie, dispose depuis longtemps d'outils très puissants pour classer les contenus mais, à mon point de vue, ne proposait aucune interface pleinement satisfaisante pour naviguer dans le contenu via la classification, particulièrement pour des sites à contenu très étoffé et varié. C'est le problème auquel je me suis attaqué avec Faceted Search, une interface de recherche intégrant pleinement le système de recherche par mots-clés de Drupal à la navigation par facettes.

Ma plus grande source d'inspiration pour ce projet fut certainement Flamenco, une superbe interface de recherche développée par une équipe de l'Université de Californie à Berkeley. Combiner la puissance de cette interface à la richesse d'un gestionnaire de contenu comme Drupal constitue, pour moi, une sorte de Saint Graal!

À ce stade-ci, le système Flamenco est plus complet et mature que Faceted Search. Cependant, Faceted Search tire pleinement parti de son intégration dans Drupal: Son interface de programmation permet de créer facilement de nouveaux types de facettes, ouvrant d'immenses possibilités au-delà de la simple taxonomie. Un site de commerce électronique pourrait, par exemple, fournir des facettes selon le prix des produits; un journal pourrait utiliser les noms d'auteurs, dates de publications d'articles, nombre de commentaires des visiteurs; un site utilisant CCK pourrait offrir les valeurs de certains champs dans des facettes, etc. Pour l'instant, je n'ai introduit que deux types de facettes, soient celles basées sur la taxonomie et le type de contenu, mais tout programmeur intéressé pourra en implémenter de nouveaux.

Notez que la classification par facettes ne se prête pas à toutes les sauces. Généralement, on souhaitera un classement basé sur des catégories élaborées avec soin (vocabulaires contrôlés), ce qui est difficile à réaliser dans le contexte de communautés en ligne où le classement est décentralisé (folksonomie). Avant de plonger, il pourrait vous être utile de consulter quelques conseils quant à la classification par facettes (en anglais).

RSS feed