WEB Umfragen (Stefan Bosse) [6.2020] |
In diesem Tutorial wird die Umfrage aus dem vorherigen Tutorial auf einem WEB Server aus diemsen Notebook herraus veröffentlicht und die Daten der Erhebung wieder eingesammelt.
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 ,.. }
// Konditionale Fragen
{ question : string, cond? : function (dialog) -> boolean, .. }
Jeder Frage sollte ein eindeutiges Label (vom Erheber) gegeben werden damit die Identifizierung der Frage vereinfacht wird, z.B. Q1
, QB
usw.
Ein einfacher Umfragejob besteht aus dem Dialog, einem Array aus Fragen (und optional erklärenden Hinweistexten ohne Antwortfunktion), sowie weiteren Metadaten.
Wichtig bei der Durchführung einer Umfrage auf einem WEB Server (on-lime Umfrage) ist eine Start- und Endzeit. Die Startzeit kann mit 'now'
gewählt, und die Endzeit ergibt sich aus einer Deltazeitangabe time:
{
author : 'Stefan Bosse',
start : 'now',
time : 600, // seconds
label : string,
title : string,
cinema : true,
dialog : [
question1,
question2,
..
]
}
Es sollte immer einer Autor mit angegegebn werden der dann auch in der Umfrage ersichtlich ist (kann auch ein Pseudonym sein!)
Das Attribute 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!
▸
|
✗
|
▸
|
✗
|
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 zu einer Speicherung auf dem Server.
Die Ergebnisse sind vom Server abrufbar...
Die Ergebnisse können solange die Umfrage existiert abgerufen werden mittels Survey.collect(url,handle)
im Server Fall
Auf dem Server gibt es die Umfrage für die Erhebung nur während der angegebenen Zeit (für die Nutzer)
▸
|
✗
|
Die Ergebnisse der Umfrage können mittels der present Funktion in eine Tabelle umgewandelet werden
Eine Tabelle ist in JavaScript ein Array von Arrays, und man kann auf die i-ten Zeile mittels array[i]
und in der i-ten Zeile auf die j-te Spalte dann durch a[i][j]
zugreifen
array.pluck(j)
Methode aus einem Tabellenarray selektiert werden!
▸
|
✗
|
Der Erhebungsdeskriptor sollte für kategorische Werte eine Kodierungsfunktion enthalten, der die kategorischen Werte auf numerische Werte abbildet:
Mittels des Math.statistics Moduls können nun die Tabellenwerte analysiert werden
table.pluck(j)
ausgewählt (table ist ein Variablename der die Tabelle enthält)table=table.slice(1)
entfernt werden.column=column.filter(function (v) { return typeof v=='number'? })
Funktion ausführen. D.h. das Array in der Variable column wird aus Werten bestehen die numerisch sind (typeof v=='number'
). Undefinierte und Textwerte werden herausgefiltert.
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|
Nehme die Umfrage aus Aufgabe A (vorheriges Tutorial)!
Erwartete Teilnehmerzahl: 5-20 (später)
Themenbereiche (Auswahl):
Copy & Paste aus Aufgabe A
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?
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|