T-Mon: Traces Monitor in xAPI-SG
T-Mon is a set of Jupyter Notebooks to process data in the xAPI-SG data format. T-Mon loads xAPI-SG statements (traces), analyzes them, and displays a default set of visualizations that provide a quick overview of its contents.
T-MON aims to display information as a quick overview for multiple stakeholers (game developers, teachers applying games, data scientist with little previous game knowledge).
Visualizations are better design to fit data of about 20-30 students (average class size), although many of the visualizations which display aggregated data also work for larger datasets.
The main Jupyter Notebook of T-Mon is T-Mon.ipynb. In the first line of the notebook:
- set
local = True
if you are hosting your own Jupyter server locally. - set
local = False
to work with a web-hosted Jupyter server.
Keep storage = file
. You can execute the xAPI-SG Processor and interact with it online using Binder.
When running the T-Mon.ipynb notebook, you will see a widget file selector.
- If using local mode, the selector will allow you to navigate in your local directory. JSON files will be highlighted in green.
- If using remote mode, you will be able to upload your data file.
In any case, choose your JSON file containing a list of xAPI-SG statements.
Finally, run the analysis.
After selected, all xAPI-SG statements in your JSON file will be processed (the Jupyter Notebook ProcessxAPISGStatement.ipynb processes each xAPI-SG statement).
With the information extracted from the statements, the default set of visualizations will be displayed in different tabs in the notebook. See below for details about the visualizations included.
The xAPI-SG Processor can also connect with SIMVA to analyze the traces stored there as part of experiments.
To connect with SIMVA and analyze the xAPI-SG traces files stored there:
- Previous requirements:
- Download the tar.gz file of the ipyauth release with KeyCloak support
- Install ipyauth:
pip install ipyauth.tar.gz
jupyter nbextension enable --py --sys-prefix ipyauth.ipyauth_widget
jupyter serverextension enable --py --sys-prefix ipyauth.ipyauth_callback
pip install boto3 jwt
- The main Jupyter Notebook to use is T-Mon-SIMVA.ipynb.
- Run the first cell in the notebook. A "Sign in" button will appear in the output.
- Click the "Sign in" button, it will pop up a window when you need to enter your SIMVA credentials.
- Once you have signed in, run the following cells. Keep
storage = simva
, so you will be able to access all traces JSON files available in your SIMVA account. - Select your activity id and the
traces.json
file. - Run the analysis.
The Experience API Profile for Serious Games (xAPI-SG) is a validated xAPI Profile to collect information from serious games. Each xAPI-SG statement (trace) represents an activity in the context of a serious game.
For more information about the xAPI-SG Profile, you may visit:
- The official Profile repository
- Our GitHub wiki page
- The journal publication about the xAPI-SG Profile.
To generate random xAPI-SG data, you may also try our xAPI-SG data generator.
The Jupyter Notebooks with the default set of visualizations are included in the folder /vis.
We currently provide default visualizations (see below for description and examples) with the following information:
- Games started and completed
- Progress of players
- Videos seen and skipped
- Progress in completables
- Progress changes in completables
- Scores in completables
- Times in completables
- Correct and incorrect choices per player
- Correct and incorrect choices in questions
- Alternatives selected in questions
- Interactions with items
- Interactions and actions with items
- Accessibles accessed
- Selections in menus
Displays a pie chart of games started and completed.
Displays a line chart showing progress over time for each player.
Displays a bar chart showing, for each video, the total number of times it has been seen and skipped.
Displays a bar chart showing, for each player, the progress achieved in the different completables of the game -- as well as in the total game.
Displays a points/line chart showing, for each player, the progress along time: increase or decrease of different completables of the game.
Displays a bar chart showing the score achieved by players in the different completables.
Displays a bar chart showing, for each completable, the maximum and minimum time of completion by players.
Displays a bar chart showing, for each user the number of correct and incorrect alternatives selected in multiple-choice questions.
Displays a bar chart with the total number of correct and incorrect alternatives selected by players in each multiple-choice question.
Displays multiple bar charts showing the alternatives selected in each multiple-choice question.
For each item, a bar-chart displaying, for that item, the number of times that each player interacted with it.
A heatmap showing how many times each player interacted with each item.
Also, a bubble chart displaying item interactions as a function of time. Larger bubbles indicate more players interacting with the item at that time-period.
Displays a multiple bar chart showing, for each action type (e.g. talk_to
), the total number of times the player has interacted with it.
For each accessible, a bar-chart displaying, for that accessible, the number of times that each player accessed it.
A heatmap showing how many times each player accessed each accessible.
Also, a bubble chart displaying access to each accessible as a function of time. Larger bubbles indicate more players accessing an accessible at that time-period.
For each selection-menu, a bar-chart displaying, for that menu, the number of times that each player selected each option.