ℹ️ Main building block of the Edia toolbox

🧱 Xblock?

An experiment is defined as a sequence of blocks playing after each other, in EDIA called Xblocks

---
config:
  theme: neutral
  themeVariables:
    fontSize: 15px
    fontFamily: Bahnschrift
  layout: dagre
---
flowchart TD
 subgraph s1["Task"]
        n1["Task Variant A"]
        n2["Task Variant B"]
  end
     n1:::EdiaBlue
     n2:::EdiaBlue
    classDef EdiaPurple stroke:transparent, stroke-width:4px, stroke-transparent: 0, fill:#C36897, color:#FEFEFE
    classDef EdiaYellow stroke:transparent, stroke-width:4px, stroke-transparent: 0, fill:#FFdC4A, color:#FEFEFE
    classDef EdiaGreen stroke:transparent, stroke-width:4px, stroke-transparent: 0, fill:#428360, color:#FEFEFE
    classDef EdiaCyan stroke:transparent, stroke-width:4px, stroke-transparent: 0, fill:#34AAAA, color:#FEFEFE
    classDef EdiaGrey stroke:transparent, stroke-width:4px, stroke-transparent: 0, fill:#797873, color:#FEFEFE
    classDef EdiaOrange stroke:transparent, stroke-width:4px, stroke-transparent: 0, fill:#D9740D, color:#FEFEFE
    classDef EdiaBlue stroke:transparent, stroke-width:4px, stroke-transparent: 0, fill:#347FAA, color:#FEFEFE

As experiments often use the same task in different blocks but with slightly different settings per block, EDIA supports defining a json configuration file per Xblock (i.e. task variant) To avoid redundancy, these variants inherit from a ‘parent’ configuration file, which defines the base settings for the task.

The Xblock base settings are defined in the Configs/base-definitions/ folder.

The Xblock variant settings are defined per participant in the Configs/<pid>/<sesnum>/block-definitions/ folder.

🧱 Xblock base

Example of a config file for the base.

It contains the identifiers type and subType

{
  "type": "task",
  "subType": "stroop",
  "settings": [
    { "key": "cubeColors", "value": "#FFFF00;#F00F0F;#00F500;#004F30" },
    { "key": "fontSize", "value": "30" },
    { "key": "fontAlignment", "value": "center" },
    { "key": "wordPosX", "value": "0" },
    { "key": "wordPosY", "value": "0" }
  ],
  "instructions": [
    { "key": "_start", "value": "Now we are doing the stroop task" },
    { "key": "_start", "value": "please pay attention to the screen" },
    { "key": "_end", "value": "Now we are doing the stroop task" }
  ]
}

<aside> ⚠️ 1) Key values starting with “_” will be ignored in the logging routines. 2) Separating strings with a ; will parse into a List<string> in the settings.

</aside>

type The type of block. At this time February 19, 2024 there are two: task, break
subType Unique identifier for this block

<aside> 🔴 You cannot make up your own values for the type It’s readonly and used by the internal statemachine.

</aside>