Skip to content

Si vienes de Ibex y PCIbex: cómo importar un experimento de lectura a Potato

Importa a Potato un experimento de Ibex o de PCIbex Farm con potato import -f ibex: lectura autoadministrada, maze, valoraciones, respuestas con teclas y listas en cuadrado latino.

potato import -f ibex lee un experimento de Ibex o de PCIbex (PennController) y construye un proyecto de Potato con los mismos ítems, las mismas listas en cuadrado latino y el mismo tipo de ensayo principal. Desde Potato 2.12.0, una tarea de lectura autoadministrada, de maze, de aceptabilidad o de dos teclas puede ejecutarse con el reclutamiento, las encuestas y la exportación de Potato, o junto a una tarea de anotación.

Ibex ejecuta experimentos de procesamiento de oraciones en el navegador, y PCIbex Farm aloja scripts de PennController escritos en JavaScript. Potato no tiene una capa de scripting, así que el importador lee las partes de un script que tienen una forma fija y enumera el resto para que lo reconstruyas a mano.

Importar un experimento

Apunta el importador a la carpeta del experimento, la que contiene data_includes/ y chunk_includes/, como en la descarga de un proyecto de PCIbex Farm o de Ibex:

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

Construcciones de Ibex que traduce el importador

Ibex o PCIbexPotato
Template("table.csv", row => newTrial(...))Un ítem por fila del CSV, conservando todas las columnas
newController("DashedSentence", {s: row.X}), o el DashedSentence clásicoLectura autoadministrada en modo de ventana móvil
newController("Maze", {s: row.X, a: row.Y})La tarea maze, con los distractores de row.Y
newScale(N) con textos .before y .after, o el AcceptabilityJudgment clásicoUna escala likert de N puntos con esas etiquetas en los extremos
newKey("F", "J") con newText(row.X)Un ensayo cronometrado con esas teclas. Cambia el nombre de las etiquetas por lo que significan
"Question" clásico después de una oraciónUna pregunta de comprensión, con F y J para las dos primeras respuestas
Una columna Group o List, o etiquetas clásicas ["condition", N]Un factor entre sujetos list, un archivo de datos por lista y batch_assignment.group_by_condition: list

Los ítems clásicos de Ibex etiquetados como ["condition", N] comparten el grupo N, y la lista k recibe la condición situada en la posición (k + N) mod (número de condiciones), la rotación habitual del cuadrado latino. Los ítems que quedan fuera del cuadrado van en todas las listas, con un ID distinto en cada una, porque Potato necesita que los ID de los ítems sean únicos en todos los archivos de datos (Flujo del experimento).

Las listas conservan los nombres que les da el experimento, como L1 o List1.

Partes que tienes que reconstruir

Estas partes de un experimento se dejan fuera, y la salida y IMPORT_REPORT.md enumeran cada una:

  • los ítems y las plantillas de práctica;
  • las pantallas Message, Form y Html;
  • la ordenación con newTimer, Sequence y shuffleSequence;
  • Header y Footer;
  • newFunction y el resto del JavaScript personalizado;
  • los elementos de imagen, audio y vídeo, y la grabación;
  • cualquier plantilla cuya tabla no esté en chunk_includes/.

Un ensayo que no sea de ninguno de los tipos traducidos se rechaza con un mensaje, igual que una importación que no tendría ítems o una plantilla de PCIbex a cuya tabla le falta la columna de estímulos. Estos casos se notifican como advertencias:

  • una columna que la plantilla lee y que la tabla no tiene;
  • celdas de estímulo vacías;
  • dos ítems clásicos con la misma etiqueta en un mismo grupo. Se conservan ambos, ya que Ibex rota un grupo por posición.

Pon el consentimiento y las instrucciones en páginas de encuesta. Para una temporización de estímulos que los ensayos cronometrados no cubren, ejecuta la tarea en una página de jsPsych.

Lecturas adicionales

Para detalles de implementación, consulta la documentación fuente.