Comment fonctionne la recherche de citations

Grande Bibliothèque

En réponse à une question technique sur l’évolution d’Ictus, voici quelques repères sur la manière dont le logiciel encode les « citations », c’est à dire les liens entre documents. Car en plus de créer des tables de mots pour accélérer les recherches par mots ou expressions, votre moteur de recherche indexe aussi les références croisées!

Attention, c’est un peu technique… mais si vous ne comprenez rien, ce n’est pas grave: le logiciel fait tout le travail à votre place!

Pour simplifier, dans Ictus tout est stocké en texte, et les références entre documents sont indiquées par exemple comme @Jn 1,12-24@.
Les débuts de chapitres sont codés avec un #..., et ~... indique un début de verset.

Il y a un « expert » dans le logiciel qui permet d’importer un document texte ou Word, puis de repérer les symboles usuels (aussi bien pour la Bible que pour les documents catholiques), et les convertir en @...@, en suivant les codes.

Un éditeur de texte est intégré pour finaliser l’import. Il effectue des tests de validité du texte avant la sauvegarde (par exemple si une balise@...@ ou un numéro de chapitre est invalide, elle sera indiquée).
Tout document de la base est en lecture/écriture (non obstant certains droits). En fait seuls les documents sont diffusés, et les indexes sont créés à la volée. On peut très bien corriger une faute de frappe, et les indexes sont mis à jour. C’est une grande différence avec les autres systèmes d’indexations de texte (biblique ou non), qui, en général, sont en lecture seule.
Le moteur de la version 4 (non encore terminé) permet de plus de partager ces corrections entre les utilisateurs, alors que dans le version 3, les corrections restent au niveau du disque dur de l’utilisateur.

Lorsque le logiciel indexe le texte, il extrait aussi une liste des références de toutes les @...@ dans le texte et la stocke de manière optimisée.

Au lancement du logiciel, toutes les références sont chargées (à partir d’un cache compressé), et disponibles en mémoire vive.
Ensuite, une recherche est effectuée en « force brute » dans cette table mémoire, et comme le code est bien optimisé et fonctionne en RAM, cette recherche est immédiate.

La recherche est suffisamment souple pour permettre une recherche par document, chapitre, verset, ou plage de chapitre/verset.
Certains documents n’ont pas de versets (ce qui est le cas de la plupart des documents non bibliques).
D’autres ont plusieurs niveaux de « chapitres » (comme la Somme de Théologie de Thomas d’Aquin) – ce qui est géré par un simple calcul de modulo.

Il y a donc une liste « en dur » de documents de référence (qui peut être complétée dans le fichier ictuswin.ini), puis une table de référence créée lors de l’indexation des documents. En fait, le moteur indexe aussi tous les mots qui apparaissent dans le texte, pour que la recherche de mots et d’expressions soient immédiates.

Dans la pré-version Ictus 4, il y a aussi un système similaire implémentant un moteur de recherche géographique, et un index de dates (pour créer une chronologie).

En fait, le moteur d’Ictus a été utilisé aussi en dehors du monde biblique, pour indexer par exemple des textes de référence juridique.