Learner Model

The learner model java is the database containing records. The learner model thalamus module is the interface to the Emote System as a whole. The learner model assesses the student’s task actions/performance, records information about learner state and saves a history.

The learner model record messages sent from the S1 map applications and S2 Enercities activity, and the interaction Analysis module and it also combines them with the rest of the learner state to be forwarded to other modules.

How the Learner Model was used in Emote

The learner model contains details of the learner; this includes the learner’s name, age, and sex. The learner model is also able to record questionnaire and test data from pre and post-tests. This data can be processed and used in the next session that the user interacts with the robot.

The learning progress of the learner is based on indicators of learner’s skills, abilities and difficulties measured through the learner’s actions on the learning platform. The task specific skills are recorded as competencies. These are built up depending on the scenario. We will record as much interaction with the activity as possible; this includes the use of tools, touches on screen, the attempts to answer each question, the goals and progress through the activity. This information feeds in to the competency values that relate to each task. We identify difficulties when the learner has a low competency score or is taking an action that is not appropriate for the step in the activity.


Skill Levels

The skill levels are built through constraint based modelling (CBM). The learner model receives evidence about how a constraint has been met or broken. This constraint is linked to a competency. The evidence of how the constraint is met or broken then contributes to the calculation of the skill level. The more recent evidence is given a higher weighting. The time taken to give an answer is also used to weight the evidence.

For scenario 1 the competency values are constructed based on the constraints that are met or broken in each attempt of providing an answer in the activity. The competencies measured are direction reading, distance measuring, and map symbol knowledge. The strategies that we can model are the appropriate use of each tool and information seeking used by the student.

In scenario 2 the competency values are based on how close the learner’s moves match various possible strategies in the game, such as building a balanced city vs focusing on a specific element such as the economy.


Affect Related States

The learner model records and makes the affect related states from the IA module available to the rest of the system.



The learner model can connect via a thalamus module. It subscribes to events that other modules publish and update aspects of the learner model.

The learner model publishes events when there is a significant event; for example the new values in the learner model after the learner has made an attempt at answering a question, or there is a significant change in an affect related value.


Timing of publishing

The primary event that causes the learner model to publish is after a learner provides an answer in the activity. The learner model will also publish when it identifies that the learner is experiencing difficulties due to a change in affect perception, inappropriate tool use or strategy, and a period of time of inactivity.


Query of the learner model

The learner model also has an action that can be called to get the current values of the learner model. There will be other actions that can be called to query the model in specific ways that might be required by other modules in the system.

The learner model is recorded in a relational database. All historic values of the data sent in to produce the learner model will be stored and this can be queried. All data is linked to a learner id, activity id, and session id.


Output from the Learner Model module

The output from the LM module is a serialised JSON object (Figure 4), which contains information regarding the learner state and the affective state of the learner

Event name:

public List<CompetencyItem> competencyItems { get; set; }
public String mapEventId { get; set; }
public int learnerId { get; set; }
public String learnerName { get; set; }
public int stepId { get; set; }
public int activityId { get; set; }
public int scenarioId { get; set; }
public int sessionId { get; set; }
public EmoteCommonMessages.LearnerModelUpdateReason reasonForUpdate { get; set; }
public Boolean correct { get; set; }
public List<AffectType> mAffectiveStates { get; set; } //As above.
public String mMapEventId { get; set; }


The other outputs are detailed in the thalamus module.


What is the Learner Model used for?

The learner model assesses the student’s task actions/performance, records information about learner state and saves a history. It makes this information available to the rest of the system.


Software required:

Windows 8


Processor: i5

Java 1.7 32bit

Apache tomcat 7 x64

MySQL Server 5.6


Tutorial / Guidance

Learner Model Thalamus model

This is as a thalamus module that allows communication to the rest of the Emote system. Run LearnerModelThalamus.exe and the module should automatically connect to the Thalamus server.

Learner Model Java model

This is a Java application that runs inside a tomcat application server. It also requires a MySQL Database server running on the computer.

The database needs to be configured with the correct database and username (these can be changed in config file). Then simply deploy and run the war file on the tomcat server.

Full instructions are in the file in the repository.

Download the Learner model:

Supporting documents & information

Deliverable 4.2 and deliverable 4.3 (to be added soon).


Learner Model Downloads

Learner model Java:


Learner model Thalamus module: