xAPI Statements 2023-1

Back to Table of Contents

GIFT produces several different xAPI statements. The GIFT xAPI profile can be found at GIFT\config\lms\profiles\ starting in GIFT 2021-2.

Currently xAPI statements are created by the LMS Module, more specifically is a great place to start looking.

When are xAPI Statements created by GIFT?

During a GIFT course, statements are written when:
  • scored survey with answers is completed
  • learner state is updated
  • environment adaptation strategy is applied
  • DKF is started
  • DKF is finished
  • publish lesson score event at the end of a DKF (contains summative/overall assessments)
  • Game master active session OC/T actions (e.g. bookmark, observed assessment)
  • course completes
After a GIFT course, statements are written when:
  • Game master past session OC/T actions (e.g. alter summative assessments)

Course Concepts

A 'concept' in GIFT is something that can be assessed at both the Knowledge and Skill level. These concepts appear in various parts of a GIFT course including course objects (e.g. Adaptive courseflow, VBS, SE Sandbox, Question Bank), metadata editor, dkf editor, and course concepts editor. There are two types of concepts: course concepts and supportive concepts.

A course concept is what GIFT identifies as a concept that should be tracked across course objects and courses. The assessments are intended to persist somewhere such as xAPI statements in a Learner Record Store (LRS). Therefore, those xAPI statements mentioned on this page that are indicative of over-arching analysis, such as summative assessments, course concepts are required. What this means is that the summative assessments xAPI statements will only be made for those DKF concepts that are also course concepts. Currently course concepts are defined in the Course Properties section of a GIFT course. You can import those course concepts into the DKF editor or simply type in the same concept name and the linkage between a DKF concept and a course concept is done automatically.

A supportive concept is a concept that you would find in a DKF. Its purpose is to help with logic in the DKF. By marking a task or concept as scenario support you are indicating that it has been created to help with the flow of training. For example, a timer condition under a concept could be used to deliver instructions to the learner or detect when a decision has been made. Often times these events can result in no significant training decisions being made. Therefore scenario supporting tasks and concepts can then be hidden by default from instructors and observer controller dashboards in order to bring more important assessments to the foreground.

screenshot of a scenario support concept in a DKF

Chain of custody

In every GIFT xAPI statement there is a reference to the GIFT instance and the session within that GIFT instance that produced the statement.

Currently the following attributes are provided:
  • DKF file name (e.g. React to Contact.dkf.xml)
  • Domain session log file name (e.g. domainSession790_uId1_2021-10-18_18-06-49.protobuf.bin)
  • Domain session log absolute file path (e.g. D:\\GIFT-SVN\\branches\\STE_CFT_Integration\\GIFT\\output\\domainSessions\\domainSession790_uId1)
  • IP address of GIFT machine (e.g. - more specifically the IP address of the computer running the GIFT LMS module.
  • Date the GIFT instance was built (e.g. 2021-10-18 16:44 EDT)
  • GIFT version name (e.g. 2023-1)
  • GIFT release date (e.g. Nov 2021)


There are several types of GIFT surveys that can be authored: Collect user information, Collect user information scored, Knowledge Assessment, Question Bank. Each of these can be used to present questions, elicit learner responses, score those response and classify those scores into one of many learner state attributes (e.g. low Grit, high motiviation, novice knowledge on Algebra).

This example shows 'mhoffman' answered the 'Motivational Assessment Tool (MAT)' survey that resulted in several Motivational attribute classifications (e.g. MotivationGoalOrientation": "High").

Learner State

The GIFT learner state message is sent from the Learner module to the Pedagogical module anytime a learner state changes for an individual or team during a GIFT course. The learner state contains performance, cognitive and affective data.

Performance State

In the following example the GIFT user eburmester is being actively assessed in a real-time assessment (DKF) during the course STEELR - Battle Drill 6a - Playback - Log Option 1 - Demo Version.course.xml and has a learner state performance assessment on the Concept Prevent Weapon Safety Violation which is apart of the Task Practicing Muzzle Awareness. The current, short term and predicted assessment is At Expectation.

Cognitive State

In the following example the GIFT user mhoffman has a Cognitive learner state attribute of Self-Regulatory Ability value of low.

Affective State

In the following example the GIFT user mhoffman has a Affective learner state attribute of Anxious value of high.

Summative assessment scoring

At the end of a real-time assessment (DKF) in a GIFT course, a Published Score message can be sent from the Domain module to the LMS module. The Published score message contains overall scoring at the DKF conditions when rules have been authored for that condition instance. The condition must be a descendant of a course concept also (more on course concepts ). This scoring provides both counts and time based assessments of individuals and groups of individuals / teams. Overall assessment scoring is different than real-time assessments in that real time assessments flow from different values as events happen and overall assessment applies all of the recorded events against a scoring rule to determine overall pass/fail (or Below/At/Above assessment).

In the following example lmarshall has just finished a real-time assessment (DKF) in the course STEELR - Battle Drill 6a - Playback - Log+Option 2 - Demo Version.course.xml. The user is receiving an overall assessment score of Below Expectation for violating the Concept Prevent Weapon Safety Violation during the Task Practicing Muzzle Awareness a total of 14 times. The resulting assessment is Fail.

In the following example a group/team of 4 individuals (lmarshall, kadams, tgregory, wlawson) have just finished a real-time assessment (DKF) in the course STEELR - Battle Drill 6a - Playback - Log+Option 2 - Demo Version.course.xml. The group are receiving an overall assessment score of Below Expectation for violating the Concept Prevent Weapon Safety Violation during the Task Practicing Muzzle Awareness a total of 39 times. The resulting assessment is Fail.

In GIFT 2023-1, Stress and Difficulty where added.

"difficultyReason": "Changed from Easy to Hard with stress now at 0.8",
"difficulty": 3,
"stressReason": "'Apply weapon malfunction to AutoRifleman' applied 0.6 stress.",
"stress": 0.8

In this example the Suppress OPFOR with overwhelming fire summative assessment scoring was changed in the Game Master Past Session to Above Expectation. You can see the count value was changed to overridden. This is because GIFT currently has no UI for allowing the user to provide a new count and zero isn't appropriate as a new value.

Mission/Scenario metadata

The attributes found in and displayed in the Game Master Mission panel will be written as an xAPI statement.

Team Member assignment

coming soon

Voiding/Invalidating statements

Using the GIFT Game Master Past Session user interface, the user can alter the assessments captured during the session. This over-ride action will void the xAPI statement and create a new xAPI statement.

The username of the user making the change will be included in the statements.

Summative Assessment statement example

In this example a summative assessment is changed on the concept 'Suppress OPFOR with well-aimed fire'. The assessment is changed from 'At Expectation' to 'Below Expectation' and the instructor making the change provides a reason of 'Failed to properly engage all enemy'.

The attributes of interest to track are:
  1. In the new original statement voided
    1. The 'id' is 'e6e43289-bfe2-3d70-b63a-c86e3cdacd6f'
    2. The 'assessment' is 'AtExpectation'
    3. The 'response' is 'At Expectation'
    4. The 'voided' value is 'true'
  2. In the new statement
    1. The 'revision' attribute appears with value of 'e6e43289-bfe2-3d70-b63a-c86e3cdacd6f' (provides traceability to the original voided statement)
    2. The 'assessment' is 'BelowExpectation'
    3. The 'response' is 'Below Expectation'
    4. The 'voided' value is 'false'
    5. The 'instructor':'name' is 'mhoffman', the username of the instructor using the Game Master to make this change

The original statement prior to any change:

The new original statement voided:

The new statement:


These observer markers are normally created using the GIFT Game Master Active Session UI. As they make their way through the GIFT architecture they are extracted from Learner State messages.

Environment Adaptation

The Environment Control messages contain an Environment Adaptation (e.g. Time of day Midnight). These are strategies that are sent by the Domain module to the Gateway module to apply in the training application.

In GIFT 2023-1, Stress was added to the statement. E.g. "stress": 0.6