Recherche incrémentale
Fonction Recherche
function Recherche
global corpus
RechercheDeBalisesNommées:"w" ...
champs:{{"Occurrence", "*"}, ...
{"Lemme", ".lex"}} ...
listes:{{"Catégorie", ".cat"}, ...
{"Temps", ".temps"}, ...
{"Texte", "../doc/name*"}, ...
{"Auteur", "../doc/author*"}, ...
{"Date", "../doc/date*"}} ...
dans:corpus
Ligne 4: Précise le nom des balises à rechercher, en l'occurrences les balises <w>...</w> (correspondant aux mots dans les textes)
Lignes 5 et 6: Définition des rubriques à afficher sous forme de champs
Lignes 7 à 11: Définition des rubriques à afficher sous forme de listes
Chaque rubrique est définie par une paire de chaînes de caractères. La première indique le nom de la rubrique, tel qu'il sera affiché à différentes reprises dans l'interface (légendes, titres de colonnes, etc.).
La deuxième chaîne indique la recherche XML correspondante. La syntaxe des recherches XML est décrite dans la section Techniques avancées.
Par exemple, "*" correspond au contenu textuel de la balise, ".lex" correspond à l'attribut lex de la balise, "../doc/author*" correspond au contenu de la balise author du texte contenant la balise, etc.
La description de la fonction RechercheDeBalisesNommées:champs:listes: dépasse le cadre de ces tutoriels. Cette section présente néanmoins comment modifier les paramètres essentiels de cet outil de recherche incrémentale.
Algorithmes de recherche
Cette section présente quelques façons d'effectuer des recherches dans XS. Une description détaillées des possibilités de XS est donnée dans les sections Éléments de base et Techniques avancées.
Recherche de mots
mots = tagsIn:corpus named:"w"
Recherche toutes les balises <w>...</w> dans le corpus
elementsOf:mots satisfying:maCondition:this
Retourne les mots satisfaisant la condition maCondition: décrite ci-dessous.
function maCondition:mot
lemme = attribute:"lex" ofTag:mot
return does:lemme match:"in*"
Cette condition retourne vrai si l'attribut lex du mot passé en paramètre commence par "in".
Cette recherche retourne ainsi tous les mots dont le lemme commence par "in".
Recherches XML
Les recherches XML (décrites dans les techniques avancées) offrent une syntaxe particulièrement concise. L'exemple ci-dessus peut être simplement écrit ainsi:
corpus["//w[.lex ~ in*]"]
Recherche dans corpus de toutes les balises w dont l'attribut lex commence par in
Des recherches plus complexes peuvent ainsi être réalisées en une seule commande:
corpus["//w[.lex ~ in* & ../doc/author* = 'Julius Caesar' & .temps != présent]"]
Recherche dans corpus de toutes les balises w...
- dont l'attribut lex commence par in
- et dont l'auteur du document est Julius Caesar
- et dont l'attribut temps ne vaut pas présent
Cette syntaxe quelque peu complexe mais concise, permet ainsi, en une seule ligne, d'obtenir les résultats des recherches décrites dans la section Recherche incrémentale du tutoriel débutant.