WEB Umfragen (Stefan Bosse) [6.2020] |
Eine digitale Umfrage besteht aus einem Umfragejob der primär den Dialog beschreibt, d.h. wesentlich die Fragen
Neben Fragen kann es auch Hinweistext (sog. messages) geben
Eine Frage besteht dabei aus dem Fragetext, optional einem Hinweistext, und die Beschreibung der Art der Frage
Es gibt folgende Fragearten, die durch die Antwortklasse bestimmt wird:
// Freiformtext
{ question : string, label?:string }
// Metrischer/numerischer Wert
{ question : string, label?:string, range:[number,number], step?:number }
// Mehrfachauswahl
{ question : string, label?:string, choices:[string,string,..], range?:[number,number] }
// Mehrfachauswahl - mutual (nur eine Antwort möglich)
{ question : string, label?:string, choices:[string,string,..], mutual:true }
// Optionaler Hinweistext
{ message : string, question : string ,.. }
Q1
, QB
usw.{ a:v, }
. Wichtig: Wenn der Attributname a kein gültiger Bezeichner ist (also z.B. leerzeichen enthält) muss der Name in Anführungszeichen gesetzt weden "a"
[v1,v2,..]
müssen ebenafalls einzelne Werte durch ein Komma getrennt werdena[index]
, und Strukturelement mit o.a
{
label : string,
cinema : true,
dialog : [
question1,
question2,
..
]
}
cinema:true
schaltet den "Blättermodus" ein, d.h. die Fragen werden nacheinander eingeblendet. Ohne Cinemamodus werden alle Fragen auf einmal angezeigt.Der Cinemamodus ist bei dynamischen und bedingten Umfragen erforderlich!
Frage. Wann benötigt man konditionale Fragen?
Survey.test(survey)
Funktion aufgerufen wird.
▸
|
✗
|
Die Ausführung eines Umfragejobs (z.B. durch die Testfunktion) ordnet dem Job eine Identifikationsnummer zu (id) und einen lokalen Index (survey).
Das Absenden der Ergebnisse führt bei der Testfunktion zu einer lokalen Speicherung.
Bei Umfragen die durch einen Server durchgeführt werden sind die Ergebnisse ebenfalls von diesem Server Abrufbar (kommt später)
Survey.collect(null,id)
im lokalen Fall (also hier im Notebook!)
▸
|
✗
|
Neben Fragen können Erläuterungstexte hinzugefügt werden (z.B. Erklärung der Umfrage oder deren Zweck/Gründe)
Auch in Fragen können Hinweise gegeben werden (durch message Attribut)
▸
|
✗
|
▸
|
✗
|
{
..
dialog : [
{ label:'Q1', .. },
{ label:'Q2', .. },
..
],
parameter : {
Q1: 'Alter',
Q2: 'Name',
Q3: 'Essenklasse',
..
}
}
Das wird später bei der Auswertung wichtig!!!
Weiterhin messen wir metrische, kategorische, und textuelle Parameter
Für die statistische Verarbeitung (gerade auch im mobilen Crowdsensing) sollten kategorische Werte in numerische kodiert werden. Das kann durch Angabe von Kodierungsfunktionen geschehen:
{
..
dialog : [
{ label:'Q1', .. },
{ label:'Q2', .. },
{ label:'Q3', .., choices : ['vegetarisch','vegan','Fleisch','Fisch'] }
..
],
parameter : {
Q1: 'Alter',
Q2: 'Name',
Q3: 'Essenklasse',
..
},
code : {
Q3: function (choices) {
return Math.code(choices,{vegetarisch:1,vegan:2,Fleisch:4,Fisch:8})
}
}
}
Umfrage mit Kodierung und Parametermapping
▸
|
✗
|
Survey.present(results,survey)
Funktion möglich
▸
|
✗
|
Fragen können ein- und ausgeblendet werden (dynamische Dialoge)
Ob eine Frage angezeigt wird kann von vorherigen Antworten abhängen
Dazu wird in einer Frage das Attribute cond hinzugefügt
▸
|
✗
|
▸
|
✗
|
Erstelle eine Umfrage die an die Kursteilnehmer gerichtet werden kann!
Erwartete Teilnehmerzahl: 5-20 (später)
Themenbereiche (Auswahl):
Frage. A.1 Welche Hypothese soll mit der Umfrage getestet werden?
Frage. A.2 Welche Variablen sollen gemessen werden (z.B. Alter)?
Frage. A.3 An welche Zielgruppe richtet sich die Umfrage?
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|