Etape du processus de conversion
Le fonctionnement des convertisseurs consiste à changer un état pour un autre en exécutant une règle de convertisseur. Le processus de conversion recherche la première règle qui correspond au type type-in et toutes les autres conditions associées à cette règle. Lorsqu'une règle correspondante est localisée, l'action associée à cette règle est exécutée. Le nouvel état ou statut obtenu à la suite de cette action dépend de la valeur du paramètre fork, et si l'action génère un seul ou plusieurs éléments de données :
- Nouvel élément de données unique : la plupart des convertisseurs génèrent un seul nouvel élément de données, qui est transmis
à l'étape suivante du processus de conversion en fonction de la valeur du paramètre fork.
Les valeurs fork possibles et leurs implications sont les suivantes :
- none : les données existantes sont remplacées par la sortie de l'action. L'ancrage n'est pas modifié. Le nouveau type est le type type-out spécifié par la règle de conversion.
- fork : un nouveau processus de conversion indépendant est lancé avec deux branches :
- type d'origine, données et ancrage
- type type-out de la règle, données de la sortie de l'action et données d'origine (similaire à la sortie produite par la valeur fourche none).
- fork with new name : identique à fork, sauf que les ancrages des chemins de traitement sont modifiés. #0 est ajouté à un ancrage et #1 à l'autre.
- glue: identique à none.
- fork and glue : identique à fork.
- Plusieurs nouveaux éléments de données : les convertisseurs des éléments de données tels que des fichiers archive produisent
plusieurs nouveaux éléments de données à l'aide de la variable %target_dir interne afin d'identifier un emplacement de sortie
pour les fichiers extraits de l'archive lors de la conversion. Le paramètre fork
détermine de quelle manière est géré chacun de ces nouveaux éléments de données. Imaginons une archive
nommée files.zip qui contient les fichiers file1.txt, file2.txt et file3.txt. Les effets des divers paramètres
fork seraient les suivants :
- none : chacun des nouveaux éléments de données sera traité dans un processus de conversion indépendant. Le type sera le type type-out de la règle, et les ancrages seront mis à jour en ajoutant '#' et le chemin du fichier dans le répertoire %target_dir. Les fichiers de l'exemple d'archive seront traités séparément en tant que fichiers files.zip#file1.txt, files.zip#file2.txt et files.zip#file3.txt. Le processus de conversion de ces fichiers commencera au début de la liste des règles de conversion disponibles.
- fork : identique au comportement de fork pour un élément de données unique.
- fork with new name : identique à fork, sauf que les ancrages des chemins de traitement sont modifiés. #0 est ajouté à un ancrage et #1 à l'autre. Le paramètre fork se produit avant l'extraction du contenu de l'exemple d'archive, de sorte que l'archive files.zip#0 continue le traitement dans la règle en cours, et qu'une copie de ce fichier zip nommée files.zip#1 est à nouveau soumise à l'ensemble de la chaîne des convertisseurs.
- glue : similaire à none, sauf que les ancrages restent identiques à l'ancrage d'origine. Par exemple, les fichiers de l'exemple d'archive files.zip seront traités séparément, mais conserveront tous leur attribut d'ancrage défini sur files.zip. Cela signifie que, après l'indexation, les résultats de recherche trouvés dans l'un de ces fichiers pointeront tous vers le fichier archive d'origine plutôt que vers l'un de ses constituants.
- fork and glue : identique à glue, sauf que l'état en cours est conservé comme chemin de traitement.
Si le nouveau type est identique à l'ancien type, la conversion se poursuit avec la règle correspondante suivante de la liste des règles de conversion. Si le nouveau type est différent de l'ancien type, l'intégralité de la liste des règles de conversion est analysée à nouveau pour y rechercher la première règle correspondante, et cette règle est ensuite utilisée à l'étape suivante du processus de conversion.