Skip to content

1. Construction des datasets monomodaux

Alice Lambois edited this page Jan 16, 2023 · 1 revision

Contexte

Lors d'une enquête, les données sont collectées selon un ou plusieurs modes : en face à face avec un enquêteur (CAPI), par Internet (CAWI), par Téléphone (CATI), par Questionnaire Papier (PAPI) notamment. On obtient ainsi des données collectées avec des formats propres au mode de collecte.

Chaque mode de collecte s'appuie sur un DDI qui contient toutes les métadonnées de l'enquête pour ce mode.

La première phase consiste donc en une récupération et une mise en forme des données collectées, selon le schéma suivant :

0 - Fichier de paramétrage

Pour récupérer les fichiers de données et de métadonnées nécessaires, le concepteur devra renseigner un fichier de paramétrage, donc la structure est disponible ici.

1 - Récupération des données collectées

1.1 - Lecture des données

1.1.1 - Création et initialisation du Dataset

On crée un Dataset Java, qui contiendra un mode, une liste des variables, et la liste des données collectées qui correspondent. Pour cette étape, seul le mode de collecte est renseigné.

1.1.2 - Récupération des variables

Grâce à un script XSLT, on récupère la liste des variables avec les informations sur :

  • Leur nom
  • Leur format (numérique, chaîne de caractères, date,...)
  • Leur taille
  • Le groupe de variables auxquelles elles appartiennent.
  • Le nom de la question qui y est rattaché
  • Les différentes valeurs de réponses, pour des questions à choix uniques ou multiples
  • Le nom de la variable principale, dans le cas d'une question à choix multiple (avec plusieurs sous-variables booléennes de réponses)

On renseigne alors dans le dataset Java les variables collectées.

1.1.3 - Récupération des données

Une fois les variables connues, on va récupérer les données collectées et compléter le dataset.

Pour cela, il faut les convertir de leur format d'entrée (XML pour CAWI, JSON/XML pour CATI, CSV pour CAPI) en un format Java, grâce à un parser. On récupère ainsi des données utilisables par Java, qui va les intégrer au dataset et le compléter ainsi.

On récupère à la fin de cette étape un dataset java contenant toutes les informations des métadonnées et des données collectées.

Dans le cas de données collectées par Lunatic/Queen, le fichier d'entrée contient notamment les données collectées, mais également des données calculées, sous forme de valeur calculée ou de formule VTL. Actuellement, le parser Lunatic récupère les données collectées et calculées, à l'exception de celles contenant une formule VTL.

1.2 - Connexions VTL

1.2.1 - Transformation en dataset VTL

Après avoir récupéré les données, on va maintenant les mettre en forme et les normaliser dans un format standard SDMX. Pour cela, on va exporter le Dataset Java dans un fichier temporaire. Le batch va réécrire les données dans un fichier JSON, sous une forme telle que les données vont pouvoir être parsées par un connecteur VTL.

Le but de cette étape est de mettre les données en mémoire sous forme de VTL dataset, afin de pouvoir exécuter les spécifications rédigées sous forme d'instructions VTL.

Kraftwerk utilise pour celà la librairie VTL Trevas.

Une fois le fichier exporté, on va utiliser l'engine VTL, qui nous permet de traiter des datasets VTL dans Java, pour l'importer. On obtient ainsi un dataset VTL qui obéit à la structure normalisée SDMX, c'est-à-dire :

  • Une Datastructure correspondant à la liste des variables.
  • Une liste de DataPoints correspondant à la liste des données collectées.

Il est alors enregistré dans les bindings VTL, un espace de stockage d'objets VTL dans Java, sous le nom du mode. Par exemple, un dataset venant de Coleman sera enregistré dans les bindings sous le nom "COLEMAN" (pour Lunatic, ce sera "Lunatic", pour le Papier "PAPIER"...). Ce nom sera à utiliser si le concepteur veut apporter des spécifications à ce dataset.

1.2.2 - Application des spécifications du concepteur pour un mode

Une fois le dataset VTL enregistré, le concepteur peut choisir d'appliquer des spécifications VTL sur ce mode, afin d'apporter des modifications, de corriger des valeurs aberrantes, de créer des variables calculées,...

Pour ce faire, il lui faudra noter dans le fichier de paramétrage, dans le champ "custom_mode_specifications" d'un mode particulier le chemin vers un script VTL de spécifications.

Ce script, un fichier texte avec l'extension .vtl, doit être écrit dans le langage VTL et va être lancé sur le dataset portant le nom du mode, comme indiqué dans la partie 2.1.

La documentation sur le langage VTL est disponible plus en détail ici.

Une fois les spécifications apportées, le Dataset de ce mode de collecte est considéré comme traité, et le traitement passe alors à un autre mode, si d'autres modes sont spécifiés par le concepteur dans le fichier de paramétrage.

2 - Suite

Une fois la construction des datasets monomodaux terminée, on peut passer à la phase suivante.