Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Eno V3] Traitements spécifiques : suggester #586

Closed
AnneHuSKa opened this issue May 3, 2023 · 7 comments · Fixed by #792
Closed

[Eno V3] Traitements spécifiques : suggester #586

AnneHuSKa opened this issue May 3, 2023 · 7 comments · Fixed by #792
Assignees

Comments

@AnneHuSKa
Copy link
Contributor

AnneHuSKa commented May 3, 2023

cf issue 587

Certaines des fonctionnalités de l'atelier ont été développées comme des « traitements spécifiques » c’est-à-dire des transformations supplémentaires, effectuées post génération, en dehors du moteur Eno (soit car le développement dans l'atelier n’est pas encore terminé, soit car le développement est impossible mais que le besoin sous-jacent est reconnu)
Ces traitements sont conçus de façon spécifique et identifiés pour une édition d’enquête particulière, mais réplicables.
• Certains traitements spécifiques doivent être modifiés à la main, voire en plusieurs endroits.
• D’autres sont variabilisables plus simplement, c’est-à-dire que les endroits à modifier sont clairement identifiés en début du fichier de traitement et répercutés là où c’est nécessaire.

Les traitements spécifiques peuvent disparaître avec le temps

Cas un : le suggester
Suggester = composant Lunatic. Permet de proposer l’autocomplétion (l’enquêté ou l’enquêteur commence à saisir du texte et des échos, listés dans une nomenclature figée, lui sont proposés) pour la collecte d’une donnée. Les nomenclatures sont versionnées puisqu’elles peuvent évoluer (exemple : suppression de communes) et qu’on ne veut pas modifier une nomenclature en cours de collecte.
Pour que le suggester fonctionne, le questionnaire (Json Lunatic) généré par Eno doit contenir le nom de la variable « suggester », l’identifiant de la nomenclature à utiliser et le type de recherche (exemple : on ne recherche pas de la même manière dans une liste géographique et une liste de PCS).

Actuellement, le composant suggester existe en Lunatic, peut être paramétré mais on ne peut pas le décrire dans Pogues.

Description du traitement spécifique : le traitement spécifique modifie le json produit pour le rendre conforme à l’attendu :
• changement de nature de la variable – pour la passer en suggester
• référence de la nomenclature utilisée
• paramétrage de la recherche dans cette nomenclature (exemple : queryparser, stopWords etc...)

Cible Pogues-Eno-Lunatic : supprimer le TS (spécifier le suggester dans Pogues, ainsi que la liste et les différentes options, permettre la transformation par Eno)

@AnneHuSKa
Copy link
Contributor Author

json_sansTS.zip

Exemple avec 2 TS différents :

  • un pour les codes géographiques : queryparser = soft
  • un pour les codes non géographiques (PCS par exemple) : queryparser = tokenized

@AnneHuSKa
Copy link
Contributor Author

AnneHuSKa commented May 15, 2023

TS_suggester_2types.zip

Ce TS reprend les 2 types de suggester

@AnneHuSKa
Copy link
Contributor Author

Je crois qu'il y a un souci sur le pattern car en sortie Eno, j'ai un "pattern": "pattern", Et donc pas d'écho ? Question 6 séquence2 ici :
https://visu-stromae-v2-sandbox.demo.insee.io/visualize?questionnaire=https%3A%2F%2Fminio.lab.sspcloud.fr%2Fahusseini%2Fpublic%2FJson_test_TS.json%3F%20%20%20%20%20%20&nomenclature={%22L_PCS_HOMMES-1-3-0%22%3A%22https%3A%2F%2Fminio.lab.sspcloud.fr%2Fahusseini%2Fpublic%2FL_PCS_HOMMES-1-3-0.json%22}

Tout semble résolu si je mets "pattern": "[\w.]+" dans le json : ca te semble cohérent ?

@AnneHuSKa
Copy link
Contributor Author

@nsenave : le TS le plus récent dont je dispose ne semble plus fonctionner ?

@AnneHuSKa AnneHuSKa reopened this Oct 3, 2023
@AnneHuSKa
Copy link
Contributor Author

ddi-lgl1kmol.zip
Voici un ddi et un json de TS que @davdarras avait livré en juin et qui fonctionnait. Aujourd'hui j'ai un
Erreur durant la vérification du json de traitement spécifique : $.suggesters[0].fields[1].rules: is missing but it is required
$.suggesters[1].fields[0].rules: string found, array expected
$.suggesters[1].fields[1].rules: is missing but it is required

@nsenave
Copy link
Contributor

nsenave commented Oct 30, 2023

J'ai regardé, j'ai été un peu surpris par plusieurs points :

{
    "fields": [
        {
          "name": "label",
          "rules": "soft",
          "min": 2
        },
        {
          "name": "id"
        }
    ]
}

Ce qui est implémenté dans Eno actuellement :

  • "rules" doit être une liste
  • dans les objets à l'intérieur de "fields", la propriété "rules" est obligatoire (donc le deuxième élément est invalide)

➡️ Faut-il supprimer la deuxième entrée dans "fields" ? i.e. ce bloc :

{
        {
          "name": "id"
        }
}

➡️ "rules": "soft" : est-ce valide ? Est-ce que "rules": ["soft"] conviendrait ?


Dans le fichier suggester utilisé dans un des tests : j'ai rencontré des propriétés qui n'étaient pas prises en charge à certains endroits : "stemmer" et "meloto"

➡️ Je les ai ajoutées, je vais créer un doc côté Eno à faire expertiser (/transférer) côté Lunatic

@nsenave nsenave linked a pull request Nov 25, 2023 that will close this issue
@AnneHuSKa
Copy link
Contributor Author

AnneHuSKa commented Dec 15, 2023

Ok pour les suggesters.
A vérifier @AnneHuSKa : quand on a une variable présente dans les regroupements ET les suggesters. Si ko, on assumera.
=> testé et ok !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants