Pourquoi apprendre à créer une boutique en ligne quand on travaille en humanités numériques ?

Des filtres WooCommerce à la recherche avancée dans un corpus XML-TEI

À première vue, créer une boutique en ligne et travailler sur des corpus numériques en sciences humaines n’ont pas grand-chose en commun.

Pourtant, c’est précisément en travaillant sur une boutique en ligne que j’ai commencé à m’intéresser plus concrètement à une problématique qui me paraît essentielle en humanités numériques : comment permettre à un utilisateur d’interroger efficacement un ensemble de données ?

Derrière un filtre de boutique en ligne se cache en effet une logique qui dépasse largement le commerce : celle de la recherche multicritère.

Et cette logique devient particulièrement intéressante lorsqu’on travaille avec des données structurées, comme celles d’une édition XML-TEI.

De la boutique en ligne à la recherche documentaire

Lorsque j’ai commencé à travailler sur une boutique WooCommerce, mon objectif était d’abord d’apprendre à construire un site de commerce électronique.

Il fallait notamment gérer des produits, leurs catégories et leurs attributs, mais aussi permettre à l’utilisateur de retrouver un produit en fonction de plusieurs caractéristiques.

Exemple de recherche
  • Motif : fleuri
  • Couleur : bleu
  • Matière : coton
  • Longueur : 2 m

L’utilisateur ne cherche donc pas nécessairement un produit précis. Il peut partir d’un ensemble de critères et demander au système de lui retourner les éléments qui correspondent à sa recherche.

C’est à ce moment-là que j’ai commencé à m’intéresser davantage à ce qui se passe derrière l’interface.

Un filtre n’est finalement qu’une manière conviviale de construire une requête sur des données structurées.

Et cette logique peut être transposée à de nombreux projets en humanités numériques.

Que se passe-t-il lorsque les données sont des textes ?

Dans une édition numérique, l’utilisateur peut avoir besoin de retrouver non pas un produit, mais des occurrences dans un corpus.

Prenons par exemple un ensemble de textes encodés en XML-TEI.

On pourrait vouloir rechercher :

  • toutes les occurrences d’une personne ;
  • toutes les mentions d’un lieu ;
  • les documents appartenant à une période donnée ;
  • certaines formes normalisées ;
  • plusieurs informations apparaissant dans un même document ;
  • les documents répondant simultanément à plusieurs critères.

La question n’est alors plus seulement :

« Est-ce que le mot apparaît dans le texte ? »

mais plutôt :

« Que puis-je demander à mon corpus, et comment puis-je formuler cette demande ? »

Cette distinction est fondamentale.

L’exemple de La Fabrique de la Révolution

Cette réflexion prend un sens particulier pour moi dans le cadre du projet La Fabrique de la Révolution, consacré aux papiers de Michelet.

L’application permet notamment d’interroger le corpus Dans cet article, j’utilise par simplification l’expression « XML-TEI ». Dans le cadre de LAFABREV, le corpus repose plus précisément sur un modèle XML propre au projet : les balises ont été conçues pour répondre aux besoins spécifiques du corpus et sont définies dans une DTD inspirée de la TEI. au moyen d’expressions régulières.

La documentation consacrée aux expressions régulières présente plusieurs possibilités de recherche : expression exacte, valeur d’un attribut XML, forme normalisée, recherche d’une valeur parmi plusieurs possibilités ou encore recherche de deux valeurs cooccurrentes dans un même papier.

01

Expression exacte

Retrouver une expression précise dans les papiers.

02

Attribut XML

Rechercher une valeur présente dans la structure XML.

03

Valeurs multiples

Rechercher plusieurs valeurs possibles.

04

Cooccurrences

Retrouver plusieurs valeurs présentes dans un même papier.

On passe donc déjà d’une recherche plein texte relativement simple à une interrogation beaucoup plus fine du corpus.

Les expressions régulières : une interface entre le texte et la donnée

Une expression régulière permet de décrire une famille de chaînes de caractères plutôt qu’une seule chaîne exacte.

Cela ouvre des possibilités particulièrement intéressantes pour l’exploration de corpus.

. N’importe quel caractère
| Disjonction
() Séquence indépendante
[] Ensemble de caractères
* Zéro ou plusieurs occurrences
+ Une ou plusieurs occurrences

La documentation de LAFABREV présente également une syntaxe étendue permettant notamment de travailler avec les espaces, les caractères alphanumériques ou les chiffres.

Pour un informaticien, ces expressions peuvent sembler relativement naturelles. Pour un chercheur en sciences humaines qui souhaite simplement explorer un corpus, elles constituent en revanche une interface technique supplémentaire à maîtriser.

La question

Comment conserver la puissance de ces requêtes tout en les rendant plus accessibles aux chercheurs ?

Du dictionnaire de regex à une recherche avancée

Dans le cadre du projet La Fabrique de la Révolution, cette question pourrait être abordée à partir du dictionnaire d’expressions régulières appliqué aux papiers Michelet élaboré par Luc Massip.

L’intérêt d’un tel dictionnaire est justement de ne pas partir de zéro à chaque recherche.

Les motifs regex peuvent être considérés comme des briques de recherche.

Plutôt que de demander au chercheur d’écrire lui-même une expression régulière complexe, on pourrait imaginer une interface permettant de sélectionner des critères.

Recherche avancée
Robespierre ⌄
ET
Paris ⌄
ET
1792
—
1794

L’interface pourrait ensuite traduire ces choix en une ou plusieurs requêtes adaptées à la structure du corpus.

Le chercheur n’aurait donc pas nécessairement besoin de connaître la syntaxe des expressions régulières pour bénéficier de leur puissance.

Ce que les filtres d’une boutique m’ont appris

C’est finalement ici que le lien avec mon apprentissage de WooCommerce devient intéressant.

Dans une boutique

  • Catégorie : tissus
  • Couleur : bleu
  • Motif : floral
  • Longueur : 2 m
→

Dans un corpus scientifique

  • Personne : Robespierre
  • Lieu : Paris
  • Période : 1792–1794
  • Type : lettre

Mais les données ne sont évidemment pas de même nature.

Dans le premier cas, je travaille avec les caractéristiques de produits. Dans le second, je travaille avec des informations issues de documents, de leur structuration et de leur encodage.

C’est justement cette différence qui rend le parallèle intéressant.

Structurer les données pour pouvoir les interroger

Une recherche avancée ne commence donc pas au moment où l’utilisateur saisit sa requête.

Elle commence beaucoup plus tôt :
au moment où les données sont structurées.

Pour pouvoir rechercher une information, il faut qu’elle puisse être identifiée.

Dans une édition XML-TEI, l’encodage permet précisément de distinguer différentes catégories d’informations et de leur attribuer une structure.

01 Document
02 Données structurées
03 Règles d’identification
04 Requête
05 Résultats

L’utilisateur voit principalement le dernier maillon : la liste des résultats. Mais derrière cette interface se trouvent tout un modèle de données, des choix d’encodage et des mécanismes d’interrogation.

Apprendre par le détour

C’est finalement ce qui m’intéresse dans cette expérience.

Apprendre à créer une boutique en ligne pourrait sembler assez éloigné de mes préoccupations en humanités numériques.

Pourtant, ce détour m’a permis de réfléchir concrètement à des notions que l’on retrouve dans les projets de recherche :

  • comment structurer des informations ;
  • comment associer plusieurs propriétés à une même donnée ;
  • comment filtrer un ensemble de données ;
  • comment combiner plusieurs critères ;
  • comment construire une recherche ;
  • comment restituer les résultats à l’utilisateur.

Dans le cas de La Fabrique de la Révolution, ces questions prennent une dimension particulière puisqu’elles s’appliquent à un corpus textuel et à des données encodées en XML.

Le véritable enjeu n’est donc pas de reproduire les filtres d’une boutique dans un projet scientifique.

Il est de comprendre la logique qui se trouve derrière ces filtres et de réfléchir à la manière dont cette logique peut être adaptée aux besoins de la recherche.

Vers une interface de recherche pour les papiers Michelet ?

C’est une piste que j’aimerais explorer : partir du dictionnaire de regex de Luc Massip, des possibilités de recherche déjà présentes dans LAFABREV et de la structure XML du corpus pour réfléchir à une interface de recherche avancée destinée aux chercheurs.

L’objectif ne serait pas nécessairement de remplacer la recherche par expressions régulières.

Au contraire, il pourrait s’agir de construire une couche d’interface au-dessus de ces mécanismes, permettant de rendre certaines requêtes plus facilement accessibles.

Une question au cœur des humanités numériques

Comment transformer la richesse d’un corpus structuré en possibilités d’exploration réellement accessibles à ceux qui l’étudient ?

C’est peut-être finalement cela que m’a appris la création d’une boutique en ligne : derrière un simple bouton « Filtrer » se cache déjà une petite leçon de recherche dans les données.