Actions

ExpressionScript Engine - Quick start guide/nl: Difference between revisions

From LimeSurvey Manual

(Created page with "EM ondersteunt op dit moment 70 functies, bovendien kunnen er eenvoudig meer functies ondersteunt worden. Je hebt ook toegang tot variabelen met leesbare namen (anders dan bij...")
No edit summary
 
(92 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages />
<languages />
__TOC__
__TOC__


Line 7: Line 6:




In [https://www.limesurvey.org LimeSurvey], kun je een enquête verder aanpassen door gebruik te maken van Expressiebeheer (EM). Je kunt hiermee het volgende bepalen:  
In [https://www.limesurvey.org LimeSurvey] kun je je enquêtes aanpassen met behulp van ExpressionScript (afgekort: ES).
NB: "ExpressionScript is de nieuwe naam voor ExpressieBeheer (EM) in versie voor versie 4. Als je nog ergens ExpressieBeheer leest vanaf  versie 4 dan is het dus ExpressionScript."
 
Met ES kun je het volgende aangeven:
 
# '''Navigatie/Vertakking''' : door de antwoorden van de deelnemer kan de volgorde van de vragen worden gewijzigd.
# '''Navigatie/Vertakking''' : door de antwoorden van de deelnemer kan de volgorde van de vragen worden gewijzigd.
# '''Maatwerk''' : je kunt de vraag opmaken, Bijvoorbeeld antwoorden op eerdere vragen gebruiken, of zinnen opbouwen met een vervoeging van gegevens van de deelnemer (bijvoorbeeld leeftijd of sekse) of bepalen hoe een rapport (beoordelingsscore of maatadvies) wordt samengesteld.
# '''Maatwerk''' : je kunt de vraag opmaken. Bijvoorbeeld antwoorden op eerdere vragen gebruiken, of zinnen opbouwen met een vervoeging van gegevens van de deelnemer (bijvoorbeeld leeftijd of sekse) of bepalen hoe een rapport (beoordelingsscore of maatadvies) wordt samengesteld.
# '''Validatie''' : ervoor zorgen dat de antwoorden aan gestelde voorwaarden voldoen, zoals een minimum of een maximum of voldoen aan een patroon.
# '''Validatie''' : ervoor zorgen dat de antwoorden aan gestelde voorwaarden voldoen, zoals een minimum of een maximum of voldoen aan een patroon.


In EM wordt een eenvoudige manier gebruikt om deze functies te specificeren. Bij alles wat je kunt schrijven als een standaard mathematische vergelijking is een geldige expressie.  
In ES wordt een eenvoudige manier gebruikt om deze functies te specificeren. Bijna alles wat je kunt schrijven als een standaard mathematische vergelijking is een geldige expressie.  


EM ondersteunt op dit moment 70 functies, bovendien kunnen er eenvoudig meer functies ondersteunt worden. Je hebt ook toegang tot variabelen met leesbare namen (anders dan bij [[SGQA_identifier/nl|SGQA-identifiers]]).
ES ondersteunt op dit moment 70 functies, bovendien kunnen er eenvoudig meer functies ondersteunt worden. Je hebt ook toegang tot variabelen met leesbare namen (anders dan bij [[SGQA_identifier/nl|SGQA-identifiers]]).


The upcoming sections show the main places where the EM is used.
Hieronder beschrijven we waar ES meestal voor wordt gebruikt.




Line 22: Line 25:




Some surveys use "Goto Logic", such that if you answer Question1 with option C, you are redirected to Question5. This approach is very limited since it is hard to validate it. Moreover, it easily breaks when you have to reorder questions. On the other hand, EM uses [https://en.wikipedia.org/wiki/Boolean_algebra Boolean relevance equations] to specify all the conditions under which a question might be valid. If the question is relevant, then the question is shown, otherwise, it is not applicable, and the value "NULL" is stored in the database.  
Bij sommige enquête-systemen wordt een "Goto Logic" gebruikt, als de deelnemer bij Vraag1 optie C kiest, ga dan naar Vraag5. Het controleren van een dergelijke enquête is lastig. Ook bij het verplaatsen van vragen kan er gemakkelijk iets verkeerd gaan waardoor de enquête niet meer werkt. In LimeSurvey wordt ES gebruikt waardoor er gebruikt gemaakt wordt van [https://nl.wikipedia.org/wiki/Booleaanse_algebra Booleanse algebra] om de condities te specificeren wanneer een vraag getoond moet worden. Alleen als de vraag relevant is wordt de vraag getoond. Als de vraag niet relevant is, dan wordt die niet getoond en wordt de waarde "NULL" vastgelegd in de database.  


<div class='simplebox'> '''Note:''' This is similar to what can be done via the [[Setting conditions|Conditions editor]], but EM lets you easily specify much more complex and powerful criteria (and lets you use the variable name rather than SGQA identifiers).</div>
<div class='simplebox'> '''NB:''' Dit kan op een vergelijkbare manier in de [[Setting conditions/nl|Conditie-editor]] worden gedaan, maar in  ES kun je gemakkelijk meer complexe en krachtige criteria gebruiken (en dan met een variabele-naam in plaats van een SGQA-identifier).</div>




Line 30: Line 33:




To better understand the relevance concept, let's focus on the following survey which computes the Body Mass Index (BMI) of survey respondents. To download it, click on the following link: [[Media:EM_survey_-_Cohabs.zip|Body Mass Index survey example]].
Om het begrip relevantie beter te begrijpen, gebruiken we een voorbeeld met een enquête waarin de BMI (Body Mass Index) wordt bepaald van de deelnemer. [[Media:LS3_em_tailoring.zip|Voorbeeld downloaden]].


The relevance equation is shown below in the '''Relevance''' column after the variable name. The relevance values of weight, weight_units, height, and height_units are all 1 (default value), meaning that those questions are always displayed. However, the relevance for BMI is {!is_empty(height) and !is_empty(weight)}, which means that BMI will only be computed if the subject enters a value for both height and weight (thereby avoiding the risk of getting a zero error). Also, question "Report" is only shown if the respondent answers all four main questions (height, heightunits, weight, weightunits).
De relevantievergelijking wordt getoond in de kolom '''Relevantie''' na de naam van de variabele. De zijn bij weight, weight_units, height en height_units allemaal 1 (standaardwaarde), wat betekent dat die vragen altijd worden getoond. Voor BMI is de relevantie echter {!is_empty(height) and !is_empty(weight)}, wat betekent dat het alleen bepaald wordt als beide velden height en weight zijn ingevuld. Dat voorkomt ook het delen door 0. Ook de vraag "Report" wordt alleen getoond als alle 4 vragen ingevuld worden door de gebruiker (height, heightunits, weight, weightunits).




Line 38: Line 41:




<div class="simplebox"> [[File:help.png]] '''Note:''' The above image comes from the [[Show logic file|survey logic file]] which allows you to look for syntax errors before activating the survey.</div>
<div class="simplebox"> [[File:help.png]] '''NB:''' Het bovenstaand plaatje staat in het [[Check survey logic - Advanced/nl|enquête logica-bestand]], de  functie om de enquête op syntaxfouten te controleren voor het activeren.</div>




Relevance is shown and editable when:
De relevantievergelijking wordt getoond en kan gewijzigd worden:
*you wish to view/edit question-level relevance
*op vraagniveau
*you wish to view/edit group-level relevance
*op vraaggroepniveau




Line 67: Line 70:




Let's focus now on another example - a simple census survey. To download it, click on the following link: [[Media:EM survey - Cohabs.zip|Census survey example]].  
We gebruiken nu een voorbeeld met een eenvoudige telling. [[Media:LS3_group_relevance.zip|Voorbeeld downloaden]].  


The first page asks how many people live with you and stores that in the "cohabs" variable. This page is only shown if you have more than one cohabitant (it is shown for the second person cohabitating with you). Also, p2name, p2age. p2sum are displayed only if the question before each of them contains a response.
Op de beginpagina vragen we met hoeveel mensen je, de deelnemer, samenleeft, hiervoor we gebruiken we de variabele ''cohabs''. De volgende pagina wordt alleen getoond als je met iemand samenleeft. De velden p2name, p2age. p2sum worden ook alleen dan getoond als er een respons is.




Line 75: Line 78:




Zoals je kunt zien, heeft de groep ook relevantie-criteria op vraagniveau. Een vraag wordt soms alleen gesteld als je een bepaalde voorgaande vraag hebt beantwoordt (zie vraag p2age, als vraag p2name is beantwoord). De relevantie voor de groep en de vraag worden vanzelf gecombineerd. Een vraag in de groep wordt alleen gesteld als de groep relevant is.  Binnen de groep worden alleen de relevante vragen gesteld.
De groep heeft dus ook relevantie-criteria op vraagniveau. Een vraag wordt soms alleen gesteld als je een bepaalde voorgaande vraag hebt beantwoordt (zie vraag p2age, als vraag p2name is beantwoord). De relevantie voor de groep en de vraag worden vanzelf gecombineerd. Een vraag in de groep wordt alleen gesteld als de groep relevant is.  Binnen de groep worden alleen de relevante vragen gesteld.
 


Het scherm voor het wijzigen van de relevantie op groepsniveau:
Het scherm voor het wijzigen van de relevantie op groepsniveau van ''Cohabitant 2'':




Line 88: Line 90:
==Maatwerk==
==Maatwerk==


Je kunt eenvoudig allerlei conditioneel maatwerk in je vragen gebruiken. Soms is een eenvoudige vervanging al voldoende. Voorbeeld: "U heeft <nowiki>[</nowiki>Product] gekocht.  Wat vond u het sterkste punt ervan?".  Soms wil je een vervanging op een conditie doen. Bijvoorbeeld: "<nowiki>[</nowiki>Dhr./Mevr.] <nowiki>[</nowiki>Achternaam], wilt u deze enquête invullen?". Je wilt hier dan natuurlijk de keuze tussen Dhr. en Mevr. op basis van het geslacht door het programma laten maken. Je kunt ook hele complexe vervangingen doen met bijvoorbeeld berekeningen.
 
Je kunt eenvoudig allerlei conditioneel maatwerk in je vragen gebruiken. Soms is een eenvoudige vervanging al voldoende. Voorbeeld: "U heeft <nowiki>[</nowiki>Product] gekocht.  Wat vond u het sterkste punt ervan?".  Soms wil je een vervanging op een conditie doen. Bijvoorbeeld: "<nowiki>[</nowiki>Dhr./Mevr.] <nowiki>[</nowiki>Achternaam], wilt u deze enquête invullen?". Je wilt hier dan natuurlijk de keuze tussen Dhr. en Mevr. op basis van het geslacht door het programma laten maken. Je kunt ook hele complexe vervangingen doen met bijvoorbeeld berekeningen. ES ondersteunt dit maatwerk.




Line 106: Line 109:
Tot slot wordt het rapport conditioneel afgesloten met wat de invoergegevens waren. ("U heeft gezegd dat u 2 meter lang bent en 70 kg weegt.")
Tot slot wordt het rapport conditioneel afgesloten met wat de invoergegevens waren. ("U heeft gezegd dat u 2 meter lang bent en 70 kg weegt.")


In het bovenstaande plaatje zie je de verdere uitwerking om met geneste if()-condities de persoon in te delen in een categorieën als  ondergewicht of obesitas. Je ziet de vergelijkingen ook in de "Show Logic View".
In het onderstaande plaatje zie je de verdere uitwerking om met geneste if()-condities de persoon in te delen in categorieën als  ondergewicht of obesitas. Je ziet de vergelijkingen ook bij de functie "Logica tonen".




Line 118: Line 121:


<center>[[File:tailoring9.jpg]]</center>
<center>[[File:tailoring9.jpg]]</center>


===Maatwerk vragen, antwoorden en rapporten===
===Maatwerk vragen, antwoorden en rapporten===




<div class="simplebox">[[File:help.png]] '''NB:''' Dynamisch maatwerk kan mogelijk niet werken als de antwoordopties op hetzelfde scherm kunnen worden geselecteerd uit een lijst. Dit komt omdat bij maatwerk er een <nowiki><span></nowiki> tag wordt toegevoegd, dat is niet mogelijk binnen een selectielijst.</div>
<div class="simplebox">[[File:help.png]] '''NB:''' Dynamisch maatwerk kan mogelijk niet werken als de antwoordopties op hetzelfde scherm kunnen worden geselecteerd uit een lijst. Dit komt omdat bij maatwerk er een <nowiki><span></nowiki>-tag wordt toegevoegd, dat is niet mogelijk binnen een selectielijst.</div>


The BMI report looks like this:
Het BMI-rapport:




Line 136: Line 140:




Anything within curly braces is treated as an expression, being syntax-highlighted (color coded) in the prior image. If you have any typos (such as misspelled or undefined variable names or functions), EM would show an error. In our below example:
Alles tussen haakjes wordt gezien als een expressie, in het voorgaande plaatje worden deze expressies gemarkeerd met kleur. Bij een fout (bijvoorbeeld een foutje in de naam of in de functienaam), toont ES een foutmelding. In onderstaand voorbeeld is:
* heightunit.shown is an undefined variable name (it is actually heightunits.shown) and
* heightunit.shown is een ongedefinieerde variabele (het moet heightunits.shown zijn) en
* "rnd()" is an undefined function (the proper function name is "round()").  
* "rnd( )" is een ongedefinieerde functie (het moet "round( )" zijn).  


In both cases, the errors are surrounded by a red box to make it easier to spot and fix them.
Beide fouten worden getoond in een rood veld, daardoor valt de fout eerder op.




Line 148: Line 152:
Je kunt ook snel complexe rapporten maken, zoals een tabel met ingevoerde waarden of advies op maat.
Je kunt ook snel complexe rapporten maken, zoals een tabel met ingevoerde waarden of advies op maat.


Al het maatwerk moet dus tussen accolades, zodat LimeSurvey in de vraag het onderscheid ziet tussen vaste tekst en expressies (die in Expressiebeheer worden verwerkt).
Al het maatwerk moet dus tussen accolades, zodat LimeSurvey in de vraag het onderscheid ziet tussen vaste tekst en expressies (die in ExpressionScript worden verwerkt).
 


==Validatie==
==Validatie==




Expressie beheer bepaald hoe de speciale vraagopties werken. Dit betreft o.a.:  min/max aantal antwoorden; min/max persoonlijke waarden; min/max totalen; en controleren dat de invoer voldoet aan gespecificeerde patronen. Het gebruik van deze opties is niet gewijzigd. Alle waarden in een van deze velden wordt echter nu gezien als een expressie, zodat je min/max criteria kunt hebben met complexe relaties met andere vragen.
ExpressionScript bepaald hoe de speciale vraagopties werken. Dit betreft o.a.:  min/max aantal antwoorden, min/max persoonlijke waarden, min/max totalen, en controleren dat de invoer voldoet aan gespecificeerde patronen. Alle waarden in een van deze velden wordt gezien als een expressie, zodat je min/max criteria kunt hebben met complexe relaties met andere vragen.
 
In al van deze gevallen hoef je bij het specificeren geen accolades te gebruiken omdat de speciale vraagopties altijd als expressie beschouwd worden.


Op de pagina met [[Expression Manager Sample Surveys|voorbeeld enquêtes]] staan meerdere voorbeelden van validatie met expressies.
In al van deze gevallen hoef je bij het specificeren geen accolades te gebruiken omdat de speciale vraagopties altijd als een expressie beschouwd worden.


Op de pagina met [[ExpressionScript sample surveys/nl|voorbeeld enquêtes]] staan meerdere voorbeelden van validatie met expressies.


=Expressiebeheer - presentatie=
=ExpressionScript - presentatie=




To find out more about the Expression Manager and how you can use different expressions to enhance your survey, please click on the following [https://manual.limesurvey.org/Expression_Manager_-_presentation link].
Meer [https://manual.limesurvey.org/ExpressionScript_-_presentation/nl informatie] over ExpressionScript en hoe je verschillende expressies kunt gebruiken in je enquête.

Latest revision as of 19:38, 23 January 2021


Snelstartgids

In LimeSurvey kun je je enquêtes aanpassen met behulp van ExpressionScript (afgekort: ES). NB: "ExpressionScript is de nieuwe naam voor ExpressieBeheer (EM) in versie voor versie 4. Als je nog ergens ExpressieBeheer leest vanaf versie 4 dan is het dus ExpressionScript."

Met ES kun je het volgende aangeven:

  1. Navigatie/Vertakking : door de antwoorden van de deelnemer kan de volgorde van de vragen worden gewijzigd.
  2. Maatwerk : je kunt de vraag opmaken. Bijvoorbeeld antwoorden op eerdere vragen gebruiken, of zinnen opbouwen met een vervoeging van gegevens van de deelnemer (bijvoorbeeld leeftijd of sekse) of bepalen hoe een rapport (beoordelingsscore of maatadvies) wordt samengesteld.
  3. Validatie : ervoor zorgen dat de antwoorden aan gestelde voorwaarden voldoen, zoals een minimum of een maximum of voldoen aan een patroon.

In ES wordt een eenvoudige manier gebruikt om deze functies te specificeren. Bijna alles wat je kunt schrijven als een standaard mathematische vergelijking is een geldige expressie.

ES ondersteunt op dit moment 70 functies, bovendien kunnen er eenvoudig meer functies ondersteunt worden. Je hebt ook toegang tot variabelen met leesbare namen (anders dan bij SGQA-identifiers).

Hieronder beschrijven we waar ES meestal voor wordt gebruikt.


Relevantie (Controle Navigatie/Vertakking)

Bij sommige enquête-systemen wordt een "Goto Logic" gebruikt, als de deelnemer bij Vraag1 optie C kiest, ga dan naar Vraag5. Het controleren van een dergelijke enquête is lastig. Ook bij het verplaatsen van vragen kan er gemakkelijk iets verkeerd gaan waardoor de enquête niet meer werkt. In LimeSurvey wordt ES gebruikt waardoor er gebruikt gemaakt wordt van Booleanse algebra om de condities te specificeren wanneer een vraag getoond moet worden. Alleen als de vraag relevant is wordt de vraag getoond. Als de vraag niet relevant is, dan wordt die niet getoond en wordt de waarde "NULL" vastgelegd in de database.

NB: Dit kan op een vergelijkbare manier in de Conditie-editor worden gedaan, maar in ES kun je gemakkelijk meer complexe en krachtige criteria gebruiken (en dan met een variabele-naam in plaats van een SGQA-identifier).




Om het begrip relevantie beter te begrijpen, gebruiken we een voorbeeld met een enquête waarin de BMI (Body Mass Index) wordt bepaald van de deelnemer. Voorbeeld downloaden.

De relevantievergelijking wordt getoond in de kolom Relevantie na de naam van de variabele. De zijn bij weight, weight_units, height en height_units allemaal 1 (standaardwaarde), wat betekent dat die vragen altijd worden getoond. Voor BMI is de relevantie echter {!is_empty(height) and !is_empty(weight)}, wat betekent dat het alleen bepaald wordt als beide velden height en weight zijn ingevuld. Dat voorkomt ook het delen door 0. Ook de vraag "Report" wordt alleen getoond als alle 4 vragen ingevuld worden door de gebruiker (height, heightunits, weight, weightunits).



NB: Het bovenstaand plaatje staat in het enquête logica-bestand, de functie om de enquête op syntaxfouten te controleren voor het activeren.


De relevantievergelijking wordt getoond en kan gewijzigd worden:

  • op vraagniveau
  • op vraaggroepniveau


Bekijken / Wijzigen relevantie op vraagniveau

Deze vergelijking bepaalt de index voor het lichaamsgewicht (BMI). De vraag wordt alleen getoond als de deelnemer eerst het gewicht en de lengte heeft ingevuld.



Het wijzigscherm voor de vraag over het BMI.



De accolades worden niet gebruikt als je een relevantie-vergelijking invult.


Bekijken / Wijzigen relevantie op groepsniveau

We gebruiken nu een voorbeeld met een eenvoudige telling. Voorbeeld downloaden.

Op de beginpagina vragen we met hoeveel mensen je, de deelnemer, samenleeft, hiervoor we gebruiken we de variabele cohabs. De volgende pagina wordt alleen getoond als je met iemand samenleeft. De velden p2name, p2age. p2sum worden ook alleen dan getoond als er een respons is.



De groep heeft dus ook relevantie-criteria op vraagniveau. Een vraag wordt soms alleen gesteld als je een bepaalde voorgaande vraag hebt beantwoordt (zie vraag p2age, als vraag p2name is beantwoord). De relevantie voor de groep en de vraag worden vanzelf gecombineerd. Een vraag in de groep wordt alleen gesteld als de groep relevant is.  Binnen de groep worden alleen de relevante vragen gesteld.

Het scherm voor het wijzigen van de relevantie op groepsniveau van Cohabitant 2:



De accolades worden niet gebruikt als je een relevantie-vergelijking invult.

Maatwerk

Je kunt eenvoudig allerlei conditioneel maatwerk in je vragen gebruiken. Soms is een eenvoudige vervanging al voldoende. Voorbeeld: "U heeft [Product] gekocht.  Wat vond u het sterkste punt ervan?".  Soms wil je een vervanging op een conditie doen. Bijvoorbeeld: "[Dhr./Mevr.] [Achternaam], wilt u deze enquête invullen?". Je wilt hier dan natuurlijk de keuze tussen Dhr. en Mevr. op basis van het geslacht door het programma laten maken. Je kunt ook hele complexe vervangingen doen met bijvoorbeeld berekeningen. ES ondersteunt dit maatwerk.


Conditionele vergelijking

Het voorbeeld met de BMI toont de mogelijkheid om dit BMI te berekenen, omdat je daar de lengte, het gewicht en de gebruikte eenheden (die kunnen per land verschillen) opvraagt:



Hier is weight_kg {if(weight_units == 'kg', weight, weight * .453592)}.  Deze if() functie betekent dat als het gewicht in kg is ingevuld, dat dan als gewicht de eerste waarde moet worden genomen (de ingevulde waarde) en anders dat het gewicht dat is ingevuld moet worden vermenigvuldigd met een constante (om de ponden om te zetten in kg).  De variabele height_m wordt gebruikt om de lengte in meters om te zetten als die in inches is ingevuld (1 meter is 3.28084 inches).

De BMI wordt bepaald door het gewicht te delen door kwadraat van de lengte: {weightkg / (heightm * heightm)}.

Tot slot wordt het rapport conditioneel afgesloten met wat de invoergegevens waren. ("U heeft gezegd dat u 2 meter lang bent en 70 kg weegt.")

In het onderstaande plaatje zie je de verdere uitwerking om met geneste if()-condities de persoon in te delen in categorieën als ondergewicht of obesitas. Je ziet de vergelijkingen ook bij de functie "Logica tonen".



Op het wijzigscherm van de vraag, kun je zien dat:

  1. je bij maatwerk de expressie tussen accolades moet zetten
  2. Een expressie kan heel lang zijn. Je wilt het dan meer leesbaar maken om de geneste conditionele logica beter te kunnen lezen.



Maatwerk vragen, antwoorden en rapporten

NB: Dynamisch maatwerk kan mogelijk niet werken als de antwoordopties op hetzelfde scherm kunnen worden geselecteerd uit een lijst. Dit komt omdat bij maatwerk er een <span>-tag wordt toegevoegd, dat is niet mogelijk binnen een selectielijst.

Het BMI-rapport:



Het wijzigscherm voor dezelfde vraag.



Alles tussen haakjes wordt gezien als een expressie, in het voorgaande plaatje worden deze expressies gemarkeerd met kleur. Bij een fout (bijvoorbeeld een foutje in de naam of in de functienaam), toont ES een foutmelding. In onderstaand voorbeeld is:

  • heightunit.shown is een ongedefinieerde variabele (het moet heightunits.shown zijn) en
  • "rnd( )" is een ongedefinieerde functie (het moet "round( )" zijn).

Beide fouten worden getoond in een rood veld, daardoor valt de fout eerder op.



Je kunt ook snel complexe rapporten maken, zoals een tabel met ingevoerde waarden of advies op maat.

Al het maatwerk moet dus tussen accolades, zodat LimeSurvey in de vraag het onderscheid ziet tussen vaste tekst en expressies (die in ExpressionScript worden verwerkt).


Validatie

ExpressionScript bepaald hoe de speciale vraagopties werken. Dit betreft o.a.: min/max aantal antwoorden, min/max persoonlijke waarden, min/max totalen, en controleren dat de invoer voldoet aan gespecificeerde patronen. Alle waarden in een van deze velden wordt gezien als een expressie, zodat je min/max criteria kunt hebben met complexe relaties met andere vragen.

In al van deze gevallen hoef je bij het specificeren geen accolades te gebruiken omdat de speciale vraagopties altijd als een expressie beschouwd worden.

Op de pagina met voorbeeld enquêtes staan meerdere voorbeelden van validatie met expressies.

ExpressionScript - presentatie

Meer informatie over ExpressionScript en hoe je verschillende expressies kunt gebruiken in je enquête.