Skip to content

Umstieg von Ibex und PCIbex: Ein Leseexperiment in Potato importieren

Ein Ibex- oder PCIbex-Farm-Experiment mit potato import -f ibex in Potato importieren: Self-Paced Reading, Maze, Bewertungen, Tastenantworten und Listen nach lateinischem Quadrat.

potato import -f ibex liest ein Ibex- oder PCIbex-Experiment (PennController) und baut daraus ein Potato-Projekt mit denselben Items, denselben Listen nach lateinischem Quadrat und demselben Haupt-Trial-Typ. Ab Potato 2.12.0 kann eine Self-Paced-Reading-, Maze-, Akzeptabilitäts- oder Zwei-Tasten-Aufgabe mit Potatos Rekrutierung, Umfragen und Export laufen, oder neben einer Annotationsaufgabe.

Ibex führt Experimente zur Satzverarbeitung im Browser aus, und PCIbex Farm hostet in JavaScript geschriebene PennController-Skripte. Potato hat keine Skriptebene. Der Importer liest daher die Teile eines Skripts, die eine feste Form haben, und listet den Rest auf, damit Sie ihn von Hand nachbauen.

Ein Experiment importieren

Richten Sie den Importer auf den Experimentordner, den mit data_includes/ und chunk_includes/, wie in einem Projekt-Download von PCIbex Farm oder Ibex:

bash
potato import -f ibex -i my_experiment/ -o my-study/
python potato/flask_server.py start my-study/config.yaml -p 8000

Ibex-Konstrukte, die der Importer übersetzt

Ibex oder PCIbexPotato
Template("table.csv", row => newTrial(...))Ein Item pro CSV-Zeile, wobei jede Spalte erhalten bleibt
newController("DashedSentence", {s: row.X}) oder klassisches DashedSentenceSelf-Paced Reading im Moving-Window-Modus
newController("Maze", {s: row.X, a: row.Y})Die Maze-Aufgabe, mit den Distraktoren aus row.Y
newScale(N) mit Texten in .before und .after, oder klassisches AcceptabilityJudgmentEine likert-Skala mit N Punkten und diesen Endbeschriftungen
newKey("F", "J") mit newText(row.X)Ein zeitgesteuerter Trial mit diesen Tasten. Benennen Sie die Labels nach ihrer Bedeutung um
Klassisches "Question" nach einem SatzEine Verständnisfrage, mit F und J für die ersten beiden Antworten
Eine Spalte Group oder List, oder klassische Labels ["condition", N]Ein Between-Subjects-Faktor list, eine Datendatei pro Liste, und batch_assignment.group_by_condition: list

Klassische Ibex-Items mit dem Label ["condition", N] teilen sich Gruppe N, und Liste k erhält die Bedingung an Position (k + N) mod (Anzahl der Bedingungen), die übliche Rotation nach lateinischem Quadrat. Items außerhalb des Quadrats kommen in jede Liste, jeweils unter einer anderen ID, weil Potato über alle Datendateien hinweg eindeutige Item-IDs braucht (Experimentablauf).

Listen behalten die Namen, die das Experiment ihnen gibt, etwa L1 oder List1.

Teile, die Sie selbst nachbauen

Diese Teile eines Experiments werden weggelassen, und die Ausgabe sowie IMPORT_REPORT.md führen jeden einzeln auf:

  • Übungsitems und -vorlagen;
  • Bildschirme vom Typ Message, Form und Html;
  • Anordnung über newTimer, Sequence und shuffleSequence;
  • Header und Footer;
  • newFunction und anderes eigenes JavaScript;
  • Bild-, Audio- und Videoelemente sowie Aufnahmen;
  • jede Vorlage, deren Tabelle nicht in chunk_includes/ liegt.

Ein Trial, der keinem der übersetzten Typen entspricht, wird mit einer Meldung abgelehnt, ebenso ein Import, der keine Items hätte, oder eine PCIbex-Vorlage, deren Stimulusspalte in ihrer Tabelle fehlt. Diese Fälle werden als Warnungen gemeldet:

  • eine Spalte, die die Vorlage liest, die aber in der Tabelle fehlt;
  • leere Stimuluszellen;
  • zwei klassische Items mit demselben Label in einer Gruppe. Beide werden behalten, da Ibex eine Gruppe nach Position rotiert.

Legen Sie Einwilligung und Anweisungen auf Umfrageseiten. Für Stimulus-Timing, das zeitgesteuerte Trials nicht abdecken, führen Sie die Aufgabe auf einer jsPsych-Seite aus.

Weiterführende Informationen

Implementierungsdetails finden Sie in der Quelldokumentation.