Das Interview besteht aus einer Baumstruktur. Die kleinste Einheit ist die Frage. Fragen können zu einer Bildschirmseite (genauer wäre eigentlich: Web-Seite; wir nennen es Screen) zusammengefasst werden, und Screens wiederum zu Blöcken, die ineinander geschachtelt werden können.
Jeder Block hat einen Namen. Mit
main
gibt es einen Block, der immer
vorhanden sein muss und der auch den Einstiegspunkt in
das Interview darstellt. Beim Ablauf eines Interviews
wird der Inhalt des Blocks main
nacheinander ausgeführt. Der Ablauf kann aus einer
simplen, linearen Reihenfolge von Fragen bestehen, er
kann aber auch beliebig komplex werden durch mehrfache
Verschachtelungen, Filterführungen oder zufällige
Anordnungen (Randomisierungen).
Jeder Block kann sowohl weitere Blöcke enthalten als auch Screens. Die Screens wiederum enthalten die Fragen. Sofern ein Screen nur eine Frage enthält, ist es nicht notwendig, explizit einen Screen für diese Frage zu definieren, sondern es wird ein Standard-Screen erzeugt, der den gleichen Namen wie die Frage hat. Auf der Nutzerseite sieht es zwar so aus, als fügte man eine Frage direkt einem Block hinzu, tatsächlich wird jedoch automatisch ein Screen erzeugt.
Die Einteilung der Fragen/Screens in Blöcke erlaubt es, Teile des Interviews zu kapseln. Auf diese Weise ist es möglich, einen Block von Fragen nur dann zu stellen, wenn bestimmte Bedingungen erfüllt sind. Oder die Fragen innerhalb eines Blocks können pro Interview oder pro interviewter Gruppe in eine zufällige Reihenfolge gebracht werden.
Screens enthalten die eigentlichen Fragen, die in
einer rekursiven Struktur aus Spalten und Zeilen
angeordnet werden können. Als Schlüsselwörter für die
Anordnung der Fragen in Spalten und Zeilen dienen
column
und row
.
Ein Screen hat dabei genau einen Fragetext, aber jede
Frage innerhalb des Screens kann eine eigene (direkt
über der Frage angezeigte) Überschrift haben, den
title
der Frage. Man kann für einen
Screen einen eigenen Fragetext definieren; sofern dies
nicht geschieht, wird automatisch der Fragetext der
ersten Frage des Screens verwendet. (Ausführliche
Erläuterungen zu Screens bietet Kapitel 7,
Screens
.)
Es ist auch möglich, Screens völlig unabhängig von den Fragen mit HTML zu gestalten, dazu aber später mehr (s. „Selbstgebaute Screens“).
Angenommen, das gesamte Interview bestünde nur aus den
Fragen a, b und c, die in linearer Reihenfolge
hintereinander angezeigt werden sollen. Der
main
-Block sähe dann so aus:
block main=(a b c);
Wenn jedoch alle drei Fragen in einem Screen untereinander angezeigt werden sollen, und das Interview nur aus diesem einen Screen bestehen soll, lautet die Syntax:
Screen screen1=column(a b c);
block main=(screen1);
Um die gewünschte Abfolge zu erreichen, müssen also erst die Fragen dem Screen hinzugefügt werden, und dann der Screen dem main-Block.
Angenommen, es gibt zwei TextQs text1 und text2, und jeder TextQ ist eine SingleQ mit einer Skala zugeordnet, um das, was im Text beschrieben wird, zu beurteilen (skala1 und skala2). Die Texte sollen nebeneinander, und die Skala jeweils unter dem Text, zu dem sie gehört, angezeigt werden, und der Screen soll einen eigenen Fragetext erhalten:
Screen bilder=row( column(text1 skala1) column(text2 skala2) ); text="Bitte beurteilen Sie die beiden Bilder!";
Die geschachtelte Struktur von Spalten und Zeilen wird
durch die Anweisungen column
und
row
erreicht. Die Struktur kann
durch column
und
row
auch beliebig komplex gestaltet
werden.
Nochmal angenommen, es gäbe eine Frage geschlecht, die das Geschlecht der Interviewten abfragt. Wenn in der Folge die Fragen a, b, c und d, nur an Männer gerichtet werden sollen, und die Fragen e, f, g und h, nur an Frauen, kann das mit zwei Blöcken erreicht werden, bei denen die Antwort auf die Frage nach dem Geschlecht als Filter dient (zur Syntax von Filtern und Bedingungen siehe Kapitel 10, Filter- und Plausibilitätsbedingungen):
block block_m = (a b c d); flt=geschlecht eq 1; block block_w = (e f g h); flt=geschlecht eq 2; block irgendeinblock = (block_m block_w); block main = (geschlecht ... irgendeinblock ...);
Filter werden mit dem Schlüsselwort flt einem Block hinzugefügt.
Eine zufällige Reihenfolge von fünf Fragen (q1, q2, q3, q4 und q5) kann einfach realisiert werden:
block zufall = (q1 q2 q3 q4 q5); random; block main = (zufall);
Eine Randomisierung wird durch das Schlüsselwort random erreicht.
Durch die hierarchische Schachtelung von Fragen zu Screens und Screens zu Blöcken ist eine flexible Steuerung des Interviewablaufs möglich. Es existieren noch andere Möglichkeiten zur Ablaufsteuerung als die hier erwähnten, wie z.B. Plausibilitätsbedingungen oder das Sortieren von Elementen nach aus dem bisherigen Interview-Verlauf gewonnenen Reihenfolge (siehe Kapitel 10, Filter- und Plausibilitätsbedingungen).
Daneben kennt Q. den Mechanismus einer Whitelist um den Ablauf eines Interviews zu steuern. Bei der Whitelist handelt es sich um eine JSON-Datei mit Listings von Fragen, Screens und Blöcken (inklusive der Labels und Items). Im Skript enthaltene aber in der Whitelist ausgesparte Elemente werden im Interview ausgelassen. Um die Whitelist einzusetzen, muss sie im Text-Verzeichnis der Studie liegen und über einen URL-Parameter eingebunden werden (zu URL-Parametern s. auch „Einladungslinks“):
&whitelist=DATEINAME
Vom Prinzip her würde es der Whitelist-Mechanismus auch ermöglichen, unterschiedliche Abläufe an verschiedene IDs zu binden.