chartes / adele-vue

Site de l’application Adele (édition diplomatique collaborative)
2 stars 1 forks source link

Bugs dans l'alignement de la transcription et de la traduction #15

Closed MrGecko closed 2 years ago

MrGecko commented 2 years ago

L'étape d'alignement de la transcription avec la traduction est réalisable par un utilisateur avec le status de professeur.

Cette étape consiste à placer des jalons dans les contenus de références de la transcription et de la traduction en nombre identique de part et d'autre.

image

Ces jalons posés (les lignes jaunes) permettent de générer la vue ci-dessous qui facilite la lecture de la traduction vis à vis de la transcription.

image

Il existe certains cas où la pose de ces jalons ne fonctionne pas correctement lors de l'étape de l'enregistrement. En effet, le calcul de leur position dans le contenu n'est pas correct et il n'est plus possible de les recharger par la suite, ce qui empêche toute éventuelle correction de l'alignement. Ces cas compliqués semblent apparaîtrent lorsqu'un jalon est posé au milieu ou à proximité d'un enrichissement (une note, l'identification d'une personne ou d'un lieu). L'addition de ce balisage semble être mal pris en compte dans l'algorithme de calcul de la position de ces jalons (aka pointeurs d'alignement).

On dit alors que l'alignement est corrompu : impossible d'afficher ou d'éditer correctement le contenu de l'alignement.

Objectifs :

fbessou commented 2 years ago

@MrGecko: J'ai reproduis le cas où on modifie la traduction après la pose des jalons, est-ce le seul cas qui peut causer des erreurs ou bien y en a t-il d'autres ?

fbessou commented 2 years ago

Pour l'instant je n'ai réussi à casser l'alignement qu'en modifiant le contenu de la transcription ou de la traduction après avoir défini les jalons.

MrGecko commented 2 years ago

Je crois que les cas les plus complexes (mais assez courants) sont ceux où il y a une juxtaposition d'enrichissements (personne identifiée + note, retour à la ligne)

fbessou commented 2 years ago

J'ai identifié un cas (est-ce le seul ?) qui survient lorsque le texte contient des balises vides. Par exemple, ci-dessous le texte contient la chaine <span><ex></ex></span>:

<p><persName ref="A"><ex>A</ex><span><ex></ex></span><ex>B</ex></persName>C</p>

Dans ce cas, insérer un segment peut entrainer la disparition de cette balise vide dans le modèle de Quill, ce qui, à la sauvegarde peut entrainer un décalage sur tous les pointeurs qui sont insérés après. Dans ce cas par exemple, ajouter des segments autour de B supprime le <span><ex></ex></span> et le calcul de la position des pointeurs devient faux.

fbessou commented 2 years ago

Je vois deux solutions

MrGecko commented 2 years ago

Ces balises vides ne devraient jamais exister s'ils sont supprimés par Quill automatiquement lors de la sauvegarde. On peut forcer l'enregistrement mais, normalement, ces contenus n'ont pas dû être modifiés par la pose de segments (ou alors c'est que l'éditeur de pose de segments permet de faire des modifs qu'il ne devrait pas).

fbessou commented 2 years ago

En tout cas après un certains nombre de manipulations, je suis bien tombé sur plusieurs cas où il reste des balises vides à l'enregistrement. Et ces balises vides se retrouvent bien supprimées quand on place des segments sur à côté d'elles :/

Est-ce que tu préfères qu'on supprime les balises vides à l'enregistrement des transcriptions/traductions ou bien qu'on ré-enregistre systématiquement transcriptions et traductions à la sauvegarde des segments ? Dans le second cas,n'y a-t-il pas de risque de casser d'autres pointeurs que les aligments au moment de l'enregistrement ?

MrGecko commented 2 years ago

Si supprimer les balises vides == s'assurer que les transcriptions/traductions ne changent pas alors OK, sinon la 2ème solution. J'ai du mal à évaluer l'impact sur les autres pointeurs (c'est ça l'enfer de notre solution).