Table des matières
Résumé rapide
Cette page fournit des instructions rapides pour la mise en place d'un premier projet CallWeb. Nous prenons pour acquis que vous avez accès à un serveur Web équipé de CallWeb et à un programme FTP pour transférer les fichiers requis sur le serveur.
Introduction générale
CallWeb est un système ordiné qui facilite la création de formulaires intelligents et de questionnaires ainsi que la gestion de la collecte de données utilisant formulaires et questionnaires.
Ce document passe en revue les opérations de CallWeb dans l'ordre suivant :
Une grande partie de l'utilisation de CallWeb tourne autour de scripts. Ce sont des fichiers textes qui contiennent la définition de chacune des questions du questionnaires — et plus encore. Il y a deux méthodes pour créer et modifier les scripts :
Le choix d'un environnement de conception et de modification des questionnaires est le vôtre; cependant, la présente documentation met l'accent sur l'approche utilisant l'éditeur de texte plutôt que le module cwedit à cause de sa rapidité et parce qu'elle exige davantage d'appui au départ.
Conception
Introduction
Un questionnaire CallWeb tient dans un fichier ANSI strict (que des caractères ANSI, pas de commandes de traitement de texte) où chaque question est présentée dans la séquence d'affichage dans le questionnaire. Le nom du fichier de questionnaire utilise les conventions suivantes : l'extension doit être .scw (qui signifie « script CallWeb ») et le nom (sans extension) devient le nom de projet du point de vue de CallWeb. Attention : les minuscules et les majuscules comptent dans le nom du fichier comme dans le nom du projet.
La structure d'une définition de question est la suivante :
Un exemple d'une définition de question pourrait dont être ce qui suit :
Chaque segment de la définition de la question fera maintenant l'objet d'une des sections suivantes.
Ligne du nom de la question
La ligne du nom de la question utilise la syntaxe suivante (toute l'information doit tenir sur une seule ligne) :
Le nom de la question :
Le paramètre MIN= est le nombre minimum de réponses attendues. Fixé à zéro, il permet de ne pas répondre à une question. La valeur par défaut est 1.
Le paramètre MAX= est le nombre maximum de réponses attendues. Fixé à une valeur plus grande que 1, il force l'utilisation de cases à cocher plutôt que les boutons radios. La valeur par défaut est 1.
En fixant tant MIN que MAX à zéro, on crée une question sans catégorie de réponse. CallWeb affiche le texte de cette question et sa note, s'ils existent.
Le paramètre NCOLS= détermine combien de colonnes seront utilisées pour afficher les catégories de réponses. La valeur par défaut est une seule colonne. Cette valeur par défaut peut être modifiée questionnaire par questionnaire (et pour l'ensemble d'un questionnaire) grâce à l'instruction dièse # N COLONNES PAR DEFAUT. Finalement, le paramètre NCOLS=, qui ne s'applique qu'à une question, a préséance sur les valeurs par défaut.
Le paramètre SUBSET=question nomme la partie ouverte qui sera utilisée pour réduire la liste des catégories de réponses d'une question sur la base du texte des étiquettes de réponses (référez-vous à la description complète de cette option).
Le paramètre CODESIN=question nomme la partie ouverte qui sera utilisée pour réduire la liste des catégories de réponses d'une question sur la base de toute caractéristique d'une base de données associée (référez-vous à la description complète de cette option).
Le paramètre CATEGORIES=question nomme la partie ouverte qui fournira la liste des catégories de réponses (référez-vous à la description complète de cette option).
Le paramètre MUST=(condition) spécifie la condition logique qui exige qu'une réponse soit donnée à la question.
Le paramètre CORNER=(texte) modifie le texte affiché dans le coin gauche de l'en-tête d'un tableau, pour cette question seulement. Il peut contenir un segment pour chaque langue du questionnaire, spécifié grâce à des crochets et à un code à deux lettres (p.ex., [EN]).
Les MOTS-CLEFS peuvent être l'une ou l'autre ou plusieurs des valeurs suivantes (certaines sont logiquement mutuellement exclusives, d'autres non) :
Texte de la question
Le texte d'une question peut couvrir plusieurs lignes. CallWeb rattache toutes les lignes avant de traiter le texte. Rappelez-vous que l'apparence finale de la question pour le participant, incluant le césures de lignes, est contrôlée par le navigateur.
Exemple d'un segment de texte de question :
Le texte de la question peut contenir des codes HTML. De tels codes sont interprétés directement par le navigateur.
On peut insérer des rappels de réponses précédentes dans le texte de la question. Voir la section Rappels de réponses pour la syntaxe des rappels.
Si le questionnaire comporte plus d'une langue, les segments de chaque langue doivent être précédés d'un code ISO de langue entre crochets (p.ex., [EN]). Un signe égal (=) seul dans un champ texte permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.
Le texte dune question peut être emprunté d'une autre question en insérant le signe égal (=) à gauche du nom de la question dont il faut copier le texte. Cependant, si le texte de la question débute par le signe tilde (~), la copie par le signe égal est désactivée; ceci permet de créer un titre de courriel encodé en UTF-8 et qui commence par un signe égal — le tilde est effacé silencieusement.
Note
Les notes sont affichées après le texte de la question et utilisent une mise en page différente. Elles servent aussi à identifier le texte affiché à gauche de la ligne dans une présentation en tableau (référez-vous à la section portant sur les tableaux).
Exemple d'un segment note :
Le texte des notes peut contenir du code HTML. Ce code est interprété directement par le navigateur.
Le texte d'une note peut contenir des rappels de réponses précédentes.
Si le questionnaire comporte plus d'une langue, les segments de chaque langue doivent être précédés d'un code ISO à deux caractères, entre crochets (p.ex., [FR]). Un signe égal (=) seul dans un champ de note permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.
Le texte d'une note peut être emprunté d'une autre question en insérant le signe égal (=) à gauche du nom de la question dont il faut copier le texte.
Clonage de questions
Quand plusieurs questions qui sont exactement les mêmes sauf pour ce qui est du texte de la note (et possiblement de la condition d'affichage)) sont nécessaires (p.ex., pour créer une batterie de questions à présenter dans un tableau), on peut utiliser une syntaxe succincte de clonage. Voici une explication par un exemple :
Ce code crée trois questions (Q1_A, Q1_B et Q1_C) qui ont les mêmes caractéristiques sauf le contenu de la note. Ces questions peuvent être placées sur une même page ou dans un tableau, ou non. Si le questionnaire contient plus d'une langue, chaque segment de langue doit être préfixé d'un code de langue entre crochets.
La question réceptrice (Q1 dans l'exemple) n'existe pas du point de vue de CallWeb; seules les questions crées par les suffixes existent réellement. Donc, bien qu'il soit possible de copier depuis et vers les questions suffixes (Q1_A et les autres dans l'exemple), il n'est pas possible de copier depuis et vers la question réceptrice (Q1). En conséquence, l'exemple suivant est légitime :
L'exemple suivant est aussi légitime :
Cependant, l'exemple suivant n'est pas valide :
Nous recommandons fortement de ne pas construire un script qui contient une question ordinaire (p.ex., Q1) et une question réceptrice (p.ex., Q1 + suffixes), ou deux questions réceptrices, portant le même nom. Le compilateur est capable de gérer de telles situations, mais le module cwedit ne le peut pas.
Des conditions d'affichage peuvent être affectées à des suffixes particuliers. Une telle condition d'affichage est insérée entre crochets immédiatement après le segment SUFFIXE qui est entre crochets et immédiatement avant le texte de la note. La condition d'affichage d'un SUFFIXE a préséance sur la condition d'affichage qui est rattachée à la question réceptrice. Donc, dans l'exemple suivant :
la condition d'affichage du premier énoncé est [Q1.EQ.1] alors que celle des autres énoncés est [Q1.EQ.2-4].
La même logique joue pour le paramètre COIN=(texte) que l'on peut ajouter à la ligne SUFFIXE comme suit :
Le paramètre COIN=(texte) modifie le texte affiché dans le coin supérieur gauche d'un tableau, pour la question courante seulement. Il peut contenir un segment par langue du questionnaire, chaque segment est préfixé d'un code ISO à deux lettres entre crochets.
Les questions SUFFIXE ne sont pas limitées à la construction de tableaux mais elles sont une manière très rapide de créer une série de questions qui partagent un jeu de réponses et qui peuvent être affichées en tableau. Il est parfois utile d'insérer une ligne titre dans un tel tableau; dans l'image ci-contre, les lignes intitulées PRODUCT et FINANCIAL jouent le rôle de titres (aucune donnée n'est recueillie à leur propos). Une façon simple de créer de tels titres est d'ajouter la lettre « T » au mot-clef « SUFFIXE » (donc, « SUFFIXET »). Une question SUFFIXE-titre se voit imposer un nombre minimum de réponses de zéro (pour qu'elle puisse être laissée sans réponse) et toutes ses catégories de réponses reçoivent un code de comportement « N » (en plus de tout autre code de comportement que les catégories de réponse ont déjà) de sorte qu'aucun objet de réponse (une puce ou une boîte à cocher) n'apparaisse dans les cellules de la ligne titre.
Catégories de réponses
Chaque catégorie de réponse doit être entièrement décrite sur une seule ligne. Rappelez-vous que l'apparence finale pour le participant au sondage, y compris la césure des lignes, est contrôlée par le navigateur du participant. La syntaxe de la ligne de définition d'une catégorie de réponse est l'une des trois suivantes :
Une étiquette simple se voit attribuer automatiquement un code numérique plus grand d'une unité que le code précédent, en commençant par 1. Si un nombre est fourni entre astérisques, ce nombre devient le code de la catégorie. Les catégories de réponses n'ont pas à être triées selon ce code et les codes n'ont pas à former une séquence.
Les catégories de réponses reçoivent toujours un code numérique. Par défaut, CallWeb réserve quatre positions pour stocker tous les codes de réponses des questions ordinaires (à l'exclusion de la partie ouverte mais on peut utiliser des codes plus larges. Dans ces cas, le compilateur exigera l'instruction dièse « # Largeur extraction ».
Un ou plusieurs codes de comportement peuvent être insérés entre astérisques à la suite du code de réponse (si un code de comportement est nécessaire, un code numérique entre astérisques est requis). Voici une liste des codes de comportement :
Les segments de langue dans les catégories de réponses sont traités de la même manière que dans le texte de la question. Un signe égal (=) seul dans un champ texte permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.
Exemple d'une catégorie de réponse :
On peut définir un nombre illimité de catégories de réopnses pour chaque question. La compilation du questionnaire est évidemment plus longue lorsque le nombre de catégories de réponses augmente.
Copie de catégories de réponses
Il est possible de copier intégralement les catégories de réponses d'une autre quesiton en insérant une seule ligne dans la section des catégories de réponses. Cette ligne contient le signe égale (=) et le nom de la question de laquelle il faut copier, comme dans ce qui suit :
Les questions qui copient et celles de laquelle elles copient n'ont pas à se trouver dans un ordre particulier dans le questionnaire.
Alias de réponses
Les alias de réponses sont des éléments de texte qui sont différents de l'étiquette principale d'une réponse et qui peuvent être rappelés en lieu et place de l'étiquette principale. La syntaxe des alias est comme suit :
Les codes de langues et les codes de comportements peuvent être utilisés en même temps que les alias comme dans cet exemple :
A l'intérieur d'un jeu de codes de réponses, certains codes peuvent posséder un alias et d'autres non. Un code de réponse peut comporter un nombre indéfini d'alias. Les alias doivent être placés à la fin de l'étiquette de la réponse. On peut rappeler un alias en utilisant la syntaxe &QUESTION#alias (p.ex., &Q1#MP).
Attribut « title »
On peut ajouter des étiquettes spéciales à chaque catégorie de réponse pour améliorer l'accessibilité pour les mal-voyants. Ces étiquettes spéciales seront placées dans l'attribut « title » des objets HTML de formulaire pour mieux les identifier. Ces étiquettes sont définies dans une paire de bornes <title></title> dans la définition d'une catégorie de réponse comme ceci :
L'attribut « title » peut être défini pour toutes les catégories, certaines ou aucune, dans une langue ou plusieurs, selon les besoins. La valeur par défaut est l'étiquette de réponse elle-même.
Cas particuliers : permutations et inversions
CallWeb offre des outils spéciaux pour mettre en oeuvre la permutation et l'inversion de catégories de réponses.
Si la ligne du nom de la question compte le mot-clef « ROTATION », les catégories de réponses sont affichées dans un ordre aléatoire (sujet aux codes comportant le code de comportement B).
Si la ligne du nom de la question compte le mot-clef « INVERSION », les catégories sont présentées dans l'ordre initial ou inversé, de façon aléatoire (sujet aux codes comportant le code de comportement B).
Exemple :
Cas particulier : conditions d'affichage de catégorie de réponse
Par défaut, toutes les catégories de réponses sont affichées. Cependant, leur affichage peut être rendu conditionnel à des réponses antérieures en insérant une ligne additionnelle devant la catégorie de réponse. Cette ligne additionnelle contient la condition d'affichage entre crochets. Une telle ligne de condition d'affichage n'affecte que la catégorie de réponse qui est définie sur la ligne qui suit immédiatement.
Dans cet exemple, la seconde catégorie de réponse n'est affichée (et n'est disponible au répondant) que si la valeur de Q1 est 1. Les conditions d'affichage de catégories de réponses sont respectées même lorsque les questions sont présentées sous forme de tableau.
Sauts simples
La définition d'un saut simple est.. simple : faites la liste des codes de catégories de réponses (séparés par des virgules) à gauche d'un signe égale (=) et placez le nom de la question vers laquelle sauter à droite du signe égale. Il peut y avoir plusieurs définitions de ce type dans une question donnée; chacune doit être sur une ligne à part.
Exemple de saut simple :
par défaut, le contenu des questions par dessus lesquelles CallWeb saute est effacé. L'instruction dièse # Sauts nettoyants permet de changer ce comportement pour tout le questionnaire : en lui donnant la valeur « non », tous les sauts du questionnaire deviennent non nettoyants. On peut rendre un saut particulier non nettoyant en préfixant la destination du saut d'un signe « ~ » comme suit :
Sauts par hyperlien avec JUMP
On peut créer un hyperlien vers une question particulière dans le questionnaire courant grâce à la syntaxe suivante :
Cette syntaxe crée un lien sur le « texte » (qui peut se trouver dans n'importe quel élément d'une question) qui saute immédiatement à la question « QUESTION » sans traiter aucune autre information sur la page courante. Ce type de saut par hyperlien est non nettoyant.
On peut aussi utiliser JUMP pour passer à un autre projet grâce à la syntaxe suivante : {JUMP:QUESTION,projet}.
Finalement, on peut se déplacer vers un dossier particulier d'un autre projet avec la syntaxe suivante : {JUMP:QUESTION,projet,telkey}.
Ces différentes versions de {JUMP:} peuvent toutes produire des liens chiffrés si elles sont appelées avec {JUMPC:}. (Voir la fonction obscurcir.)
Condition d'affichage
Une condition d'affichage est une expression logique qui détermine si une question doit être affichée. C'est une façon beaucoup plus robuste que les sauts simples ou les sauts calculés de mettre en oeuvre la logique d'un questionnaire parce que la logique est directement associée à la question de destination.
L'expression logique doit utiliser un format xBase; pour les experts, l'expression peut aussi emprunter une syntaxe Perl et utiliser toute variable disponible dans l'environnement Perl si la condition est entourée d'accolades (« { » et « } »). L'expression logique peut utiliser toute variable définie dans le questionnaire, y inclus les données prépeuplées. Les règles fondamentales de construction des expressions xBase sont les suivantes :
CallWeb s'occupe d'appliquer la logique xBase aux questions à réponses multiples.
Rappelez-vous que tous les codes de réponses sont numériques. Ceci simplifie la construction des expressions logiques.
Exemple d'un segment de condition d'affichage :
Quand CallWeb rencontre une condition d'affichage d'une valeur « fausse », il efface toutes les données associées à cette question dans le dossier, y compris la partie ouverte s'il y en a une; cependant, il n'efface pas la destination d'une variable CALCUL. Ceci constitue un comportement logique puisque la question n'aurait pas dû être affichée au départ — bien qu'elle a peut-être été affichée légitimement avant que l'usager ne recule et ne modifie certaines de ses réponses. Pour créer une question non affichée où des données puissent être stockées (comme les champs prépeuplés), pensez à utiliser la partie ouverte d'un question de type BLANK question ou les types de question NEVERUPDATE ou STOCK, ou alors, préfixez la condition d'affichage d'un tilde (~) pour indiquer que la condition est non nettoyante (le tilde a la même signification ici que dans les sauts simples)..
Il est possible d'emprunter la condition d'affichage d'une autre question en insérant une ligne dans la section de la condition d'affichage. Cette ligne contient le symbole égale (=) et le nom de la question de laquelle il faut emprunter, comme suit :
Les questions emprunteuses et les questions prêteuses n'ont pas à apparaître dans un ordre particulier dans le questionnaire.
Partie ouverte
Une information alphanumérique, numérique ou d'autres types peut être attachée à n'importe quelle catégorie de réponse. Elle est enregistrée dans un champ distinct qui porte le même nom que la question d'origine auquel est préfixée la lettre « A ». La définition des parties ouvertes suit la syntaxe suivante : liste des codes de catégories de réponses séparée par des virgules, à gauche d'un signe égale (=), et suivi d'instructions décrivant la partie ouverte, à droite du signe égale.
Exemple de segment de partie ouverte :
La syntaxe de l'instruction de partie ouverte utilise les codes suivants (selon le type de donnée attendu).
Contrôler la taille de la boîte de saisie
La plupart des parties ouvertes sont présentées comme des boîtes de quatre lignes et quarante colonnes par défaut. La taille de la boîte peut être déterminée au cas par cas grâce à la syntaxe suivante :
comme dans
qui ouvre une boîte d'une ligne et vingt colonnes contenant une réponse alphanumérique de trente caractères.
Note : A moins que « # Contraindre la longueur des reponses » vaille OUI, les boîtes de plusieurs lignes ne contrôlent pas le nombre de caractères qui y sont saisis; la limite du nombre de caractères est alors utilisée seulement à l'extraction d'un fichier à colonnes fixes. Les boîtes d'une seule ligne limitent la saisie au nombre de caractères précisé dans la déclaration de la partie ouverte. Si « # Contraindre la longueur des reponses » vaut OUI, et que le modificateur W accompagne la déclaration C (p.ex., CW100 2 30), la limite fixée (ici 100) concerne les mots et non les caractères.
Les parties ouvertes numériques ouvrent toujours une boîte d'une seule ligne; la largeur de la boîte est fonction du nombre de caractères déclaré dans la définition de la partie ouverte.
Mise en page des valeurs numériques
Par défaut, les valeurs numériques fournies dans les parties ouvertes ne sont pas formattées; en fait, les symboles additionnels comme le signe de dollar ou de pourcentage sont éliminés de la valeur saisie et les virgules décimales françaises sont remplacées par des points décimaux anglais.
Par contre, la syntaxe suivante permet d'afficher une version formattée de la partie ouverte dans les boîtes de saisie et dans les rappels de réponses :
où
Donc, 1 = N6.2 0 100 FORMAT=DOLLAR2 affiche une partie ouverte comme une valeur en dollars avec deux décimales.
Notez que la largeur du champ (6 dans l'exemple ci-haut) détermine la largeur de la boîte de saisie; cette largeur doit suffire à afficher la valeur formattée.
Notez aussi que le mot-clef « format » peut être remplacé par une valeur en format Perl (entre accolades); ceci permet le formattage conditionnel (p.ex., afficher des montants numéraires en fonction d'une question précédente).
Rappel de réponses
CallWeb peut rappeler trois types d'information dans le texte des questions, dans les notes et dans les catégories de réponses :
Le rappel de réponses peut être effectué sur tout type de question, que ce soit des questions ordinaires posées au cours du question, des questions BLANK, des questions CALCUL, ou autres.
Exemple de rappel de réponse de la question Q1 :
Instruction dièse de rappel
Des valeurs de rappel particulières peuvent être créées grâce aux instructions « # Recall » ou « # Rappel ». Voici la syntaxe de cette instruction :
Ces valeurs sont rappelées en utilisant la syntaxe suivante : &#ETIQUETTE. Par exemple, tous les icônes « Nouveau » dans cette documentation apparaissent grâce au rappel &#NEW qui est défini par l'instruction dièse suivante :
Pour éviter les collisions avec les symboles HTML, etiquette doit être rappelée en majuscules et doit débuter par une lettre. L'étiquette peut contenir des lettres, des chiffres et le trait souligné.
# RAPPEL (ou # RECALL) peut utiliser des conditions d'affichage de sorte que différentes substitutions peuvent avoir lieu dans différentes circonstances. Les conditions d'affichage sont placées immédiatement avant le texte de la valeur rappelée, comme ceci :
Dans cet exemple, &#WORD rappelle « mot » (au singulier) si AQ1 est plus petit ou égal à 1 et « mots » (au pluriel) si AQ1 est plus grand que 1.
La condition d'affichage est exprimée en syntaxe xBase à moins qu'elle ne soit à l'intérieur d'accolades auquel cas elle est exprimée en syntaxe Perl. Si la condition d'affichage contient un crochet fermé (comme une expression régulière Perl qui inclut des classes de caractères), utilisez des crochets ouverts et fermés doubles pour délimiter la condition (comme dans [[{condition}]]). CallWeb utilise le texte rappelé de la première condition d'affichage qui correspond au contexte. La condition [AUTREMENT] est toujours vraie; elle peut donc avantageusement compléter une liste de conditions.
Si le rappel est suivi d'un tilde (p.ex. &#WORD~), ce caractère sert de délimiteur pour le nom du rappel et il n'est PAS transmis à la page de questionnaire ce qui permet de ne pas avoir d'espace entre le rappel et le texte qui suit le rappel.
Caractéristiques avancées
Les valeurs rappelées sont insérées dans une borne HTML <SPAN> pour leur attribuer le style SUBSTITUT. Ceci peut entrer en conflit avec l'affichage de certaines valeurs rappelées — particulièrement si les valeurs en question sont placées dans des hyperliens. Pour éviter l'ajout du style SUBSTITUT, insérez un tilde (~) entre les symboles de rappel et le nom de la variable, comme ceci :
Dans un script CallWeb, on peut rappeler n'importe quelle variable disponible dans l'environnement Perl (voir l'annexe portant sur les données de contexte, en particulier). La syntaxe de rappel est alors {$variable}. Par exemple, l'en-tête de page suivante afficherait le numéro du dossier :
Les valeurs rappelées peuvent contenir des rappels de valeurs. Par exemple, l'instruction suivante est valide et rappelle la valeur _telkey en utilisant &#TELKEY :
Il y a un autre type de rappel (bien qu'il s'agisse de plus que d'un simple rappel). Toute expression Perl (ici, on n'est pas limité aux noms de variables) peut être affichée, là où des substitutions sont permises, en utilisant la syntaxe suivante :
Grâce à cette syntaxe, on peut afficher le résultat d'un calcul complexe sans avoir à l'enregistrer au préalable dans un champ de question.
Il est aussi possible de calculer le résultat d'un rappel dans une question ou dans une borne EXECUTE. Référez-vous à la fonction « substitue » dans la page portant sur les questions calculées.
Finalement, voici une forme spécialisée de substitution : <crypt>texte</crypt>. Le texte entre les bornes est chiffré en utilisant la fonction obscurcir. Il y a une application particulière de ce type de substitution. Les options accompagnant une adresse de questionnaier CallWeb peuvent être camouflées en utilisant une syntaxe comme celle-ci :
qui produit
Utilisé dans une invitation par courriel, par exemple, CallWeb chiffre la valeur entre les bornes <crypt></crypt> et associe le résultat à l'option d'URL _crypt. Cette option est décompressée par CallWeb pour recouvrer les options et valeurs initiales que le texte chiffré contient. Il est possible de ne chiffrer qu'une partie des options d'URL s'il y a un avantage à ce faire.
Questions calculées
Questions BLANK
Si le mot-clef « BLANK » apparaît sur la ligne de nom de question, alors
Une question BLANK peut comporter une condition d'affichage pour attribuer une valeur conditionnellement à d'autres réponses ou pour réaliser des sauts complexes.
Sauts complexes
Un saut simple associé au premier choix de réponse d'une question BLANK est respecté. Les questions BLANK peuvent être utilisées pour faire des sauts complexes en utilisant la condition d'affichage, c.-à-d., que la logique de saut complexe est placée dans la condition d'affichage alors que la destination du saut est associée à la première catégorie de réponse.
Les sauts complexes peuvent aussi être mis en oeuvre par le biais de questions CALCUL (voir le prochain paragraphe). Dans ce cas, un calcul est effectué; il retourne une valeur dans la même question (par exemple, mais ce n'est pas nécessaire, en autant qu'il existe une valeur dans la question CALCUL pour contrôler le saut); et les catégories de réponses sont associées à un saut simple. Par exemple, en utilisant une variable de contexte, le code suivant vérifie l'heure et ajuste de flot du questionnaire en conséquence :
Questions CALCUL
Si le mot-clef « CALCUL » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le texte de la question se conforme à la syntaxe suivante :
Cet énoncé retourne le résultat de l'évaluation de « expression_perl » dans « variable_de_sortie ». L'« expression_perl » doit respecter la syntaxe Perl et les noms de questions doivent être précédés d'un signe de dollar ($). Référez-vous au questionnaire de l'ÉchantiCalc du Réseau Circum; il fournit plusieurs exemples de calculs.
Quelques fonctions spéciales peuvent être utilisées dans une question CALCUL pour prendre en charge des besoins spécifiques aux sondages. On retrouve entre autres les suivantes :
BOUTON CALCULE
Il est parfois utile de faire un calcul mathématique sur une page, comme faire le total d'une série de réponses numériques et afficher le résultat. On peut faire cela en ajoutant un bouton à la page; ce bouton fera les opérations programmées dans une question CALCUL et réaffichera la même page, où un rappel de valeurs pourrait afficher les nouvelles informations.
Syntaxe de BOUTON CALCULE :
<COMPUTE BUTTON>QUESTION_CALCUL, texte</COMPUTE BUTTON>ou<BOUTON CALCULE>QUESTION_CALCUL, texte</BOUTON CALCULE>
QUESTION_CALCUL est le nom de la question CALCUL déclenchée par le bouton. Le texte qui suit QUESTION_CALCUL et une virgule est affiché sur le bouton. Si le texte est le nom d'un fichier (d'image), cette image est utilisée pour afficher le bouton. Dans ce cas, un troisième segment peut comporter le texte ALT de l'image. Une quatrième portion, toujours délimitée par une virgule, peut contenir le mot-clef NOTEST pour s'assurer que le calcul sous le bouton soit effectué même si les données sur la page ne se conforment pas aux tests normaux de validation.
Par exemple, le code suivant :
affiche le tableau suivant :
Note : d'autres logiciels de sondage Web utilisent JavaScript pour de telles opérations; pour être cohérent avec la philosophie de CallWeb, aucun JavaScript n'est utilisé pour programmer les BOUTON CALCULE. De plus, les opérations déclenchées par BOUTON CALCULE sont laissées au libre choix du concepteur du questionnaire (p.ex., total, somme des produits, extraction de données, manipulation de chaîne de caractères) puisqu'elles sont encapsulées dans une question CALCUL qui peut faire n'importe quelle opération et modifier plusieurs champs d'un seul coup.
La condition d'affichage de la question CALCUL déclenchée par le bouton est respectée.
Questions RANDOM
RANDT est obsolète. Veuillez utiliser la fonction random_integer décrite plus haut.
Si le mot-clef « RANDOM » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le reste de la question se conforme à l'une des syntaxes suivantes :
La fonction RANDT retourne, dans « variable_de_sortie », un entier aléatoirement choisi entre 1 et « nombre » ou la valeur de la question « variable_d_entree ».
Commenter un script
Il est souvent utile d'ajouter des commentaires dans les scripts CallWeb pour fournir des explications sur les intentions du concepteur. Les solutions utilisées pourraient ne pas être aussi éloquentes pour un autre concepteur appelé à modifier un script.
Il peut y avoir deux catégories de commentaires dans un script CallWeb :
Voici les positions reconnues de commentaires imprimables :
Notez que les commentaires imprimables ne sont compatibles ni avec cwedit.cgi, ni avec la syntaxe de copie qui utilise un signe égale (=).
Structure du questionnaire
Un questionnaire CallWeb de base contient une série d'instructions qui définissent des questions et des variables. Une autre jeu de commandes définit la structure du questionnaire. Ces instructions sont placées dans le fichier de questionnaire et sont caractérisées par le fait qu'elles débutent par une signe dièse (#). Chacune de ces instructions doit se retrouver sur une seule ligne dans le fichier de questionnaire (une instruction dièse par ligne; une ligne par instruction dièse).
Pages
Par défaut, CallWeb place une question par page de navigateur. L'instruction # ECRAN change ce comportement par défaut. Elle utilise la syntaxe suivante :
Limites : on ne peut pas faire de sauts à l'intérieur d'une page. De plus, les sauts simples sont respectés seulement à la dernière question de la page. De plus, les questions de types BLANK et CALCUL ne peuvent pas fonctionner à l'intérieur d'une page; leur utilisation dans un page est interdite; elles devraient donc être placées entre les pages définies par des instructions ECRAN.
Tableaux
Par défaut, CallWeb place une question par page de navigateur. L'instruction # MATRICE change ce comportement par défaut. Quand une série de variables appartiennent à un tableau :
La syntaxe de l'instruction « # MATRICE » est la suivante :
Note importante : par définition, les tableaux sont définis dans des pages; donc, les questions composant un tableau doivent être placées dans la même page avec une instruction # ECRAN.
Les instructions suivantes montrent un exemple qui inclut page, tableau et permutation :
Permutation de questions
Par défaut, CallWeb affiche les questions dans l'ordre dans lesquelles elles sont définies dans le questionnaire. Cet ordre peut être affecté par des sauts simples et par des sauts complexes. Il peut aussi être rendu aléatoire par la permutation de questions.
CallWeb utilise l'instruction # PERMUTATION pour définir des ensembles de questions consécutives qui sont présentées en ordre aléatoire. La syntaxe est la suivante :
Dans l'exemple suivant,
Q6 vient toujours après Q5, tout comme Q8 par rapport à Q7 et Q10 par rapport à Q9. Cependant, les trois paires sont présentées en ordre aléatoire aux participants, comme :
Seulement deux questions, choisies au hasard dans la série Q5 à Q10, sont affichées, dans un ordre aléatoire.
Seulement deux blocs de deux questions, choisis au hasard dans la série Q5 à Q14, sont affichées. Ce pourrait être Q7-Q8 et Q11-Q12, par exemple.
Les conditions d'affichage affectent quelles variables sont affichées à travers tout le questionnaire, y inclus dans les permutations.
Permutations parallèles
Il est parfois nécessaire que l'ordre de présentation d'une seconde série de questions soit le même que celui d'une première série de questions permutées. Le paramètre COMME= prend ceci en charge; il fournit le nom d'une première permutation qui contrôle la seconde, dans laquelle est placé le paramètre COMME. Par exemple :
La permutation P2 sera présentée dans le même ordre que la permutation P1. Notez que les paramètres COMME n'ont pas préséance sur les paramètres PAS et LIMITE. Par contre, le nombre de questions dans les deux permutations doit être le même. Des conditions d'affichage différentes peuvent s'appliquer et affecter le nombre de questions affichées dans un questionnaire donné mais l'ordre de présentation des questions affichées sera le même que dans la permutation contrôlante.
Permutations à l'intérieur de permutations: imbriquer les permutations à l'infini
Toutes les caractéristiques décrites ci-haut peuvent être utilisées dans des permutations qui sont effectuées à l'intérieur de permutations. Par exemple, dans les définitions suivantes :
Les questions d'une permutation ne peuvent pas chevaucher des blocs d'une permutation extérieure, De plus, une permutation ne peut pas inclure des questions qui font partie d'une permutation extérieure et d'autres qui n'en font pas partie.
Note : l'imbrication de permutations fonctionne seulement si les noms des permutations sont choisis de sorte que, dans chaque cas, la permutation extérieure est placée avant la permutation intérieure dans l'ordre alphabétique des noms de permutations
L'imbrication de permutations ne connaît pas de limite (p.ex., permutations dans des permutations dans des permutations dans des ...).
Projets hiérarchiques
Habituellement, toutes les données d'un projet sont conservées dans une seule base de données CallWeb. Parfois, cependant, une structure de données plus complexe est appropriée. Pensons par exemple à une étude sur l'emploi dans les familles. Une partie du questionnaire porterait sur le ménage; une autre viserait de l'information sur chaque membre du ménage. Bien sûr, il est possible de créer suffisamment de blocs de questions pour accomoder le plus grand ménage possible, mais cette approche pourrait ne pas être la plus efficiente sur le plan de la collecte de données. C'est plutôt un cas adapté à une structure hiérarchique.
Dans les projets hiérarchiques, un projet CallWeb maître agit comme base de données parent (dans notre exemple, ce projet viserait le ménage). Un ou plusieurs projets CallWeb « enfants » sont reliés au projet maître pour permettre autant de « relations » avec les enfants que nécessaire. Dans notre exemple, chaque membre du ménage constituerait un enfant du projet maître portant sur le ménage. Chaque relation enfant est un projet CallWeb différent; il peut y avoir autant de relations de ce type dans un projet et les projets enfants peuvent eux-mêmes avoir des projets enfants. Par exemple, un ménage pourrait comporter plusieurs membres et chaque membre pourrait avoir plusieurs emplois.
Syntaxe
Les projets hiérarchiques sont définis par des questions de type RELATION.
Informations utiles
Interface usager pour le participant
En atteignant une question RELATION, le participant voit un bouton « Ajouter » et un bouton « Mettre à jour ». En réponse à un clic sur le bouton « Ajouter », le système ouvre un questionnaire enfant; à la fin du questionnaire enfant, le système réaffiche le questionnaire parent avec un tableau décrivant l'enfant ou les enfants. Dans ce tableau, un lien permet au participant de modifier un dossier enfant ou de l'effacer. Ce tableau affiche aussi de l'information sur chacun des enfants en utilisant le texte des questions et des réponses que l'on trouve dans le projet enfant. Un autre texte peut être affiché pour les questions et les catégories de réponse en plaçant ce texte alternatif dans les segments appropriés du questionnaire enfant entre des bornes <parent></parent>. Par exemple,
*1*Ceci est le texte de la catégorie 1 <parent>Catégorie 1</parent>
afficherait « Ceci est le texte de la catégorie 1 » dans le questionnaire enfant mais afficherait « Catégorie 1 » dans le rableau récapitulatif dans le parent.
Extraire de l'information des dossiers enfants
Les données enfants sont enregistrées dans un projet CallWeb séparé du projet parent. Néanmoins, il est possible d'extraire de l'information du projet enfant et d'utiliser cette information dans le questionnaire parent.
La fonction apropos_relations peut être utilisée dans des questions CALCUL pour faire des extractions. La syntaxe générale de cette fonction est comme suit :
Le tableau suivant détaille les types de données disponibles et les paramètres qui leur sont associés.
Interruption
Un bouton donnant aux participants la capacité d'interrompre le questionnaire peut être ajouté à toutes les pages du questionnaire avec l'instruction # BOUTON STOP. Par défaut, # BOUTON STOP est désactivée :
Pour afficher un bouton d'interruption, donnez à l'instruction la valeur « oui » et, après une virgule, ajouter le nom de la question vers laquelle le participant sera redirigé sur interruption, comme dans :
Cette instruction force l'affichage du bouton d'interruption sur chaque page du questionnaire. Si le participant clique sur ce bouton, il sera redirigé vers la question Q99 mais, s'il revient au questionnaire plus tard, il recommencera à la page atteinte lorsque l'interruption a été demandée.
Le bouton STOP button peut aussi être affiché conditionnellement sur la base d'une condition d'affichage placée en lieu et place du Oui, entre crochets. Par exemple :
affiche le bouton STOP seulement si QTYPE egale 1.
Le concepteur de questionnaire a le contrôle sur ce qui se passe sur la page vers laquelle l'interruption est redirigée. Ce pourrait être une page sans bouton (BACKWALL, CULDESAC et NOSTOP) affichant quelque message ou l'URL requis pour revenir dans le questionnaire. Ce pourrait être une série de questions calculées qui enverraient un courriel au participant avec des instructions. Ce peut être tout ce que CallWeb sait faire grâce à ses caractéristiques et questions.
Le texte du bouton d'interruption est contrôlé par l'instruction # TEXTE STOP. Chaque langue du questionnaire peut avoir son texte, comme dans :
Le bouton d'interruption peut aussi être une image. Référez-vous à l'instruction # IMAGE STOP.
Quoiqu'un bloc de questions STOP est souvent utilisé pour arrêter un questionnaire à un endroit différent d'où le questionnaire sera repris ensuite, il peut aussi être utilisé pour atteindre une série de questions spéciales depuis n'importe où dans le questionnaire et revenir ensuite dans le cheminement normal. Pour réussir ce tour de force, il faut ajouter une instruction # Bouton stop, brancher vers une zone isolée du questionnaire et terminer le bloc avec une question de type DESTOP. Celle-ci retourne à la question depuis laquelle le bouton STOP a été invoqué.
Apparence du questionnaire
L'apparence du questionnaire est contrôlée par trois sources d'information : un fichier de styles, plusieurs instructions dièses et des paramètres fournis dans le questionnaire même.
Structure de la page et gabarits
À son plus simple, la page de questionnaire CallWeb (voir l'exemple plus bas) est une construction verticale qui comporte les pièces suivantes :
Cette structure linéaire et les instructions dièses qui lui sont attachées permettent de créer une grande variété de questionnaires d'apparence différente et de créer des pages sur mesure. Demeurant relativement simple, cette structure est toutefois contraignante : elle ne peut être que d'orientation verticale et l'intégration de visuels d'autres sources (p.ex., un site Web corporatif) est ardue et limitée. L'instruction # Gabarit se défait de la contrainte de composition verticale du questionnaire.
Structure contrôlée par un gabarit
L'instruction # Gabarit fournit une seconde méthode de composition de la page de questionnaire. Elle identifie le nom d'un fichier HTML à partir duquel la page de questionnaire est composée. Ce fichier HTML pourrait par exemple être une copie d'une page type du site Web d'une organisation ou une structure normalisée de site Web (p.ex., les pages de normalisation des sites Web du Gouvernement du Canada). Dans cette page HTML, on dispose des marqueurs que CallWeb substitue par des morceaux de pages de questionnaires. Les marqueurs reconnus sont les suivants :
Ces marqueurs peuvent être placés n'importe où dans la page HTML de gabarit. Ceci permet, par exemple, de placer un bouton de recul à la page précédente à gauche des questions et un bouton d'avance à droite. Aucun de ces marqueurs n'est obligatoire et les marqueurs peuvent être répétés (p.ex., il peut y avoir plusieurs marqueurs &*BOUTONSH:...)
Note technique : la page de gabarit doit être composée en tenant compte que le questionnaire est produit depuis le répertoire racine de l'instance de CallWeb. En conséquence, les liens vers les objets (p.ex., images, styles, hyperliens) doivent être relatifs à ce répertoire racine (ce qui est plus flexible) ou être absolus (ce qui est plus simple).
Mise en forme du texte
CallWeb s'attend à trouver un fichier de styles appelé « style.css » dans le répertoire du questionnaire; en son absence, CallWeb utilise le style.css qui se trouve dans le répertoire des ressources (habituellement gr/), et finalement dans le répertoire racine de l'installation CallWeb. L'instruction # Stylesheet peut aussi être utilisée pour préciser le nom d'un fichier de style dans un projet particulier.
Pour obtenir l'apparence officielle de CallWeb, on place ce fichier de style dans le répertoire gr/ et les instructions suivantes dans le fichier etc/usager.conf :
L'explication de la syntaxe des styles dépasse le propos de ce manuel; plusieurs bonnes références sont disponibles, de même que plusieurs sites Web. (http://www.w3.org/TR/REC-CSS1 est une référence clef.) Le fichier de styles doit contenir certains styles de base utilisés par CallWeb et peut en définir davantage.
Styles CallWeb (notez que la capitalisation des noms de styles compte dans certains navigateurs et que CallWeb utilise des noms en majuscules) :
Styles facultatifs :
Autres styles :
Couleurs et disposition
Plusieurs instructions dièses contrôlent la mise en page de nombreux aspects de l'apparence du questionnaire. Une autre page de cette documentation identifie les composantes de la page qui sont contrôlées par les styles.
Toutes les sorties en forme de tableaux (les tableaux et les questions MEMO dans les questionnaires mais aussi les tableaux de paramètres dans les modules utilitaires, l'affichage des dossiers dans cwnav, les tableaux dans cwfreq, etc.) sont produits à partir du même protocole. Ce protocole utilise les instructions dièses enregistrées dans le questionnaire pour mettre ces tableaux en forme. Si le questionnaire ne contient pas d'instruction pour un aspect particulier de la sortie en tableau, CallWeb utilise un défaut d'installation enregistré dans le répertoire de configuration. En l'absence d'instructions à cet endroit, des défauts s'appliquent.
Couleurs avancées et mise en forme
Il est possible de contrôler plus finement la mise en forme des questions en tableau en utilisant un fichier de styles. Pour activer ce mode avancé, il faut le demander avec l'instruction dièse suivante :
# Styles pour matrices = oui
Dans ce mode, le format des cellules de tableaux est contrôlé par une collection de styles plutôt que par les instructions dièses illustrées ci-haut. L'image suivante documente quel style contrôle quelle cellule. Les lignes de texte qui suivent l'image décrivent les énoncés utilisés dans le fichier style.css (notez que tous les noms de styles sont en majuscules).
.ORDINARY_CELL_A, .ORDINARY_CELL_A0, .ORDINARY_CELL_A1 { background: #E4EDF9; } .ORDINARY_CELL_A2 { background: #F9FAFF; } .ORDINARY_CELL_B, .ORDINARY_CELL_B0, .ORDINARY_CELL_B1 { background: #FFFFFF; } .ORDINARY_CELL_B2 { background: #CCCCCC; } .SPECIAL_COLUMN0 { background: #FFFFFF; } .SPECIAL_COLUMN1 { background: #FFFF66; } .SPECIAL_COLUMN2 { background: #CCFF00; } .SPECIAL_LINE_A0 { background: #FFFFFF; } .SPECIAL_LINE_B0 { background: #CCCCCC; } .SPECIAL_CELL1 { background: #FFFFCC; } .SPECIAL_CELL2 { background: #CCFF99; }
Voici comment le tout fonctionne :
Cas particuliers : mise en forme dans le questionnaire
Taille d'une boîte de partie ouverte
On a indiqué ailleurs que la syntaxe de définition d'une partie ouverte alphanumérique est :
En fait, deux autres arguments sont disponibles :
Codage HTML
Dans le texte de la question, la note et le texte des catégories de réponses, tout comme dans plusieurs instructions dièses comme # ENTETE et # PIED, il est possible d'inclure du code HTML standard. De cette façon, des tableaux HTML peuvent être utilisées pour aligner des parties de texte, des hyperliens peuvent être insérés, des images peuvent être affichées, etc.
Produits finis
Voici quelques exemples d'apparences que les pages CallWeb peuvent avoir. Bien sûr, ce n'est pas une série exhaustive des apaprences possibles.
Gestion
La gestion d'un projet CallWeb inclut une série d'opérations qui sont représentées dans la figure suivante, de pair avec l'outil qui est réservé à chaque étape. Nous prenons pour acquis que le gestionnaire de projet connaît l'édition de texte (nous aimons beaucoup TextPad) et les transferts FTP (bien que le module cwdocs permet maintenant de se passer d'outil de transfert de fichiers).
Le reste de cette section décrit les cinq étapes de la gestion d'un projet: l'initiation d'un projet, les modifications en cours de collecte de données, la micro-gestion des données, la production de tableaux en temps réel et l'extraction de données.
Gestion des permissions
Tous les accès administratifs à CallWeb sont contrôlés par un jeu de permissions fondées sur les différents modules et les différents projets. L'accès aux questionnaires par les participants et aux modules d'entrevue CATI par les interviewers n'est PAS sujet à ce système de permissions.
Si aucune permission n'est définie (comme lors de l'utilisation initiale du système), le gestionnaire de site doit appeler le module cwperm.cgi dans le répertoire d'utilitaires et définir un super-utilisateur (voir la définition plus bas). Ce super-utilisateur peut ensuite créer d'autres utilisateurs selon les besoins du site.
Concepts clefs
Il y a deux types d'utilisateurs : les super-utilisateurs et les utilisateurs ordinaires. Les super-utilisateurs ont accès à toutes les ressources et sont les seuls qui peuvent utiliser cwperm.cgi pour créer des usagers et modifier des permissions. Les utilisateurs ordinaires ne peuvent entreprendre que les tâches pour lesquelles ils ont reçu la permission de la part d'un super-utilisateur.
Il y a six types de permissions, comme suit :
Les utilisateurs sont temporairement tenus à l'écart du système s'ils accumulent trois accès incorrects au cours d'une période de deux minutes.
Fonctions de gestion des permissions
Une fois qu'un super-utilisateur a accédé à cwperm.cgi (soit directement ou par le biais du module intégré), il obtient un menu similaire à celui qui est représenté ici. Les fonctions suivantes sont alors disponibles :
Stratégies de gestion des usagers
Davantage à venir.
Module intégré
Un module appelé cw, situé dans le répertoire des utilitaires, fournit un menu d'accès à tous les modules CallWeb disponibles dans le même répertoire (et au module callweb.cgi situé un niveau plus haut dans la hiérarchie des répertoires.
Il est hautement recommandé d'utiliser ce module pour accéder aux autres programmes CallWeb puisque les différents paramètres et options y sont affichés (pas besoin de taper, pas de risque d'oublier des arguments).
Les utilitaires situés dans le répertoire principal des utilitaires (défini dans le fichier d'installation) ont accès à tous les projets CallWeb. Pour créer une instance d'un programme utilitaire ayant accès à un sous-ensemble des projets, suivez la procédure expliquée dans le livre de recettes CallWeb.
Démarrage d'un projet
Instructions dièses requises
En plus de la définition des questions, un questionnaire CallWeb doit include les trois instructions dièses suivantes :
Installation physique d'un script de questionnaire
L'installation physique d'un projet CallWeb exige que le script de questionnaire :
Chaque projet CallWeb crée les fichiers suivants :
Compilation du questionnaire
Une fois qu'un questionnaire est suffisamment complet (n'importe quand, en fait, et toujours sujet aux tests et aux modifications) et téléchargé vers le serveur Web, le module cw est utilisé pour activer diverses fonctions.
La compilation exige le nom du script et offre six options :
La compilation produit beaucoup d'information qui devrait être étudiée en détail. Les erreurs de compilation sont mises en évidence grâce au style ERREUR qui se trouve dans le fichier style.css; elles sont reprises au haut du rapport de compilation.
Si des erreurs de compilation sont identifiées, aucun changement n'est apporté au questionnaire compilé ou à la base de données de réponses.
La compilation peut produire des « avertissements ». Les messages d'avertissement sont des observations d'un intérêt particulier qui ne sont pas à proprement parler des erreurs mais qui pourraient être considérées problématiques. Ils incluent :
Comparaison de questionnaires
cwcompare permet d'identifier les changements structurels intervenus entre deux versions du même questionnaire. Les deux versions doivent être compilées et résider sur le même serveur. cwcompare ne compare pas le texte des questionnaire — seulement les aspects structurels (sauts, types de questions, etc.).
Prépopulation de données
Une fois le questionnaire compilé sans erreur, des données peuvent être placées dans la base de données. On appelle cette opération « prépopulation ». Cette opération est nécessaire pour créer des codes d'accès lors de collectes de données à accès contrôlé. La prépopulation peut aussi être utilisée pour insérer de l'information à propos des personnes qui compléteront le questionnaire, dans un contexte d'accès contrôlé; ces données peuvent ensuite être utilisées au cours de la collecte de données.
La prépopulation peut être effectuée sur une base de données vide ou dans une base de données qui contient déjà des dossiers.
Les données de prépopulation sont contenues dans un (ou plusieurs) fichier(s) comportant les caractéristiques suivantes :
Ce fichier doit être téléchargé vers le serveur Web et placé dans le même répertoire que le script de questionnaire pour le projet.
Pour préserver les valeurs prépeuplées dans toutes les circonstances (incluant la réinitialisation d'un dossier), utiliser le mot-clef NEVERUPDATE sur la ligne du nom de la question dans laquelle les données sont prépeuplées.
À partir de l'interface intégrée cw, cwprepop peut être appelé en sélectionnant le nom du projet et le nomdu fichier text délimité-tab à partir des listes déroulantes.
Le module cwprepop peut aussi être utilisé pour ajouter (ou remplacer) des données dans des dossiers existants si la puce « remplacer des variables » est sélectionnée plutôt que la puce « ajouter des dossiers ». Dans ce contexte, une valeur de « -- » ne remplace pas la valeur pré-existante.
Production de données tests aléatoires
Une fois le questionnaire compilé sans erreur, des données tests peuvent être produites aléatoirement pour vérifier que les conditions logiques du script fonctionnent comme prévu. Le module cwgen se charge de cette fonction. Il peut fonctionner de deux manières :
Chaque question du questionnaire est analysée pour chaque cas et une réponse aléatoire est sélectionnée, tant pour les questions fermées que pour les parties ouvertes. Les sauts, les calculs, les questions sans réponse, etc., sont honorées; les tests matriciels et les instructions dièses Test ne le sont pas — une liste des tests non effectués est produite à la fin de l'opération.
CallWeb met fin à la production de données aléatoires si le questionnaire apparaît coincé dans une boucle infinie.
Gestion des fichiers
Le module cwdocs de CallWeb permet de gérer vos fichiers de projets sur le serveur sans programme de transfert FTP ou SFTP. Comme tout autre module CallWeb, cwdocs est une application entièrement Web qui ne requiert aucune installation locale.
Avec ce module, les usagers peuvent créer, effacer, copier, renommer et déplacer des répertoires. Il peuvent aussi téléverser, télécharger, effacer, copier, renommer et déplacer des fichiers. (À venir: l'effacement vers une corbeille.)
Les considérations de sécurité étaient omniprésentes lors de l'écriture de ce module. Les utilisateurs sont emprisonnés dans l'instance. Si cwdocs est appelé d'un répertoire autre que le répertoire utilitaire maître, les utilisateurs sont emprisonnés dans ce répertoire. Les utilisateurs ne voient que les fichiers qui peuvent raisonnablement être gérés depuis une application Web. Ils ne peuvent pas changer les permissions des fichiers et des répertoires.
cwdocs ne peut modifier ou effacer que les répertoires et les fichiers qui sont accessibles à l'utilisateur sous lequel le serveur Web fonctionne. En conséquence, il est possible que les utilisateurs de cwdocs ne pourront pas, par exemple, effacer des fichiers et répertoires qui auraient été créés par d'autres utilisateurs Linux. C'est le coût de la sécurité.
Quand un usager crée un répertoire dans la racine de l'instance de CallWeb, l'accès à ce répertoire est ajouté aux permissions de l'usager en question. Cependant, cette permission d'accès n'est pas révoquée dans l'éventualité où ce répertoire serait effacé; elle le serait si un super-utilisateur resauvegardait les permissions de l'usager dans le module de gestion des permissions.
Vous accéderez à cwdocs à partir d'un nouvel icône placé dans le coin supérieur droit du module intégré.
Gestion des quotas
CallWeb supporte des quotas de questionnaires complétés sur la base de stratifications à une seule caractéristique (p.ex., le sexe) ou à plusieurs caractéristiques (p.ex., le sexe dans des catégories d'âge) ou de stratifications additives (p.ex., un jeu de quotas sur le sexe et un autre jeu de quotes sur des catégories d'âge). L'appartenance à une strate peut être basée sur des données prépeuplées ou sur des données recueillies en cours de questionnaire ou sur une combinaison de ces deux sources. Les cibles des quotas peuvent être modifiées en tout temps au cours de la collecte de données. Quand un quota est rempli, les participants de cette strate sont redirigés à l'intérieur du questionnaire, ce qui offre au concepteur de questionnaire le contrôle total sur la gestion de cette situation.
Les strates et les quotas sont définis dans un type de question spécial : le type QUOTA. Une question est de type QUOTA si le mot-clef « QUOTA » apparaît sur la ligne du nom de la question dans le script. La syntaxe du texte de la question est comme suit (dans cette syntaxe, les virgules et les signes d'égalité sont significatifs) :
Les ingrédients de cette définition de quotas sont comme suit :
L'appartenance à une strate est déterminée par la valeur stockée dans la variable QUOTA. Par exemple, si la variable de QUOTA contient un 4 dans un dossier particulier, ce dossier appartient au quota numéro 4. Les catégories de réponse des questions QUOTA peuvent être définies (et étiquetées), mais ce n'est pas obligatoire. Si elles sont définies, les étiquettes sont utilisées par les modules de rapports.
Un quota particulier est considéré complété quand le nombre de cas contenant une valeur plus grande que zéro dans la variable Complete est égal ou supérieur à la cible identifiée dans la question QUOTA pour cette strate.
Les questions QUOTA sont sujettes aux conditions d'affichage : le critère de quota peut être activé seulement si la condition d'affichage est vraie.
Plusieurs questions QUOTA peuvent être utilisées dans un questionnaire; elles sont utilisées si et quand le flot du questionnaire les rejoint. Donc, un premier jeu de quotas peut être imposé sur la base d'une première caractéristique tôt dans le questionnaire, ou basé sur des données prépeuplées, et un second jeu de quotas pourrait être activé plus tard, peut-être sur la base de données recueillies en cours d'entrevue ou de données calculées.
Les contraintes suivantes s'appliquent aux questions QUOTA :
Invitations par courriel
Le module cwemail permet d'envoyer des invitations et des messages de rappel par courriel. Il utilise une question comme gabarit; celle-ci peut inclure des rappels de valeurs enregistrées dans la base de données (probablement par prépeuplement). Ce module offre des outils permettant la sélection de sous-ensembles de dossiers selon n'importe quelle donnée de la base de données ou selon des plages de positions dans la base de données. Il est donc possible, par exemple, d'envoyer une invitation initiale à tous les participants, dans leur langue préférée, en incluant un code d'accès personnalisé, et de faire suite une semaine plus tard auprès des participants qui n'ont pas encore commencé le questionnaire en incluant un message motivationnel qui pourrait être différent de celui qui serait adressé aux personnes qui ont commencé mais non complété le questionnaire.
L'envoi de courriels est basé sur une variable spéciale contenant le titre du message et le texte du message à envoyer. Les règles suivantes s'appliquent :
Les informations suivantes sont nécessaires à l'envoi de messages par courriel :
Interactivement, il est possible de simuler l'envoi de courriels : les messages sont affichés à l'écran mais ils ne sont ni envoyés, ni enregistrés dans la base de données.
Gestions des messages en rebond
Grâce à l'instruction # Send bounces to, les messages en rebond peuvent être envoyés à une adresse au choix du concepteur ou au module cwbounces.pl qui inscrit ces rebonds dans la base de données CallWeb. Pour activer cwbounces.pl, suivez les instructions suivantes :
Livraison automatique de messages par courriel
Utilisant les paramètres des instructions # Auto email, CallWeb peut balayer les données d'un projet sur une base régulière (par exemple, toutes les heures) pour identifier les dossiers qui correspondent à une certaine condition et pour leur envoyer un message. La mise en page du message lui-même et l'utilisation des rappels suivent les règles présentées plus haut. La syntaxe générale de cette instruction est la suivante (note : les signes d'égalité et les virgules sont des délimiteurs; utilisez-les comme décrit dans l'exemple) :
Voici un exemple réel :
Un projet CallWeb particulier peut contenir plusieurs instructions d'envoi automatique (assurez-vous que chacune vise des dossiers différents) pour envoyer des messages spécifiques visant des situations différentes (qui sont identifiées par l'énoncé de sélection des dossiers).
Des capacités limités de substitution existent dans le cas de la clause « selection » — utilisant essentiellement les données de contexte. Par exemple, pour déclencher un message le 1er janvier 2009, la condition suivante pourrait être utilisée :
Administration du questionnaire
Une fois le questionnaire compilé — et les données prépeuplées si nécessaire — des participants potentiels peuvent être invités à répondre au questionnaire. Il y a plusieurs façons d'accéder à un questionnaire. Quelques-unes sont présentées ici.
La méthode la plus transparente pour accéder à un questionnaire CallWeb est par une instruction Web comme la suivante; elle s'applique à un questionnaire totalement ouvert et à un questionnaire où les participants doivent saisir leur code d'accès :
Si un code d'accès est nécessaire pour ouvrir le questionnaire (voir l'instruction dièse # Type enquete), l'instruction précédente peut être utilisée (et le système demandera de saisir le code d'accès) ou alors l'instruction peut intégrer le code lui-même, comme suit :
Si le questionnaire doit débuter ailleurs qu'à la première question (pour un questionnaire vide) ou qu'à la dernière question vue (pour un retour dans un questionnaire déjà ouvert), l'URL peut contenir un point d'entrée spécifique, comme suit :
Une annexe à cette documentation documente toutes les options d'URL disponibles à l'appel d'un questionnaire.
L'instruction pour accéder à CallWeb peut être camouflée dans une page statique (en utilisant un formulaire ou un hyperlien ou une redirection comme go.97.ca ou un script Web sur mesure).
Syntaxe d'URL extrêmement courte
CallWeb offre aussi une syntaxe d'URL extrêmement courte qui aide à ce que les liens ne soient pas découpés en deux ou plusieurs lignes dans des messages d'invitation. La syntaxe est comme suit :
ou
si aucun code d'accès n'est requis et que le questionnaire débute à la première question ou à la dernière question vue.
En fait, même le paramètre de langue est optionnel; en son absence, la langue par défaut définie dans le script de questionnaire est utilisée. Notez que CallWeb utilise, comme paramètre de langue, la première valeur contenant deux (et seulement deux) lettres (de sorte que, si le nom du projet ou le _telkey ou la question _debute est un code à deux lettres, le paramètre de langue doit être précisé et doit venir avant l'autre code à deux lettres). Les autres paramètres doivent être spécifiés dans l'ordre défini ci-haut.
En autant que le serveur Web soit configuré pour ce faire, il est aussi possible de ne pas faire référence au module CallWeb (en termes familiers aux utilisateurs d'Apache, en faisant de callweb.cgi une entrée de DirectoryIndex) et de créer des liens aussi courts que :
Field management
Modifications à un projet
N'importe quelle modification peut être faite à un questionnaire durant la gestion d'un projet, sans interrompre la collecte de données. Bien sûr, ajouter une question ne fera pas apparaître des réponses dans les questionnaires complétés, mais le système peut se regénérer pour tenir compte des modifications et conserver les données recueillies préalablement.
Une simple compilation est suffisante pour effectuer les changements au questionnaire :
La procédure de compilation mentionne la nécessité d'un changement structurel si un tel changement est requis. Dans ce cas, le changement ne sera effectué que si la case « changement structurel » est cochée dans le module intégré; autrement, la compilation se terminera sur un message d'erreur et aucun changement ne sera apporté au questionnaire ou à la base de données.
Gestion de dossiers
Il est parfois nécessaire d'accéder aux dossiers au cas par cas, que ce soit pour vérifier des réponses, les corriger ou coder des réponses ouvertes. CallWeb offre le module cwnav pour ce faire. L'appel de cwnav (pour Navigation) se fait depuis l'interface intégrée en choisissant un nom de projet dans la zone « Afficher des données ».
Le module cwnav affiche un menu de sélection de dossiers et de sélection de questions à afficher. Si les codes d'accès nécessaires sont fournis, l'interface offre deux méthodes pour effacer des dossiers, trois méthodes pour voir des dossiers individuels et trois méthodes pour éditer des dossiers.
Édition de masse
Le mode d'édition de masse est particulièrement important. Il est activé en en faisant la sélection dans le menu d'options. En mode d'édition de masse, tous les champs affichés de tous les dossiers affichés sont éditables directement, sous la forme d'une grille de données. Ce mode est particulièrement utile pour afficher des réponses ouvertes et une série de variables de codage de ces réponses pour faire l'analyse de leur contenu textuel.
En mode d'édition de masse, si _res (le plus récent résultat d'appel en CATI) est sélectionnée pour édition, une nouvelle ligne apparaît dans le menu. Elle offre la possibilité de changer toutes les valeurs existantes de _res à une nouvelle valeur, parmi les cas sélectionnés. Une liste déroulante des codes _res disponibles est offerte. Si un de ces codes est sélectionné, tous les dossiers appartenant à la sélection de dossiers effectuée et possédant une valeur _res sont modifiés pour adopter ce code.
Si une question à réponses multiples est éditée en mode d'édition de masse, ses différentes valeurs peuvent être séparées par des virgules ou des espaces. Sur réception, CallWeb édite ces données pour utiliser le délimiteur « μ ». Ceci est utile pour faire le codage de questions ouvertes.
Recalculer des questions CALCUL
Le module cwnav permet aussi de recalculer des questions CALCUL (c'est-à-dire, d'effectuer ou de réeffectuer un calcul) sur des dossiers existants. Après avoir fait la sélection des dossiers pertinents en utilisant les menus à cet effet, sélectionnez une question CALCUL depuis la liste déroulante appropriée dans l'interface du module cwnav (cette liste déroulante n'est disponible que si le mot de passe en écriture a déjà été fourni, dans la mesure où un tel mot de passe est défini) et cliquez sur le bouton Action!. Saisissez ensuite le mot-clef « UPDATE » (en majuscules) dans la nouvelle boîte de confirmation et cliquez sur Action! à nouveau.
Note technique : lors du recalcul de questions CALCUL avec le module cwnav, les variables systèmes (dont le nom commence par un trait souligné) faisant partie des données de dossiers (comme _prepops ou _h1) doivent être écrites en majuscules dans les CALCULs (ce qui n'est pas le cas lorsque les calculs sont faits dans le questionnaire). Pour les questions qu'on prévoit utiliser à la fois dans un questionnaire et dans cwnav, on peut utiliser à la fois les noms en minuscules et en majuscules et les relier par une barre « ou » comme dans $_prepops|$_PREPOPS. En Perl, ceci signifie « utiliser $_prepops si elle existe, autrement utiliser $_PREPOPS ».
Attribuer des valeurs sur la base d'expressions calculées
Le module cwnav inclut aussi la possibilité d'attribuer des valeurs à une variable sur la base d'une expression MySQL. Tous les champs de la base de données peuvent être attribués. Tout type d'attribution peut être faite en autant que la syntaxe soit légitime du point de vue de MySQL et en autant que le résultat de l'expression se conforme au type de champ sélectionné comme récepteur. Les règles suivantes s'appliquent :
Par exemple, on peut attribuer à AQ2 une valeur qui est le double de AQ1 avec l'expression suivante : AQ1*2. Un autre exemple : cette même opération pourrait être faite seulement là où AQ2 est plus grand que 10 en faisant la sélection appropriée dans les options du menu.
Ce type de calcul devrait être réservé aux circonstances exceptionnelles puisque son contrôle est sous l'entière responsabilité de l'usager; aucune des procédures habituelles de validation de données de CallWeb ne s'appliquent.
Résultats en temps réel
Le module cwfreq construit des distributions de fréquences, des histogrammes, des tableaux croisés et calcule des statistiques descriptives en temps réel. Il remplit ces fonctions tant sur les données numériques que sur les données alphanumériques. On appelle cwfreq (pour Fréquences) depuis l'interface intégrée en choisissant un nom de projet dans la zone « Construire des tableaux ».
Le module cwnav affiche un menu de sélection de dossiers et de sélection de questions à afficher. Si les codes d'accès nécessaires sont fournis, l'interface offre des liens vers l'édition des dossiers.
Extraction de données
Les données recueillies peuvent être extraites de la base de données CallWeb à tout moment; elles peuvent être mises en forme pour utilisation avec des logiciels populaires d'analyse de données. CallWeb peut créer :
On appelle cwextr (pour Extraction) depuis l'interface intégrée en choisissant un nom de projet dans la zone « Extraire des données ». Le module cwextr comprime les fichiers dans un fichier d'archives .zip. Il envoie ce fichier .zip par courriel à l'une ou plusieurs des adresses identifiées dans l'instruction # Send extractions to et/ou laisse l'extraction sur le serveur. La ou les destinations sont choisies dans l'enterface du module cwfreq.
Dans le mode d'extraction de base à base (qui est commandé dans l'interface intégrée), cwextr copie des données d'une base de données CallWeb directement dans une autre base de données CallWeb. Les bases de données de source et de destination peuvent être sur des serveurs différents mais elles peuvent aussi être dans des instances différentes de CallWeb sur un même serveur ou dans la même instance. Dans ce mode, de nouveaux dossiers peuvent être ajoutés à la base de données de destination et des dossiers existants peuvent être mis à jour en utilisant les données de la base de données source. Il est possible de sélectionner un sous-ensemble des champs pour le transfert mais les champs systèmes (dont le nom commence par un trait souligné) sont toujours transférés. Tous les champs sélectionnés pour le transfert depuis la base de données source doivent exister dans la base de données de destination mais les structures de base de données peuvent différer entre les deux projets CallWeb par ailleurs.
Destruction d'une base de données
Une fois un projet complété et ses données sécurisées par une extraction, le module cwdestruction permet de détruire la base de données elle-même. Le programme exige que le mot-clef « DESTRUCTION » soit saisi pour confirmer les intentions de l'usager. Le mot de passe en écriture doit aussi être fourni s'il exite dans l'instruction # Mot de passe cwNav ecriture.
Ce module est le seul avec cwcompile qui fonctionne même en l'absence d'un fichier de questionnaire compilé. Ceci permet de détruire des données même si le questionnaire a déjà été effacé ou rendu inaccessible.
Il n'y a pas d'autre confirmation de la commande de destruction; il faut donc l'utiliser avec prudence..
Archivage de données
Les données de CallWeb résident dans des bases de données MySQL qui ne sont pas immédiatement accessibles pour les fins d'archivage. Le module cwarchive est responsable de la prise de copies d'archive à intervalle régulier; il place les fichiers .zip d'archives dans le répertoire du projet.
On appelle cwarchives depuis l'interface intégrée. Ce module fait la liste de chacun des projets CallWeb en se fondant sur l'existence de bases de données MySQL. Pour chaque projet, des archives horaires et quotidiennes peuvent être planifiées. On y détermine aussi le nombre de fichiers d'archives horaires et quotidiens à conserver sur le disque dur. Il est possible de saisir une adresse de courriel où les fichiers d'archives seront acheminés.
En combinant ces outils, il est donc possible, par exemple, de faire des copies d'archive à 11 h, 14 h et 18 h en conservant six fichiers d'archives sur disque (ce qui représente deux jours d'archives) et d'envoyer un autre fichier d'archive toutes les nuits hors site par courriel.
La première ligne du tableau de planification de l'archivage définit un comportement par défaut qui s'applique à tous les projets qui ne possèdent pas une planification particulière — de sorte qu'une fois la planification typique définie, il n'est plus nécessaire de penser à activer l'archivage pour chaque nouveau projet.
cwarchive utilise les procédures d'efficacité suivantes :
Le module cwarchive.pl doit être cité dans le répertoire /etc/cron.hourly pour que ce processus démarre à chaque heure. Le texte sur l'installation de CallWeb offre davantage d'information à ce sujet.
Annexe A
Instructions dièses
Les instructions dièses contrôlent divers éléments du comportement de CallWeb. Elles débutent par un dièse (#) qui peut être précédé par des espaces ou des marques de tabulation pour plus de clarté. Une instruction dièse donnée peut être séparée sur plus d'une ligne en commençant la seconde et les suivantes par un dièse suivi d'un signe « plus grand que » (#>); cette combinaison peut être précédé par des espaces ou des marques de tabulation.
* Cette valeur est utilisée par CallWeb à l'interne.
Appendix B
Installation instructions
Server software requirements
CallWeb needs the following to be installed on the server:
Questionnaire designer client station
The following software has proven very valuable in editing CallWeb .scw files:
File locations
System configuration file
The system configuration file and the project configuration files may contain several parameters controlling the in-depth behaviour of CallWeb and its default appearance. Some parameters must be supplied in one file or the other. Mandatory parameters are (parameters are case-sensitive):
The following are mandatory in CATI mode:
The following are mandatory to connect an Asterisk server to CallWeb:
The following are mandatory in robot mode:
The following are mandatory in connecting CallWeb to a predictive dialer:
In a project-specific configuration file, if the MySQL host is redefined, the following entry is mandatory:
Any pound instruction can be inserted in the system configuration file. All such pound instructions found in the system configuration file are inserted at the beginning of all questionnaires upon compilation. This means two things:
In addition, optional configuration parameters include (parameters are case-sensitive):
Automated tasks
A number of tasks are performed automatically by various programs once they are scheduled in the cron feature of a Linux server. They are as follows.
One last script cwbounces.pl is a special case. Its purpose is to intercept bounced messages and to update the CallWeb data base with an indication of this bounce. It is not located in the cron system but rather, it is called by Sendmail upon receiving bounced messages for the "bounces" address. A single instance of this program services an entire server and all instances of CallWeb installed on it. Here are detailed installation instructions:
Note that, for cwbounces.pl to work with a given instance of CallWeb on a server, the following directories and files must be readable by the user or the group "mail" (under which Sendmail runs):
Daemon mode installation
The CallWeb daemon mode is three times as fast as the base mode. In daemon mode, CallWeb runs constantly in the server background, waiting for questionnaire page request files to be placed by cwx.cgi (which replaces callweb.cgi in daemon mode) in the spool directory. The CallWeb daemon processes these request files and places the HTML code of the next questionnaire page in the spool directory for cwx.cgi to display to the respondent.
To use the CallWeb daemon mode, follow the installation instructions and then call the questionnaires with the cwx.cgi module instead of the callweb.cgi module.
CallWeb daemon mode installation instructions:
The CallWeb daemon is started, stopped and restarted with the command service callwebd start|stop|restart. The daemon status can also be probed with service callwebd status. When the "restart" or the "stop" command is issued, the CallWeb daemon waits until the request queue is empty before proceeding with stopping the daemon.
The CallWeb daemon configuration file is /etc/callweb.conf. The CallWeb daemon must be restarted for changes to the configuration file to take effect. Its content is as follows.
Multi-server configuration (CallWeb cluster)
Using the configuration files, it is possible to develop various server implementations of CallWeb. First, CallWeb can run on the same computer as the data base server if the "hote" parameter of the main CallWeb configuration file points locally:
hote = localhost
Another CallWeb server could use the same MySQL server by specifying a distant address for the "hote" in its main configuration file:
hote = 99.99.99.99
If the two CallWeb servers use the same "client" parameters in their main configuration file, both servers will "see" projects from both origins; that would be the typical setup of a multi-site CATI system. If they use different "client" parameters, each CallWeb server will only see its own projects.
Each project used in a multi-server configuration (also called "CallWeb cluster") should possess a # Master compilation server pound instruction to protect the integrity of the questionnaire files. Parallelism of the questionnaire files across servers is ensured by the # Copy questionnaire into instruction which dispatches a copy of the questionnaire (and an empty .scw file) to distant servers (there should be one such instruction for each of the distant servers in the CallWeb cluster which will use the questionnaire). This dispatching of questionnaires requires that a direct SSH connection (with exchange of public keys) exists between the servers; see below for the procedure.
In a multi-server configuration, re-compilation of the .scw script involving changes in data structure should be performed on the computer running the MySQL server. Otherwise, while the compilation will be performed and the data base adjusted if required, no backup of the data will be kept before modifying the data structure.
Note that, for bi-mode projects, the CATI CallWeb server must be the Master for compilation so that the .ccw file is correctly processed.
Exchange of public keys between servers
This procedure must be carried out only once per server connection. In brief, here is the procedure for the exchange of public keys between Linux servers:
Annexe C
Options d'URLs
Il est recommendé d'utiliser le module d'interface intégrée pour accéder aux diverses options de CallWeb (par simplicité). Cependant, il peut y avoir des circonstances où le codage direct des URLs est nécessaire. Le tableau suivant identifie les différents paramètres d'URLs qui peuvent faciliter la création de menus spécialisés.
Options d'URLs pour le module callweb
Les options sont utilisées pour composer des URLs pour appeler CallWeb. De tels URLs pourraient ressembler à ceci : <http://blabla.ca/callweb.cgi?_proj=test&_demo=1&_lq=1&_print=1&_debute=Q1>. CallWeb offre aussi une syntaxe courte pour composer les URLs d'appel de questionnaires.
Annexe D
Changements et ajouts récents
Annexe E
Syntaxe des sorties en tableaux
À l'intérieur de CallWeb, virtuellement toutes les chaînes alphanumériques affichées dans un questionnaire peuvent être mise en page sous forme de tableau qui adopte les couleurs définies dans le questionnaire (voir Couleurs et disposition) grâce à un outil standardisé. Cette méthode facilite la création de tableaux et assure la cohérence de l'apparence du questionnaire. Bien sûr, les différentes méthodes de rappels de valeurs peuvent être utilisées à l'intérieur de ces tableaux.
Pour insérer un tableau dans une chaîne alphanumérique (le segment du texte de la question, par exemple), entourez les instructions de composition du tableau de doubles accolades, c'est-à-dire {{ et }}. À l'intérieur de ces bornes, insérez le texte à afficher en tableau et les instructions spéciales décrites ci-après (le tableau suivant a été créé en utilisant cette méthode).
Le tableau ci-dessus a été créé par les instructions suivantes.
Annexe F
Caractéristiques de sécurité
CallWeb inclut plusieurs couches de caractéristiques de sécurité. Elles sont présentées dans cette section.
Annexe G
Données contextuelles
CallWeb enregistre les données contextuelles suivantes dans la structure %contexte à laquelle on réfère comme suit dans des expressions Perl : $contexte{clef}.
Annexe H
Instruction dièse TEST
L'instruction dièse TEST définit un test logique qui produit un message d'erreur. Cette instruction générale s'ajoute aux tests automatiques de CallWeb comme le test sur les nombres minimum et maximum de réponses, les tests de cohérence de la sélection des réponses, les tests MUST, les conditions de tableaux, etc.
Syntaxe :
Une question donnée peut déclencher plusieurs tests.
Exemples :
Cette instruction affiche un message d'erreur au-dessus du tableau auquel appartient AQ1 si les trois réponses ne totalisent pas 100..
Cette instruction affiche un message d'erreur au-dessus de Q10 si Q5, Q6 et Q7 ont reçu une réponse alors que Q8 et Q9 n'en ont pas reçu. Notez que les questions Q5 à Q9 n'ont pas à apparaître sur la même page CallWeb que Q10..
Annexe I
Messages du système
L'instruction dièse « Message du systeme » redéfinit un message du système pour un questionnaire en particulier.
Au moment d'écrire ces lignes, il y avait 43 messages du système, disponibles en cinq langues : français, anglais, espagnol, allemand et portugais. Une autre langue pourrait être ajoutée en redéfinissant chacun des messages du système et en utilisant le code ISO de langue approprié entre crochets. Le tableau qui suit fait la liste des versions française et anglaise des messages et leur associe le numéro de message utilisé par « # System message ».
Quelques messages incluent de l'information comme les nombres minimum et maximum de réponses, ou les valeurs minimale et maximale permises, ou une marque de pluriel. Ces éléments sont indiqués dans les messages en utilisant un numéro de rang entre crochets. Assurez-vous de ne pas les oublier dans vos versions des messages et de les placer au bon endroit pour la langue choisie. Utilisez les versions française et anglaise qui suivent comme gabarit pour le placement de ces marqueurs de remplacement.
Annexe J
Variables systèmes
Dans les modules utilitaires comme cwfreq et cwnav, toutes les listes de variables, de questions et de champs commencent par une série de noms débutant par un trait souligné (comme _telkey et _date); ce sont les variables systèmes disponibles dans tous les projets CallWeb. La signification de ces variables systèmes est expliquée dans le tableau suivant.
Annexe K
Pondération (obsolète)
Une question WEIGHT calcule une pondération sur la base de la distribution marginale connue de quelque variable; elle utilise un algorithme de pondération marginale (rim weighting) proposé initialement par Deming et Stephan (W. Edwards Deming et Frederick F. Stephan, « On a Least Squares Adjustment of a Sampled Frequency Table When the Expected Marginal Totals are Known », The Annals of Mathematical Statistics, volume 11, no 4, décembre 1940, pp. 427-444). Cette pondération est enregistrée dans la partie ouverte de la variable WEIGHT. Elle peut être extraite ou utilisée dans le module cwfreq pour créer des tableaux de fréquences pondérées.
Les instructions de pondération sont placées dans le segment du texte de la question. Chaque question de pondération y est indiquée, suivie du poids pour chaque catégorie de la réponse séparées par des barres obliques et ordonnées selon l'ordre numérique des catégories. Les questions sont séparées par des virgules. Voici une exemple de cette syntaxe :
QWEIGHT WEIGHT%QSEXE=0.5/0.5/0QLANGUE = 0.80 / 0.08 / 0.12 / 0 / 0
Le calcul des pondérations s'appuie sur les options (cwnav) suivantes :
Les règles suivantes sont utilisées :
Les poids sont calculés dans le module cwnav en sélectionnant une variable WEIGHT dans la liste déroulante affichée après que le mot de passe en écriture ait été saisi.
Les poids sont utilisés dans le module cwfreq en sélectionnant une question dans la liste des variables WEIGHT qui y est offerte.
Annexe L
Commandes HTML de base
Couleurs HTML
En HTML, les couleurs sont définies par des codes RGB (rouge, vert (green), bleu). Les codes RGB sont composés de trois paires de caractères hexadécimaux (de 0 à F), suivies d'un dièse (sans lien avec les instructions dièses de CallWeb). Chaque paire de caractères hexadécimaux indique la quantité de chaque couleur de base (rouge, vert, bleu) dans une combinaison de couleurs particulière. Par exemple, #FFFFFF est blanc parce que ce code inclut un maximum de chacune des trois couleurs de base.; #000000 est noir parce qu'il n'y a aucune des trois couleurs de base.
Il y a beaucoup d'outils utiles en ligne pour aider dans la sélection des couleurs. ColorPicker, Febooti on-line colour chart et Doughnut Color Picker retournent des codes pour des millions de couleurs en utilisant une interface familière. D'autres outils comme ColorScheme Designer, Color Palette Creator et kuler aident à la création d'ensembles de couleurs. Finalement, pixie (un exécutable Windows) et Colorzilla (une extension Firefox) identifient la couleur vers laquelle la souris pointe à l'écran.
Codes HTML de base
Annexe M
Liste de contrôle pour le démarrage de projets
La liste de contrôle qui suit est un guide pour vérifier que toutes les étapes du démarrage d'un projet ont été complétées. Une liste de contrôle spécifique au contexte CATI est aussi disponible.
Annexe N
Types de fichiers
Un répertoire de projet CallWeb comporte souvent une série de fichiers témoignant du déroulement du projet. Voici une liste des fichiers que l'on peut y retrouver.