5 Erste Schritte in OpenSesame

5.1 Die Logik von OpenSesame

Nachdem wir nun einen groben Überblick über den Aufbau von und die möglichen Werkzeuge in OpenSesame haben, werfen wir einen genaueren Blick auf die Funktionsweise und Logik von OpenSesame. Öffnen wir Open- Sesame und erstellen ein neues Experiment. Wählen wir dazu unter dem Punkt “Neues Experiment erstellen” die Variante “Standard-Vorlage”.

5.1.1 Backends

OpenSesame kann als eine übergeordnete Plattform verstanden werden, die zur Generierung von Reizen auf bereits bestehende Python-Libraries zurückgreift. Python-Libraries sind “Bibliotheken”, die Python-Funktionen für spezifische Aufgaben beinhalten. Bibliotheken, die für die Erstellung psychologischer Experimente geschrieben wurden und deren Funktionen von OpenSesame verwendet werden können sind PsychoPy, Expyriment, Legacy/PyGame und droid. Bis auf droid (das für die Erstellung von Experimenten auf Android-Geräten gemacht ist) können prinzipiell alle Backends für Experimente verwendet werden (Abbildung 1). Es gibt jedoch kleinere Unterschiede zwischen den jeweiligen Backends, die gelegentlich relevant sein können.

Trulli
Abbildung 1: Bildschirm mit den Einstellungsoptionen für ein Experiment, z.B. den Backends.



1. PsychoPy: Wurde von Jonathan Peirce geschrieben und ist definitiv das Schwergewicht unter allen Python-Bibliotheken für psychologische Experimente. Eine große Stärke von PsychoPy ist (unter anderem) eine sehr stabile und verlässliche Generierung selbst komplexer Stimuli. Für die meisten Experimente empfehle ich PsychoPy als Backend.

2. Legacy: Legacy basiert auf Pygame und ist eine sehr einfache, dafür sehr verlässliche Bibliothek für psychologische Experimente. Ein großer Vorteil von Legacy ist, dass es mit Software interagieren kann, die auf einer 32-bit Architektur basieren (capisce? - ich auch nicht ganz). Diese Tatsache wird dann relevant, wenn beispielsweise Eye-Tracker Software auf einer solchen Architektur beruhen.

3. Expyriment: Eine große Stärke von Expyriment ist, bei Anwendung in einem Skript, die Möglichkeit brauchbare Experimente in relativ kurzen Skripten zu erzeugen. In der Vergangenheit war Expyriment relativ unkooperativ bzgl. OpenSesame. Dennoch wird es weiterhin als ein mögliches Backend dargeboten.

4. droid:14 Nomen est omen – dieses Backend wird zur Erstellung von Experimenten verwendet, die auf Android-Geräten laufen sollen (Handys und Tablets).

5.1.2 Unsere erste Sequenz

Nachdem wir nun unsere leere Standard-Vorlage in OpenSesame vor uns haben und uns für ein Backend entschieden haben (ich verwende PsychoPy, die Wahl des Backends verändert aber nichts am weiteren Vorgehen), legen wir los!

Wie bereits erwähnt, führt OpenSesame die im Überblick dargestellten Items der Reihe nach aus. Erstellen wir eine erste kleine Sequenz, um das zu verdeutlichen: Wir wollen eine Sequenz erstellen, in der wir nacheinander und jeweils für eine Sekunde ein grünes, ein gelbes und ein rotes Rechteck auf einem schwarzen Hintergrund sehen (siehe Abbildung 2).

Trulli
Abbildung 2: Schematische Darstellung unserer ersten Sequenz.



1.) Löschen wir zunächst die Items“getting_started” (maxkonmin) und “welcome” (maxkonmin) aus der Übersicht. Das machen wir, indem wir die Items mittels Rechtsklick anklicken und die Option Löschen wählen. Alternativ kann ein Item mit einem Klick auf die linke Maustaste ausgewählt und dann mittels Entf-Taste gelöscht werden. Auf diese Art werden die gelöschten Items in den Papierkorb verschoben. Sollen sie dauerhaft gelöscht werden, muss die Option Alle verknüpften Kopien dauerhaft löschen gewählt oder der Papierkorb entleert werden.

2.) Nachdem im Überblick nun nur noch die Items Neues Experiment und experiment sind, ziehen wir ein Sketchpad-Item (maxkonmin) in den Überblick und fügen es unter dem Item experiment (maxkonmin) ein (drag-and-drop).

Diesen Schritt wiederholen wir weitere zweimal, da wir insgesamt drei Bildschirme haben wollen. Wichtig: um den Überblick über unser Experiment bewahren zu können, sollte den Items deskriptive, also leicht verständliche, Namen gegeben werden. In unserem Fall bietet es sich an, die einzelnen Sketchpads nach den Farben zu benennen, die sie darstellen sollen. Ich verwende dabei stets die englischen Bezeichnungen (Abbildung 3).

Trulli
Abbildung 3: Struktur unserer Sequenz.



3.) Würden wir das Experiment in seiner jetzigen Form starten, würden wir lediglich einen schwarzen Display sehen. Zu allem Überfluss müssten wir auch noch dreimal eine beliebige Taste drücken, um diesem deprimierenden Anblick zu entrinnen. Frisieren wir unser Experiment nun also etwas auf. Wählen Sie das erste Sketchpad (bei mir green, wie in Abbildung 4) aus. Links neben der schwarzen Folie sehen Sie verschiedene Werkzeuge, die auf der Folie verwendet werden können. Probieren Sie bei Gelegenheit doch einmal alle dieser Werkzeuge aus – probieren geht über studieren.

Wählen wir in der Werkzeugspalte links das Quadrat aus, indem wir darauf klicken. Sie sehen, Ihr Kursor hat sich soeben in einen Stift verwandelt. Mit diesem zeichnen Sie ein Rechteck in die Mitte des Bildschirms.

Trulli
Abbildung 4: Geteilte Ansicht der Bedienoberfläche und der Skriptansicht.



4.) Wählen Sie die Option Füllen aus. Nun ist es an der Zeit zum ersten Mal Hinter die Kulissen und auf das zugrundeliegende Skript zu schauen. Klicken wir dazu den Button Ansicht wählen an und wählen die Option geteilte Ansicht Wenn Sie alle Schritte befolgt haben, sollten wir nun auf dem gleichen Stand sein:

In der Skriptansicht werden die Befehle angezeigt, die OpenSesame ausführen muss, um den in der Bedienoberfläche dargestellten Reiz zu generieren. Auch wenn diese Skriptansicht bei manchen eine Abwehrreaktion auslösen mag, die Angst davor ist völlig unbegründet. Man kann bereits als Novize oder Novizin ungefähr ablesen, was dieser Befehl macht. Greifen wir doch direkt ins Geschehen ein.

5.) Markieren Sie das Wort white im Skript und ersetzen Sie es durch green. Generell haben Sie, wenn Sie Farben in OpenSesame angeben, die Wahl, ob Sie die HTML-Namen der Farben angeben, oder Hex-Codes. Bewegen Sie dann den Kursor in eine andere Zeile (z.B. mit zwei Klicks auf die Pfeiltaste nach oben). Haben Sie etwas gemerkt? Sie haben soeben die Farbe des Rechteckes umprogrammiert. Klopfen Sie sich mal auf die Schulter! Wenn Sie damit fertig sind, schließen Sie die Skriptansicht.

6.) Wir wollen zudem die einzelnen Farben für jeweils eine Sekunde darbieten. Ändern Sie dazu im Feld Dauer den Inhalt keypress zu 995. OpenSesame verwendet für Zeitangaben Millisekunden. Weshalb wir nun hier nicht 1000, sondern 995 eingeben, wird an einer anderen Stelle etwas mehr erläutert.

7.) Wiederholen Sie dieselbe Prozedur für die verbleibenden beiden Sketchpad-Items. Sie müssen lediglich die jeweiligen Farben anpassen.

8.) Drücken Sie auf den Ausführen im Vollbildmodus…-Pfeil.

In der Annahme, dass alles geklappt hat: herzliche Gratulation! Falls nicht: Shame - ding ding - shame - ding ding…

Sollte das Experiment bei einem Bildschirm hängen bleiben, drücken Sie eine beliebige Taste. Zu Beginn passiert es oft, dass man vergisst, die Präsentationszeiten anzupassen (shame - ding ding…).

5.1.3 Antworten sammeln und speichern

Auch wenn wir jetzt schon eine nette Sequenz haben, die wir bei unserer nächsten Familienfeier stolz präsentieren können – uns fehlen noch die zwei wesentlichsten Merkmale eines psychologischen Experiments: das Erfassen einer Antwort und das Sichern dieser (und anderer) Daten.

Antworten sammeln Zunächst muss die Entscheidung getroffen werden, welche Antworten seitens der Versuchspersonen verlangt werden sollen. Zumeist soll in einem herkömmlichen Reaktionszeitexperiment eine manuelle Antwort auf einen relevanten Reiz (auch oft Zielreiz genannt) gegeben werden. Diese manuellen Antworten können, wie oben bei den Plugins beschrieben, auf verschiedenen Geräten gesammelt werden: der Computertastatur, der Maus, einem Joystick (auch auf einem Gamepad), sowie auf einem Touchscreen. In der weiteren Folge beschäftigen wir uns primär mit Antworten auf einer Computertastatur (maxkonmin).

Gehen wir zurück zu unserem ursprünglichen Experiment. Behaupten wir, zu Demonstrationszwecken, dass wir testen wollen, wie schnell die Versuchspersonen nach dem Verschwinden des roten Rechtecks reagieren können. Hierzu müssen wir zwei Änderungen am bereits bestehenden Experiment vornehmen:

  1. Ziehen wir ein Keyboard_Response-Item (maxkonmin) in den Überblick und lassen es nach dem Sketchpad (maxkonmin) red los. Gewöhnen Sie sich, gleich wie bei den Sketchpads, an, den Items im Überblick gute deskriptive Namen zu geben. Wäre Ihr Experiment nur mit Items und deren Standardnamen bestückt, wäre das Experiment nach kurzer Zeit absolut unübersichtlich. Nennen wir unser Keyboard_Response-Item (maxkonmin) also Response. Würden Sie das Experiment nun so durchführen, würden Sie feststellen, dass das rote Rechteck am Bildschirm bleibt, zumindest so lange, bis wir eine Antwort geben.

Woran liegt das? Wir haben OpenSesame zwar gesagt, dass wir nach dem Bildschirm red eine Antwort sammeln wollen. Es wurde jedoch kein neuer Bildschirm definiert, der anstelle des Bildschirms red treten soll. Darum bleibt das rote Quadrat einfach sichtbar. Dieser Umstand ist jedoch leicht zu beheben.

  1. Nehmen wir ein weiteres Sketchpad-Item und ziehen es zwischen red und Response. Nennen wir diesen neuen Bildschirm blank. Da wir lediglich einen schwarzen Bildschirm haben wollen, brauchen wir nichts weiter zu tun, außer die Präsentationsdauer des neuen Bildschirms auf 0 setzen.

Was hat das jetzt zu bedeuten? Wie oben angemerkt, kommt nach dem Bildschirm blank das Antwortitem Response, aber kein neuer Bildschirm. blank bleibt also wieder so lange sichtbar, bis ein neuer Bildschirm definiert wird. Die Präsentationsdauer von 0 bedeutet nun nicht, dass OpenSesame den schwarzen Bildschirm nur für 0 Millisekunden (also gar nicht) präsentiert, sondern dass ohne weitere Verzögerung gleich das nächste Item zur Ausführung gelangt.

Prinzipiell ist hier ein guter Zeitpunkt, sich der Bedeutung des Dauer - Feldes in OpenSesame bewusst zu werden: Die Dauer eines Items bedeutet nicht, dass das betreffende Item so lange gezeigt wird, sondern OpenSesame wartet die angegebene Dauer, bis es zum nächsten Item in der Überblicksliste springt!

Unser Experiment sollte nun so wie in Abbildung 5 aussehen.

Trulli
Abbildung 5: Momentaner Stand unseres Experiments.



Daten speichern

Nach diesen anfänglich vielleicht recht eigentümlichen Informationen wird es Sie wohl beruhigen, dass das Speichern der Daten mit lediglich einem Handgriff funktioniert: Ziehen Sie das Logger-Item (maxkonmin) in den Überblick und lassen Sie es nach dem Response-Item los. Es ist absolut essentiell, dass der Logger nach dem Response-Item platziert wird: wenn wir die Daten speichern und erst danach kommt eine Antwort, dann ist die Antwort logischerweise nicht mehr Teil der gespeicherten Daten.

Speichern Sie Ihr Experiment nun in einem beliebigen Ordner auf Ih- rem PC.

Führen wir nun das Experiment durch, indem wir auf den Ausführen im Vollbildmodus…-Pfeil klicken. Geben Sie die Versuchspersonennummer 1 ein und führen Sie das Experiment durch.

Sollten Sie von OpenSesame eine Fehlermeldung erhalten, verzagen Sie nicht. Gehen Sie die oben beschriebenen Punkte nochmals genau durch. Beim Beheben von Fehlern lernt man wesentlich mehr als wenn alles glatt läuft.

5.1.4 Daten eines OpenSesame-Experiments

Sie werden nun in dem Ordner, in dem Sie Ihr Experiment gespeichert haben, die Datei subject-1.csv finden (bzw. die Versuchspersonennummer, die Sie vorhin angegeben haben). CSV steht für comma separated values, das bedeutet, dass die einzelnen Spalten im Datensatz durch Kommas getrennt sind. Manche kostenpflichtige Programme (Excel… hust) sind nicht in der Lage, .csv-Dateien einfach und ohne weitere Einstellungen anzuzeigen. Verwenden Sie hingegen beispielsweise LibreOffice oder OpenOffice, haben Sie diese Probleme nicht. Diese Office-Programme sind frei verfügbar und stehen kostenpflichtigen Alternativen um kaum etwas nach.

Wenn Sie die Datei subject-1.csv nun öffnen, sehen Sie in etwa eine Tabelle wie in Abbildung 6 vor sich. Sie sehen, dass OpenSesame eine Fülle von Variablen speichert, ohne dass wir das zusätzlich spezifizieren müssen. Im Datensatz finden sich Informationen über das verwendete Backend, Zeit und Datum des Experiments, die von uns erstellten Variablen und so weiter und so fort. Beim Sichern der Daten gilt der Kehrwert des althergebrachten Spruchs: Mehr ist oft weniger. Mit “weniger” ist hier das Haareraufen gemeint, dem man sich volle rVerzweiflung hingibt, wenn man nach 50 Versuchspersonen merkt, dass man eine kritische Variable nicht aufgezeichnet hat.

Unser Datensatz hat lediglich eine Zeile, da unser Experiment aus lediglich einem Durchgang besteht. Führen wir ein Experiment mit mehr Durchgängen durch, besteht der Datensatz aus ebenso vielen Zeilen wie wir Durchgänge hatten.

Trulli
Abbildung 6: Unser erster Datensatz.



  1. Dieses Backend wird noch in OpenSesame Versionen 3.2… angeboten. Zum Zeitpunkt des entstehens dieses Abschnittes ist dieses Backend in Version 3.3.3 nicht verfügbar und wird wahrscheinlich/vielleicht im Rahmen künftiger Updates wieder ergänzt.↩︎