Intro to PCIbex

Human Sentence Processing (WiSe 2024/25)

Anna Prysłopska

University of Stuttgart

2025-03-02

PCIbex

PennController for Internet Based Experiments = PCIbex is an open-source software for building and running a wide variety of online experiments, including self-paced reading, questionnaires, acceptability ratings, custom tasks …

Goal: Easily design and run online experiments without extensive programming skills (some some experience in JavaScipt and CSS is useful).

Developed by Jeremy Zehr and Florian Schwarz at UPenn as an extension of Ibex by Alex Drummond.

Examples

Self-paced reading

Acceptability judgment task

Interface

PCIbex online interface

PCIbex online interface annotated 1

PCIbex online interface annotated 2

Experiment elements

Ethics agreement comply with the the Ethics Committee

Participant metadata New experiment, who dis?

Instructions and task description short + sweet + clear, people don’t read

Exercise practice, people didn’t read the instructions

Transition now it’s serious

Actual experiment data you care about most

Data upload to server

Thank you, goodbye, and explanation What did you do?

Bonus Assignment to lists

Experiment elements in action

Self-paced reading full experiment

Self-paced reading full experiment

Code example

newTrial("instructions",
    newHtml("instructions_text", "instructions.html")
        .print()
        ,
    newButton("go_to_exercise", "Continue")
        .print()
        .wait()
);
newTrial("instructions",
    newHtml("instructions_text", "instructions.html")
        .print()
        ,
    newButton("go_to_exercise", "Continue")
        .print()
        .wait()
);
newTrial("instructions",
    newHtml("instructions_text", "instructions.html")
        .print()
        ,
    newButton("go_to_exercise", "Continue")
        .print()
        .wait()
);

Stimuli file

ITEM CONDITION SENTENCE QUESTION CORRECT WRONG LIST TYPE
1 1 Andrea*was*dismissive*… 0 1 item
2 2 Svenja*was*barbaric*… 1 The Viking The teacher 2 item
3 3 Elisa*was*defensive*… 1 The lawyers The policemen 3 filler
4 4 Jana*was*grown*up*… 1 Vodka Gin 4 filler


file_name.csv: Strings in quotes and separated by commas.

"ITEM","CONDITION","SENTENCE","QUESTION","CORRECT","WRONG","LIST","TYPE"
1,1,"Andrea*was*dismissive*to*end*the*date*faster.",0,,,1,"item"
2,2,"Svenja*was*barbaric*to*win*the*Vikings*over.",1,"The Viking","The teacher",2,"item"
3,3,"Elisa*was*defensive*to*distract*the*lawyers.",1,"The lawyers","The policemen",3,"filler"
4,4,"Jana*was*grown*up*to*buy*vodka*for*the*party.",1,"Vodka","Gin",4,"filler"

Event sequence

Sequence("ethics", "setcounter", "metadata", "instructions",
randomize("items-exercise"), "start_experiment",
rshuffle("items-filler", "items-item"), SendResults(), "end")

Ethics agreement "ethics"

Assignment to lists "setcounter"

Participant demographic data "metadata"

Instructions and task description "instructions"

Exercise randomize("items-exercise")

Transition "start_experiment"

Actual experiment rshuffle("items-filler", "items-item")

Data upload SendResults()

Thank you, goodbye, and explanation "end"

List assignment

Latin Square Design

List must be manually coded and called List or Group

PCIbex automatically rotates through the lists.

Position in sequence matters.

List randomization

randomize("items-exercise") and rshuffle("items-filler", "items-item") does NOT guarantee that no two items follow each other.

Consider target to distractor ratio or set a fixed order of sentence presentation.

For a fixed order of presentation, remove randomize() and rshuffle().

Getting started

Option 1 Option 2 Option 3
Default template Write your own Copy someone else’s experiment (e.g. mine)

Questions

Your Turn!

farm.pcibex.com