InseeFr / Eno

Questionnaire generator
MIT License
13 stars 24 forks source link

[DDI] Identification des variables dans les formules : ajout d'un caractère de séparation #604

Open BulotF opened 1 year ago

BulotF commented 1 year ago

Demande d'un prestataire externe qui souhaite réussir la gestion intégrée de documents électroniques.

Son but est similaire à celui d'Eno : reconnaître l'information présente dans le DDI.

Son blocage majeur concerne l'identification de variables au sein des formules.

Au niveau des Label, il y arrive bien : il y a les caractères ¤...¤ pour les délimiter. Dans les autres types de formules, rien ne permet de les identifier clairement.

Proposition : rajouter des caractères de délimitation autour de chacune des variables pour faciliter leur reconnaissance.

romaintailhurat commented 1 year ago

En effet, en dehors des libellés, le code VTL embarqué dans le DDI ne marque pas particulièrement les références à des variables (voir ci-dessous l'exemple pour un contrôle).

Exemple → Voir le contenu de la balise `` ```xml fr.insee lahvkp0z-CI-0 1 Le prénom ne peut être vide. Le prénom ne peut être vide. fr.insee lahvkp0z-CI-0-II-0 1 Instruction informational vtl fr.insee lahvkp0z-CI-0-IP-1 1 PRENOM fr.insee lahvkp0z-QOP-lahvjhxl 1 OutParameter fr.insee lahvkp0z-CI-0-IP-1 1 InParameter lahvkp0z-CI-0-IP-1 = "" or isnull(lahvkp0z-CI-0-IP-1) ```

Dans Eno, ce marquage supplémentaire ne semble pas nécessaire, il y a bien un mécanisme qui permet la réconciliation, ne pourrait-on pas le partager ?

Par ailleurs, le caractère spécial ¤ dans les libellés - qui sont aujourd'hui des expresssions VTL comme vu dans l'exemple plus haut - est-il encore nécessaire ?

Enfin, si on devait faire l'ajout que tu proposes, quel serait l'impact sur nos outils ?

robald8 commented 1 year ago

J'ai pris aujourd'hui sur le site Pogues un ddi (CT-RPS2024) dans une Instruction on a du texte

**if (¤l14vew0k-GOP¤ = ¤l14vgvlc-GOP¤) then ¤l14vew0k-GOP¤ ||", nous allons rapidement vous décrire." else "Nous allons décrire rapidement " || ¤l14vew0k-GOP¤ || "." **, c'est du VTL et les quotes sont présentes et ailleurs on a aussi quelque chose comme **nvl(l0v3gfcr-MIN-IP-1, 1)** Clairement ce qu'il est possible de faire pour le texte d'une Instruction pourrait être aussi fait ailleurs! Et j'ai vu des fichiers (je crois que le premier xsimpsons le faisait). Je me place comme quelqu'un qui a accès au DDI, regarde le code VTL, et obligatoirement se dire que le '-' a été supprimé du VTL! Je ne connais pas Eno, mais j'ai l'impression que ça ne devient un problème que si on a à faire du VTL (pas le cas quand on écrit du texte, seulement quand on doit l'interpréter).
robald8 commented 1 year ago

Dans le même questionnaire on a

CategoryScheme-l13oddrm 1 L_MINLOGENQ fr.insee CA-l13oddrm-1 1 "Pour suivre " ||¤l2iu1atg-GOP¤|| " scolarité ou " ||¤l2osro6c-GOP¤|| " études." Ce qui nous pose un problème, nous utilisons un langage de script avec des définitions, des questions et une route. Les questions se servent des définitions, et nous considérons ces dernières comme fixes. Avec cette formulation, elles deviendraient dépendantes des valeurs recueillies?
robald8 commented 1 year ago

Et cette construction me semble bizarre

fr.insee CategoryScheme-lemzi02e 1 1. École maternelle ou primaire 2. College 3. Lycée professionnel 4. Lycée général, classe préparatoire 5. Université, école d’ingénieur, autre établissement d’enseignement supérieur comparée. à fr.insee CategoryScheme-l0v3x4ho 1 L_SEXE on voit bien qu'on s'attend à trouver quelque chose qui soit un nom et qu'on pourrait récupérer dans la suite (par exemple avec R)
robald8 commented 1 year ago

Sur mon deuxième commentaire, en fait on peut avoir des libellés de modalité dépendants de variables.