Project

General

Profile

Interface Control Document

Back to Table of Contents

Table of Figures

Figure 1: The GIFT architecture diagram shows how the various components of GIFT interact. The arrows depict the flow of messages and interactions.

Figure 2: Message Flow through ActiveMQ

Overview

The purpose of the GIFT Interface Control Document (ICD) is to describe the interface, in terms of messaging input and outputs, of each module in the system. It does not attempt to describe the characteristics of each module but merely treat each module as if it were a black box. GIFT developers can use this document to create new modules in replace of existing modules by adhering to the messaging I/O described.

Figure 1: The GIFT architecture diagram shows how the various components of GIFT interact. The arrows depict the flow of messages and interactions.

Modules

Messaging Details

Each module declares two ActiveMQ queues that are used to receive messages from other GIFT modules; the “Inbox” queue and the Module Queue. The queues are named according to the following convention:
Inbox Queue: <module name>:<ip address>:Inbox
Module Queue: <module name>:<ip address>

The functions of the two queues are described below:

Inbox Queue
The Inbox Queue of a particular module is effectively its messaging address. As such other modules wishing to communicate with a particular module will address messages to the desired module’s Inbox Queue. Conversely, when a module communicates with other modules, it identifies itself using the name of its Inbox Queue.

Module Queue
This is the queue the module listens on to receive incoming messages – effectively it is the Module’s “Outbox”. Messages should not be directly sent to this queue because the Camel component of ActiveMQ will route the message from the Inbox to this queue as well as to other queues for logging and monitoring. An illustration of this process is shown below.

Figure 2: Message Flow through ActiveMQ

Upon receipt of a message, a module can reply, initially, with a:
  • ACK message – Indicates that the message was received and successfully decoded.
  • NACK message – Indicates that the message was received but was unable to be decoded.
  • No message – Nothing is sent for messages read from a Topic or those messages whose header specifies that a reply is not needed (refer to message header attributes for each message type in this document).
Once a message is handled by the recipient module, the module can optionally respond with a reply message to convey additional information. For example, the sender of the LMS Data Request message would expect to receive a LMS Data Reply message which would contain all the LMS data of interest. In addition to specific reply message like the LMS Data Reply, there are two generic reply message types:
  • Processed ACK – Signifies that the message was handled successfully.
  • ACProcessed NACK – Signifies that the message was not handled successfully.

Currently only a single reply message (ACK and NACK are not considered reply messages here, e.g. LMS Data Reply) should be sent for each received message. Additional replies will be ignored by the recipient.

User Management System (UMS) Module

Details

The primary function of the UMS module is to manage a user session. It is responsible for storing information about the user such as biographical details, in addition to maintaining information about domain sessions. It does not, however, keep scoring records of user’s training history. That is handled by the LMS. The UMS also contains the message logger which is responsible for logging all messages sent on a single ActiveMQ network.

Subscriptions

Domain Discovery
  • For logging purposes
Pedagogical Discovery
  • For logging purposes
Tutor Discovery
  • For logging purposes
Learner Discovery
  • For logging purposes
Sensor Discovery
  • For logging purposes
Gateway Discovery
  • For logging purposes
LMS Discovery
  • For logging purposes

UMS Discovery

Logger Queue

Messages

Module Status

Send
To: UMS Discovery
Reply With: Nothing
Description: Notify all subscribers of the UMS module status

Receive
From: LMS Discovery, Pedagogical Discovery, Learner Discovery, Tutor Discovery, Gateway Discovery, Domain Discovery, Sensor Discovery
Reply With: Nothing
Description: For logging the module status messages of the other modules that are active in the system

Module Allocation Request

Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this UMS module for a User Session

Module Allocation Reply

Send
To: Tutor
Expected Reply: Nothing
Description: Reply to the Tutor’s request to use this UMS module for a User Session

Initialize Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing

Start Domain Session

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting

Close Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

New User Request

Receive
From: Tutor
Reply With: Login Reply, Processed NACK
Description: Request for a new user to be created

User Id Request

Receive
From: Tutor
Reply With: User Id Reply, Processed NACK
Description: Request for a user id based on a username

Login Request

Receive
From: Tutor
Reply With: Login Reply, Processed NACK
Description: Request for a user to be logged in

Logout Request

Receive
From: Tutor
Reply With: Processed ACK, Processed NACK
Description: Request for a user to be logged out

Sensor File Created

Receive
From: Sensor
Reply With: Nothing
Description: Notification that a file has been created with sensor data

Submit Survey Results

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Submit the results of a survey

Get Survey Request

Receive
From: Domain, Tutor
Reply With: Get Survey Reply
Description: Request a survey

Domain Selection Request

Receive
From: Domain
Reply With: Domain Selection Reply, Processed NACK
Description: Request a domain session on the selected domain

Survey Check Request

Receive
From: Domain
Reply With: SurveyCheckResponse, Processed NACK
Description: The UMS module needs to check the survey references against entries in the survey database.

Domain Session Start Time Request

Receive
From: Monitor
Reply With: Domain Session Start Time Reply, Processed NACK
Description: Request the start time of a domain session.

Get Experiment Request

Receive
From: Domain
Expected Reply: Get Experiment Reply
Description: Reply to a request to retrieve the experiment details by experiment id.

LTI Get User Request

Receive
From: Tutor
Expected Reply: LTI Get User Reply
Description: Request to get the LTI user record based on an incoming LTI launch request (containing a consumer key and consumer id).

LTI Get User Reply
Send
To: Tutor
Expected Reply: Nothing
Description: The LTI user record data that was found for the user. If the user was not found, null is returned for the lti user record.

Learning Management System (LMS) Module

Details

The primary function of the LMS module is keep track of a user’s training history. The GIFT LMS will save the scores of every lesson.

Subscriptions

LMS Discovery

Messages

Module Status

Send
To: LMS Discovery
Reply With: Nothing
Description: Notify all subscribers of the LMS module status

Module Allocation Request

Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this LMS module for a User Session

Module Allocation Reply

Send
To: Tutor
Reply With: Nothing
Description: Reply to the Tutor’s request to use this LMS module for a User Session

Start Domain Session

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting

Close Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending

LMS Data Request

Receive
From: Learner, Tutor
Reply With: LMS Data Reply, Processed NACK
Description: A request for a learner’s LMS data

Publish Lesson Score Request

Receive
From: Domain
Reply With: Publish Lesson Score Reply, Processed NACK
Description: The final score of a lesson, to be stored for later retrieval with the key returned from a successful publish

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

Knowledge Session Created

Receive
From: Domain
Reply With: Nothing
Description: Notifies any listeners that a knowledge session was created

Learner State

Receive
From: Learner
Reply With: Nothing
Description: contains the latest learner state information which could be given to an LMS (or LRS).

Submit Survey Results

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: contains survey responses which can be given ton an LMS (or LRS).

Pedagogical Request

Receive
From: Pedagogical
Reply With: Nothing
Description: A request for an action, can be given to an LMS (or LRS) to record.

Initialize Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing

Knowledge Session Created

Receive
From: Domain
Reply With: Nothing
Description: Notifies any listeners that a knowledge session was created

Learner Module

Details

The primary function of the Learner module is to determine the learner’s state.

Subscriptions

Learner Discovery

Messages

Module Status

Send
To: Learner Discovery
Expected Reply: Nothing
Description: Notify all subscribers of the Learner module status

Module Allocation Request

Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Learner module for a Domain Session

Module Allocation Reply

Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Learner module for a User Session

Sensor Data

Receive
From: Sensor
Reply With: Nothing
Description: For processing sensor data into human relatable behavior

Sensor Filter Data

Receive
From: Sensor
Reply With: Nothing
Description: For processing sensor data into human relatable behavior

Instantiate Learner Request

Receive
From: UMS
Reply With: Processed ACK, Processed NACK
Description: Try to instantiate a new learner

Initialize Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing

Start Domain Session

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting

Close Domain Session Request

Receive
From: Domain
Reply With: Nothing
Description: For being notified that a domain session is ending

Lesson Started

Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson started

Lesson Completed

Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson is complete

Publish Lesson Score Request

Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Publishes the score of the lesson completed by a learner

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

Submit Survey Results

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Submit the results of a survey to a learner

Performance Assessment

Receive
From: Domain
Reply With: Nothing
Description: Give a performance assessment to a learner

Logout Request

Receive
From: Tutor
Reply With: Nothing
Description: Unregister a learner with the module

Course State

Receive
From: Domain
Reply With: Processed ACK
Description: Provide the current course state to any pedagogical models. In some instances a model will return a pedagogical request.

Learner State

Send
To: Pedagogical, LMS
Expected Reply: Nothing
Description: Notify modules of a learner’s state

Initialize Lesson Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session

Pedagogical Module

Details

The primary function of the Pedagogical module is to use information about the learner’s state to produce actions for the tutor to better influence learning.

Subscriptions

Pedagogical Discovery

Messages

Module Status

Send
To: Pedagogical Discovery
Expected Reply: Nothing
Description: Notify all subscribers of the Pedagogical module status

Module Allocation Request

Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Pedagogical module for a Domain Session

Module Allocation Reply

Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Pedagogical module for a User Session

Learner State

Receive
From: Learner
Reply With: Nothing
Description: Process learner state and update pedagogical actions

Initialize Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing

Start Domain Session

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting

Close Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending

Lesson Started

Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify pedagogical module that the lesson started

Lesson Completed

Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify pedagogical module that the lesson is complete

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

Pedagogical Request

Send
To: Domain, LMS
Expected Reply: Nothing
Description: Suggest pedagogical action to a tutor

Initialize Lesson Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session

Initialize Pedagogical Model Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell the Pedagogical Module to initialize a pedagogical model.

Course State

Receive
From: Domain
Reply With: Pedagogical Request, Nothing
Description: Provide the current course state to any pedagogical models. In some instances a model will return a pedagogical request.

Domain Module

Details

The primary function of the domain module is to create, maintain and assess domain sessions.

Subscriptions

UMS Discovery
LMS Discovery
Pedagogical Discovery
Tutor Discovery
Learner Discovery
Domain Discovery
Sensor Discovery
Gateway Discovery

Messages

Module Status

Send
To: Domain Discovery
Expected Reply: Nothing
Description: Notify modules of the Domain module status

Receive
From: LMS Discovery
Reply With: Nothing
Description: Get status of available LMS modules

Receive
From: UMS Discovery
Reply With: Nothing
Description: Get status of available UMS modules

Receive
From: Pedagogical Discovery
Reply With: Nothing
Description: Get status of available Pedagogical modules

Receive
From: Tutor Discovery
Reply With: Nothing
Description: Get status of available Tutor modules

Receive
From: Learner Discovery
Reply With: Nothing
Description: Get status of available Learner modules

Receive
From: Sensor Discovery
Reply With: Nothing
Description: Get status of available Sensor modules

Receive
From: Gateway Discovery
Reply With: Nothing
Description: Get status of available Gateway modules

Module Allocation Request

Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this Domain module for a Domain Session

Send
To: Pedagogical, Learner, Sensor, Gateway
Expected Reply: Module Allocation Reply, Processed NACK
Description: Request that the module be allocated to this Domain module for a Domain Session

Module Allocation Reply

Send
To: Tutor
Expected Reply: Nothing
Description: Reply to the Tutor’s request to use this Domain module for a Domain Session

Receive
From: Pedagogical, Learner, Sensor, Gateway
Reply With: Nothing
Description: Replies to this Domain’s request to use the module for a Domain Session

Learner Tutor Action

Receive
From: Tutor, Gateway
Reply With: Processed ACK, Processed NACK
Description: Notify domain of action completed by the learner on the tutoring system

Domain Options Request

Receive
From: Tutor, Gateway
Reply With: Domain Options Reply, Processed NACK
Description: Request the current set of domain options

Domain Selection Request

Receive
From: Tutor
Reply With: Domain Selection Reply, Processed NACK
Description: Request a domain session on the selected domain

Chat Log

Receive
From: Tutor
Reply With: Processed ACK, Processed NACK
Description: For updating the domain module with the chat between the tutor and user

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

Close Domain Session Request

Send
To: Learner, UMS, Sensor, Gateway, Tutor, Pedagogical, LMS
Expected Reply: Nothing
Description: Ends the domain session

Receive
From: Monitor, Tutor
Reply With: Processed ACK, Processed NACK
Description: Ends the domain session

Pedagogical Request

Receive
From: Pedagogical
Reply With: Nothing
Description: A request for an action

Get Survey Request

Send
To: UMS
Expected Reply: Get Survey Reply, Processed NACK
Description: Request the UMS for a survey

LoS Query

Send
To: Gateway
Expected Reply: Nothing
Description: Do a line of sight query

Submit Survey Results

Send
To: Learner, UMS, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Submit the results of the survey to the UMS

Initialize Domain Session Request

Send
To: Learner, UMS, Sensor, Gateway, Pedagogical, Tutor, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to initialize a domain session

Instantiate Learner Request

Send
To: Learner
Expected Reply: Processed ACK, Processed NACK
Description: Request Learner to be instantiated

Start Domain Session

Send
To: Learner, UMS, Sensor, Gateway, Pedagogical, Tutor, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to start a domain session

Close Domain Session Request

Send
To: Learner, UMS, Sensor, Gateway,Tutor, Pedagogical, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to close a domain session

Display Feedback Embedded Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the embedded training application to display a feedback message to the user within the application

Display Feedback Tutor Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display feedback to the user

Display Guidance Tutor Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display guidance to the user

Display Lesson Material Tutor Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display lesson material to the user

Display Mid-Lesson Media Tutor Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display media to the user during a training application lesson

Display Survey Tutor Request

Send
To: Tutor
Expected Reply: Processed NACK, Display Survey Tutor Reply

Description: Tell the Tutor module to display a survey to the user

Display AAR Tutor Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display the After Action Review to the user

Display Chat Window Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Request a chat window to be displayed to the learner

Display Chat Window Update Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Request an update to the chat window to be displayed to the learner

SIMAN

(Siman Type = LOAD)

Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to load a scenario in the training application

SIMAN

(Siman Type = START)

Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to start a scenario in the training application

SIMAN

(Siman Type = STOP)

Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to stop a scenario in the training application

SIMAN

(Siman Type = RESTART)

Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to restart a scenario in the training application

SIMAN

(Siman Type = PAUSE)

Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or TutorModule to pause a scenario in the training application

SIMAN

(Siman Type = RESUME)

Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor Module to resume a scenario in the training application

Environment Control

Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tweak the environment of the current interop application

Publish Lesson Score Request

Send
To: LMS
Expected Reply: Processed ACK, Processed NACK
Description: Notify the LMS of the score achieved by the user for a specific lesson

Performance Assessment

Send
To: Learner
Expected Reply: Nothing
Description: Notify the Learner module of the completed performance assessment

Initialize Interop Connections

Send
To: Gateway
Expected Reply: Interop Connections Info, Processed NACK
Description: Notify the Gateway module of the interop connections needed for the lesson that is about to begin

Initialize Embedded Connections

Send
To: Tutor
Expected Reply: Interop Connections Info, Processed NACK
Description: Notify the Tutor module of the embedded application needed for the lesson that is about to begin

Initialize Lesson Request

Send
To: Learner, Pedagogical, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session

Initialize Pedagogical Model Request

Send
To: Pedagogical
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Pedagogical Module to initialize a pedagogical model.

Active Domain Sessions Request

Receive
From: Monitor, Gateway
Expected Reply: Active Domain Sessions Reply
Description: Request for the active domain sessions known to this domain module instance.

Active Domain Sessions Reply

Send
To: Monitor, Gateway
Expected Reply: Nothing
Description: Reply to a request for the active domain sessions known to this domain module instance.

Course State

Send
To: Pedagogical, Tutor, Learner
Expected Reply: Pedagogical Request (when the course state warrants it), Nothing
Description: The pedagogical module needs to know where in the course the user is in order to inform various pedagogical model(s).

Survey Check Request

Send
To: UMS
Expected Reply: SurveyCheckResponse, Processed NACK
Description: The UMS module needs to check the survey references against entries in the survey database.

Display Course Init Instructions Request

Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display the generic course initialize instructions webpage to the user

Experiment Course Request

Receive
From: Tutor
Expected Reply: Domain Selection Reply, Processed NACK
Description: Starts a new subject in the experiment's course

Get Experiment Request

Send
To: UMS
Expected Reply: Get Experiment Reply
Description: Request the experiment details by experiment id.

Knowledge Session Created

Send
To: LMS
Expected Reply: Nothing
Description: Notifies any listeners that a knowledge session was created

Subject Created

Send
To: Tutor
Expected Reply: Processed ACK
Description: Notify the tutor that a subject has been created for the experiment being started as per the tutor's request

Load Progress

Send
To: Tutor
Expected Reply: Nothing
Description: Forwarding the training application content loading progress information from the gateway module interop plugin

Training Application Survey Submit

Send
To: Tutor
Expected Reply: Nothing
Description: Forwarding the training application survey submit event so the tutor can submit the currently presented survey

Tutor Survey Question Response

Send
To: Gateway
Expected Reply: Nothing
Description: Forwarding the selecting an answer (not submitting the answer/survey) to a survey question event from the tutor

Tutor Survey Question Response

Receive
To: Tutor
Expected Reply: Nothing
Description: The selecting an answer (not submitting the answer/survey) to a survey question event from the tutor

Training Application Survey Response

Send
To: Tutor
Expected Reply: Nothing
Description: Forwarding the event of the user selecting a survey response in the external training application from the gateway module interop plugin

Variable State Request

Send
To: Gateway
Expected Reply: Variable State Result, Processed NACK
Description: A request to retrieve one or more pieces of information for specific actors from an external training application

Sensor Module

Details

The primary function of the Sensor module is to read and filter sensor data.

Subscriptions

Sensor Discovery

Messages

Module Status

Send
To: Sensor Discovery
Expected Reply: Nothing
Description: Notify subscribers of Sensor Module status

Module Allocation Request

Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Sensor module for a Domain Session

Module Allocation Reply

Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Sensor module for a Domain Session

Initialize Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing

Start Domain Session

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting

Close Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is being ended

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

Sensor Data

Send
To: Learner
Expected Reply: Nothing
Description: Propagate new Sensor data for processing

Sensor Filter Data

Send
To: Learner
Expected Reply: Nothing
Description: Propagate new Filtered Sensor data for processing

Sensor File Created

Send
To: UMS
Expected Reply: Nothing
Description: Notify modules that a new Sensor File was created

Tutor Module

Details

The primary function of the Tutor module is to provide an interface that allows interaction between GIFT and the learner.

Subscriptions

UMS Discovery
LMS Discovery
Domain Discovery
Tutor Discovery

Messages

Module Status

Send
To: Tutor Discovery
Expected Reply: Nothing
Description: Notify subscribers of Tutor Module status

Receive
To: UMS Discovery
Expected Reply: Nothing
Description: Get status of available UMS modules

Receive
To: LMS Discovery
Expected Reply: Nothing
Description: Get status of available LMS modules

Receive
To: Domain Discovery
Expected Reply: Nothing
Description: Get status of available Domain modules

Tutor Module Status

Send
To: Tutor
Expected Reply: Nothing
Description: Notify subscribers about the existence of the Tutor Topic

Module Allocation Request

Send
To: Domain, UMS and LMS
Expected Reply: Module Allocation Reply, Processed NACK
Description: Request that the module be allocated to this Tutor module for a User Session

Module Allocation Reply

Receive
From: Domain, UMS and LMS
Expected Reply: Nothing
Description: Replies to this Tutor’s request to use the module for a User Session

Initialize Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing

Start Domain Session

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting

Close Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending

Course State

Receive
From: Domain
Reply With: Processed ACK
Description: Provide the current course state to any pedagogical models. In some instances a model will return a pedagogical request.

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

Display Guidance Tutor Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request some guidance to be displayed to the learner

Display Feedback Tutor Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request feedback to be displayed to the learner

Display Survey Tutor Request

Receive
From: Domain
Reply With: Display Survey Tutor Reply, Processed NACK
Description: Request a survey to be displayed to the learner

Display AAR Tutor Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request an After Action Review to be displayed to the learner

Display Lesson Material Tutor Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request lesson material to be displayed to the learner

Display Mid-Lesson Media Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request media to be displayed to the learner during a training application lesson

Display Chat Window Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request a chat window to be displayed to the learner

Display Chat Window Update Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request an update to the chat window to be displayed to the learner

New User Request

Send
To: UMS
Expected Reply: Processed NACK, Login Reply
Description: Request a new user to be added to the UMS

Login Request

Send
To: UMS
Expected Reply: Processed NACK, Login Reply
Description: Request a user login

User Id Request

Send
To: UMS
Expected Reply: Processed NACK, User Id Reply
Description: Request the unique GIFT user id based on the GIFT username

LMS Data Request

Send
To: LMS
Expected Reply: LMS Data Reply, Processed NACK
Description: Request all LMS data on a user

Domain Options Request

Send
To: Domain
Expected Reply: Domain Options Reply, Processed NACK
Description: Request a list of available domains

Domain Selection Request

Send
To: Domain
Expected Reply: Domain Selection Reply, Processed NACK
Description: Select a domain for use

Learner Tutor Action

Send
To: Domain
Expected Reply: Processed ACK, Processed NACK
Description: Notify Domain of a completed report

Logout Request

Send
To: Learner, UMS
Expected Reply: Processed ACK, Processed NACK
Description: Log a user out

Chat Log

Send
To: Domain
Expected Reply: Processed ACK, Processed NACK
Description: For updating the domain module with the chat between the tutor and user

Initialize Lesson Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session

Active User Sessions Request

Receive
From: Monitor
Expected Reply: Active User Sessions Reply
Description: Request for the active user sessions known to this tutor instance.

Active User Sessions Reply

Send
To: Monitor
Expected Reply: Nothing
Description: Reply to a request for the active user sessions known to this tutor instance.

Get Experiment Request

Send
To: Domain
Expected Reply: Get Experiment Reply
Description: Reply to a request for the experiment request by experiment id.

Display Course Init Instructions Request

Receive
From: Domain
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display the generic course initialize instructions webpage to the user

Subject Created

Receive
From: Domain
Expected Reply: Processed ACK
Description: Notifcation that a subject has been created for the experiment being started as per the tutor's request

Load Progress

Receive
From: Domain
Expected Reply: None
Description: Forwarded training application content loading progress from the gateway module interop plugin

Training Application Survey Submit

Receive
From: Domain
Expected Reply: Nothing
Description: Forwarded the training application survey submit event so the tutor can submit the currently presented survey

Tutor Survey Question Response

Send
To: Domain
Expected Reply: Nothing
Description: The selecting an answer (not submitting the answer/survey) to a survey question event

Training Application Survey Response

Receive
From: Domain
Expected Reply: Nothing
Description: Forwarded the event of the user selecting a survey response in the external training application from the gateway module interop plugin

LTI Get User Request

Send
To: UMS
Expected Reply: LTI Get User Reply
Description: Request to get the LTI user record based on an incoming LTI launch request (containing a consumer key and consumer id).

LTI Get User Reply
Receive
From: UMS
Expected Reply: Nothing
Description: The LTI user record data that was found for the user. If the user was not found, null is returned for the lti user record.

Gateway Module

Details

The primary function of the Gateway module is to listen for communication outside of GIFT and then convert it into GIFT messages and vice-versa.

When a message is received from outside of GIFT (e.g., VBS DIS connection), the Gateway module converts that message into a GIFT message and sends it to the Gateway Module’s topic (i.e., broadcasts the message).

Subscriptions

Gateway Discovery Topic
Gateway Topic

Messages

Gateway Module Status

Send
To: Gateway Discovery Topic
Expected Reply: Nothing
Description: Notify subscribers of Gateway status and the name of the topic where simulation messages will be sent to for other modules to consume.

Variables State Request

Receive
From: Domain
Reply With: Variables State Result, Processed NACK
Description: A request to retrieve one or more pieces of information for specific actors from an external training application

Module Allocation Request

Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Gateway module for a Domain Session

Module Allocation Reply

Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Gateway module for a Domain Session

Initialize Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing

Start Domain Session

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting

Lesson Started

Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson started

Close Domain Session Request

Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending

Kill Module

Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely

Initialize Interop Connections

Receive
To: Domain
Reply With: Interop Connections Info, Processed NACK
Description: Initialize/Enable the specified interop connections needed for the lesson that is about to begin

Interoperability

The Gateway Module has simulation interoperability capabilities with the following standards. These interfaces allow GIFT to communicate with training applications that also implement the same standards. Each section will list the messages from each standard that GIFT can currently handle. Refer to GIFT Configuration Settings for more information on interoperability configurations and the other interoperability interfaces.

DIS

This interface uses JDIS library (http://sourceforge.net/projects/jdis/) to send/receive DIS PDUs.

For information on the DIS standard concerning these messages see: https://en.wikipedia.org/wiki/Distributed_Interactive_Simulation

Detonation PDU
Entity State PDU
Fire PDU

Currently the DIS interop interface can send these GIFT messages:

Weapon Fire
Detonation
Entity State
Collision

Currently the DIS interop interface can handle these incoming GIFT messages and convert and send their equivalents as DIS messages:

Start Resume
Stop Freeze

DIS PDU data consumed by GIFT
The following tables contain a list of the DIS PDUs and attributes that GIFT consumes from the network and then converts into GIFT messages.

Entity State DIS PDU Components Notes
PDU Header Record
Exercise Identifier Field used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml
PDU Type Field used by JDIS
Entity ID Record
Entity ID Field
Force ID Field
# of Articulation Parameters (n) Field currently only used with the Excavator instance that uses DE Testbed virtual desktop application to determine the movement of various parts of that vehicle.
Entity Type Record For Game Master Map 2525 symbols use GIFT\config\tools\dashboard\dis_to_sidc.yml file to convert.
Kind Field Can be over-riden with GIFT echelon value defined by EchelonEnum.java
Domain Field
Country Field
Category Field
Subcategory Field
Specific Field
Extra Field
Alternative Entity Type Record
Entity Linear Velocity Record
Entity Location Record
Entity Orientation Record
Entity Appearance Record
General Appearance Record
Entity Damage Field convert positions 3-4 to DamageEnum.java
Specific Appearance Varient
Life Forms Record
Lifeform State Field convert to PostureEnum.java
Activity State Field converted to true and false, used when sending out DIS PDUs from GIFT during playback when the Game Master user has filtered the map view to only show some entities/teams.
Dead Reckoning Parameters
Dead Reckoning Algorithm Field converted to DeadReckoningAlgorithmField enum, though not currently used for anything.
Entity Marking Record
Entity Marking String Record used as one of two ways to map a team member in the DKF team organization to a DIS Entity Id (integer) for a single execution of a DIS exercise.
Entity Capabilities Record NOT USED
Articulation Parameter Record (used in conjuction with # of articulated parts above) currently only used with the Excavator instance that uses DE Testbed virtual desktop application to determine the movement of various parts of that vehicle.
Fire DIS PDU Components Notes
PDU Header Record
Exercise Identifier Field used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml
PDU Type Field used by JDIS
Firing Entity Id Record
Entity Identity Field once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members
Target Entity Id Record
Entity Identity Field once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members
Munition Id Record
Entity Identity Field decoded but not used yet
Event Identifier Record decoded but not used yet
Fire Mission Index Field NOT USED
Location in World Record
Burst Descriptor Record
Munition Record decoded but not used yet
Warhead Field decoded but not used yet
Fuse Field decoded but not used yet
Quantity Field currently used only in RulesOfEngagementCondition
Rate Field decoded but not used yet
Velocity Record
Range Field NOT USED
Detonation DIS PDU Components Notes
PDU Header Record
Exercise Identifier Field used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml
PDU Type Field used by JDIS
Firing Entity Id Record
Entity Identity Field once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members
Target Entity Id Record
Entity Identity Field once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members
Munition Id Record
Entity Identity Field decoded but not used yet
Event Identifier Record decoded but not used yet
Velocity Record
Location in World Record
Burst Descriptor Record decoded but not used yet
Location in Entity Coordinates Record NOT USED
Detonation Result Field converted to DetonationResultEnum, only using 'Other' (0), 'EntityImpact' (1) and 'None' (6)
Number of Articulation Parameters Field NOT USED
Padding - 16bit Field NOT USED
Articulation Parameter Record NOT USED
Collision DIS PDU Components Notes
PDU Header Record
Exercise Identifier Field used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml
PDU Type Field used by JDIS
Issuing Entity ID Record
Entity Identity Field once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members
Colliding Entity ID Record
Entity Identity Field once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members
Event ID Record NOT USED
Collision Type Field converted but not used
Padding Field NOT USED
Velocity Record NOT USED
Mass Field NOT USED
Location Record NOT USED
StopFreeze DIS PDU Components Notes
PDU Header Record
Exercise Identifier Field used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml
PDU Type Field used by JDIS
Originating Entity ID Record NOT USED
Receiving Entity ID Record NOT USED
Real-World Time Record
Reason Field used to determine if pausing or stopping the simulation
Frozen Behavior Field converted but not used
Padding - 16bit Field NOT USED
Request ID Field converted but not used
StartResume DIS PDU Components Notes
PDU Header Record
Exercise Identifier Field used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml
PDU Type Field used by JDIS
Originating Entity ID Record NOT USED
Receiving Entity ID Record NOT USED
Real-World Time Record converted but not used
Simulation Time Record converted but not used
Request ID Field converted but not used

JSON DIS

This interface is built upon the DIS interface mentioned above. The difference is that incoming DIS PDU messages created by applications external to GIFT are converted into GIFT JSON messages. These JSON messages are perfectly formatted for use in the SIMILE assessment engine in the Domain module.

The GIFT game state message is defined by Generic Status.

VBS

This interop interface communicates to the GIFT VBS plugin DLL.

Currently the VBS interop interface can handle these incoming GIFT messages:

SIMAN
Environment Control
LoS Query
Display Feedback Gateway Request
Variable State Request

Currently the VBS interop interface can send these GIFT messages:

LoS Result
Start Resume
Stop Freeze

VR Engage

This interop interface communicates to the GIFT VR Engage plugin DLL.

Currently the VR Engage interop interface can handle these incoming GIFT messages:

SIMAN
Environment Control
LoS Query
Display Feedback Gateway Request

Currently the VR Engage interop interface can send these GIFT messages:

LoS Result

ARES

This interop interface communicates to the Augemented REality Sandtable application.

Currently the ARES interop interface can handle these incoming GIFT messages:

SIMAN
Survey Presented Notification
Tutor Survey Question Response

Currently the ARES interop interface can send these GIFT messages:

Training App Survey Response
Training App Survey Submit

PPT

This interop interface uses JACOB library (http://sourceforge.net/projects/jacob-project/) to communicate with Microsoft PowerPoint.

Currently the PPT interop interface can handle these incoming GIFT messages:

SIMAN

Currently the PPT interop interface can send these GIFT messages:

Start Resume
Stop Freeze
PowerPoint State
Load Progress

TC3

This interop interface handles communication between TC3 (aka vMedic) game engine.

Currently the TC3 interop interface can handle these incoming GIFT messages:

SIMAN

Currently the TC3 interop interface can send these GIFT messages:

Generic Status

SCATT

This interop interface handles communication between the SCATT Pro marksmanship training application.

Currently the SCATT interop interface can handle these incoming GIFT messages:

SIMAN

Currently the SCATT interop interface can send these GIFT messages:

Rifle Shot

Simple (XML-RPC)

This interop interface handles communication between the Simple Training App created for the GIFT Developer Guide.

Currently the Simple interop interface can handle these incoming GIFT messages:

SIMAN
Display Feedback Gateway Request

Currently the Simple interop interface can send these GIFT messages:

Simple Example State

Unity

This interop interface communicates to the GIFT Unity SDK.

Currently the Unity interop interface can handle these incoming GIFT messages:

SIMAN
Display Feedback Gateway Request

Currently the VR Engage interop interface can send these GIFT messages:

Simple Example State

Adaptive Learning Service

This interop interface communicates with an ActiveMQ message bus (not the same instance that the GIFT core architecture uses).

Currently the Adaptive learning service interop interface can handle these incoming GIFT messages:

Authorize Strategies Request
Close Domain Session Request
Display Feedback Tutor Request
Knowledge Session Created
Knowledge Session Updated Request
Learner State
Lesson Completed
Lesson Started
Pedagogical Request
Sensor Filter Data
SIMAN
Course State

Currently the Adaptive Learning Service interop interface can send these GIFT messages:

Manage Membership Team Knowledge Session
Knowledge Session Updated Request
Domain Options Request
Domain Selection Request
Active Domain Sessions Request
Close Domain Session Request
Evaluator Update Request
Apply Strategies Request

ActiveMQ: Topics and Queues

GIFT uses ActiveMQ connections to handle transporting of messages between modules. For more information on ActiveMQ visit http://activemq.apache.org/.

Topics

Topics are used by GIFT to implement publish and subscribe semantics. A message published to a topic is delivered to all subscribers, so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message.

UMS Discovery

The UMS discovery topic is used to obtain the address and status of available UMS modules.

Publishers
UMS

Subscribers
Domain, Monitor, Tutor

LMS Discovery

The LMS discovery topic is used to obtain the address and status of available LMS modules.

Publishers
LMS

Subscribers
Tutor, Monitor, Domain, UMS (for logging)

Pedagogical Discovery

The Pedagogical discovery topic is used to obtain the address and status of available Pedagogical modules.

Publishers
Pedagogical

Subscribers
Monitor, Domain, UMS (for logging)

Tutor Discovery

The Tutor discovery topic is used to obtain the address and status of available Tutor modules.

Publishers
Tutor

Subscribers
Monitor, Domain, UMS (for logging)

Tutor

The Tutor topic that embedded apps send game state messages to. One instance is created for each domain session that contains an embedded training application. Each instance is created by the Tutor Module when an Initialize Domain Session Request is received and is destroyed by the Domain Module when a domain session is closed.

Publishers
Tutor

Subscribers
Monitor, Domain

Learner Discovery

The Learner discovery topic is used to obtain the address and status of available Learner modules.

Publishers
Learner

Subscribers
Monitor, Domain, UMS (for logging)

Sensor Discovery

The Sensor discovery topic is used to obtain the address and status of available sensor modules.

Publishers
Sensor

Subscribers
Domain, Monitor, UMS (for logging)

Domain Discovery

The Domain discovery topic is used to obtain the address and status of available domain modules.

Publishers
Domain

Subscribers
Tutor, Monitor, UMS (for logging)

Gateway Discovery

The Gateway discovery topic is used to obtain the address and status of available Gateway modules.

Publishers
Gateway

Subscribers
Domain, Monitor, UMS (for logging)

Gateway

The Gateway topic is used to send GIFT simulation messages from interop plugins (e.g., DIS, VBS plugin).

Publishers
Gateway

Subscribers
Domain, Monitor, UMS (for logging)

Queues

Queues are used to send information from a single source to a single destination. The reader of a queue is the message recipient. GIFT uses Queues to send messages from one module to another module. Every module has a queue with the “Inbox” suffix (e.g., Sensor_Queue:192.168.1.113:Inbox) which is present in that module’s status message. The Inbox queue is used as the destination to send messages to a particular module. The modules themselves actually read messages from a queue with a similar name but without the “Inbox” suffix. This setup provides GIFT the opportunity to route messages to the message logger queue in the UMS.

Messaging

Overview

Communication between modules in GIFT is done through ActiveMQ messaging, for more information on ActiveMQ, visit http://activemq.apache.org/.

Prior to GIFT 2022-1 (Nov 2021) release GIFT sent messages formatted as JSON strings. Now GIFT uses Google protocol buffers or protobuf.

For the messages and data objects below, note the following:

Requires: This message or data object needs to also include all the properties of the required message or data object.

Assigned Value: This message or data object needs to set the indicated property to the specified value.

For the enumeration value type, use the string representation of the enumeration value

Protobuf Files

The GIFT protobuf (.proto) files that are used in this GIFT instance are found in the attachment:
protobufMessages.2022-1.zip

Time Stamps

Timestamps use UNIX (epoch) time stored as 64-bit signed integers. The Timestamp property in the GIFT Message Header should always hold an absolute timestamp of when the message was created. See http://en.wikipedia.org/wiki/Unix_time for more details.

Message Sequences

This section contains details about the sequence of messages for common events in GIFT execution.

Key:                            
S – Message Sender
R – Message Recipient

Start Domain Session
Once the learner starts a selected GIFT course, the following message sequence happens. The end of this sequence is when the first course transition is about to be handled.

Note: ACK messages are not shown.
Note: This sequence doesn't apply to a subject in an experiment starting an experiment's course. Continue reading for more details.

Message Tutor Domain Sensor Learner Ped Gateway UMS LMS Reason
Domain Selection Request S R Tutor notifies Domain of course being loaded
Domain Selection Request S R Domain request UMS create domain session entry in database
Domain Selection Reply R S
Module Allocation Request S R Domain trying to select a Pedagogical module
Module Allocation Reply R S
Module Allocation Request S R Domain trying to select a Sensor module
Module Allocation Reply R S
If running in Desktop Mode: Desktop mode doesn't use Course Initialization Instructions webpage
Module Allocation Request S R Domain trying to select a Gateway module
Module Allocation Reply R S
otherwise running in Server mode: Sever mode requires the learner to run a java web start jnlp application
Display Course Initialize Instructions R S Tutor needs to display the webpage with instructions for the learner
Processed ACK S R
Once Domain Module receives Gateway module heartbeat Indication that the learner start the java web start jnlp application
Module Allocation Request S R Domain trying to select a Gateway module
Module Allocation Reply R S
Display Course Initialize Instructions R S Update of status to the course initialization instructions webpage
Processed ACK S R
Configure Interop Connections S R Domain indicating which interops need to be configured
Processed ACK R S
Display Course Initialize Instructions R S Update of status to the course initialization instructions webpage
Processed ACK S R
continue common sequence
Module Allocation Request S R Domain trying to select a Learner module
Module Allocation Reply R S
Domain Selection Reply R S Notify the tutor that the Domain has completed setting up the domain session
Instantiate Learner Request S R Have the learner module create the Learner instance
LMS Data Request S R Retrieve learner records to customize the learner instance
LMS Data Reply R S
Initalize Domain Session Request R S R R R R R Synchronize and prepare all modules for course start
Processed ACK S R S S S S S
Initalize Pedagogical Model Request S R Load any course specific pedagogical models
Processed ACK R S
Start Domain Session R S R R R R R Synchronize the start of the course across all modules
Processed ACK S R S S S S S
Course State R S R
course specific requests…

Start Training Application course transition
This message sequence happens when a training application course transition is reached. The end of this message sequence is when game state messages start arriving.

Notes:
  • ACK messages are not shown
  • The * indicates that training application game state messages can start arriving after the gateway module acknowledges that message appropriately.
Message Tutor Domain Sensor Learner Ped Gateway UMS LMS
Course State S R
Initialize Interop Connections S R
Siman (load) S R
Initialize Pedagogical Model Request S R
Initialize Lesson Request S R
Display Learner Actions Request R S
Lesson Started R(2) S R(1) R(3)
Siman (start)* S R
Start Resume (game state) S
game state messages...
Pre-GIFT v2014-2 (5.0)
Course State S R
Initialize Interop Connections S R
Siman (load) S R
Siman (start)* S R
Start Resume (game state) S
Initialize Lesson Request S R
Display Learner Actions Request R S
Initialize Pedagogical Model Request S R
Lesson Started R(2) S R(1) R(3)
game state messages…

Start Experiment
Once a subject selects to start an experiment's course, the following message sequence happens. The end of this sequence is when the first course transition is about to be handled.

Note: ACK messages are not shown.

Message Tutor Domain Sensor Learner Ped Gateway UMS LMS
Experiment Course Request S R
Module Allocation Request S R
Module Allocation Reply R S
Get Experiment Request S R
Get Experiment Reply R S
If there are surveys in the course:
Survey Check Request S R
Survey Check Response R S
New User Request S R
Login Reply R S
Subject Created R S
Module Allocation Request S R
Module Allocation Reply R S
Module Allocation Request S R
Module Allocation Reply R S
Module Allocation Request S R
Module Allocation Reply R S
If running in Desktop Mode:
Module Allocation Request S R
Module Allocation Reply R S
otherwise running in Server mode:
Display Course Initialize Instructions R S
Processed ACK S R
Once Domain Module receives Gateway module heartbeat
Module Allocation Request S R
Module Allocation Reply R S
Display Course Initialize Instructions R S
Processed ACK S R
Configure Interop Connections S R
Processed ACK R S
Display Course Initialize Instructions R S
Processed ACK S R
Domain Selection Reply R S
Instantiate Learner Request S R
LMS Data Request S R
LMS Data Reply R S
Initalize Domain Session Request R S R R R R R
Processed ACK S R S S S S S
Initalize Pedagogical Model Request S R
Processed ACK R S
Start Domain Session R S R R R R R
Processed ACK S R S S S S S
Course State S R
course specific requests…

GIFT Message Header

ProtobufMessage.proto
Protobuf Files

GIFT Messages

Message Name Message Type Enum Value Session Type Payload
ACK ACK pre-user session, user session, domain session * None
Active Domain Sessions Request ActiveDomainSessionsRequest pre-user session None
Active Domain Sessions Reply ActiveDomainSessionsReply pre-user session Domain Session List
Active Knowledge Sessions Request ActiveKnowledgeSessionsRequest pre-user session Knowledge Sessions Request
Active Knowledge Sessions Reply ActiveKnowledgeSessionsReply pre-user session Knowledge Sessions
Active User Sessions Request ActiveUserSessionsRequest pre-user session None
Active User Sessions Reply ActiveUserSessionsReply pre-user session User Session List
Apply Strategies ApplyStrateiges domain session Apply Strategies
Authorize Strategies Request AuthorizeStrateigesRequest domain session Authorize Strategies Request
Branch Path History Update BranchPathHistoryUpdate domain session Branch Path History
Branch Path History Request BranchPathHistoryRequest domain session Branch Path History Request
Branch Path History Reply BranchPathHistoryReply domain session Branch Path History Request
Chat Log ChatLog domain session Chat Log
Close Domain Session Request CloseDomainSessionRequest domain session Close Domain Session Request
Collision Collision domain session Collision
Course State CourseState domain session Course State
Detonation Detonation pre-user session Detonation
Display AAR Tutor Request DisplayAarTutorRequest domain session Display AAR Tutor Request
Display Chat Window Request DisplayChatWindowRequest domain session Display Chat Window Request
Display Chat Window Update Request DisplayChatWindowUpdateRequest domain session Display Chat Window Update Request
Display Course Init Instructions Request DisplayCourseInitInstructionsRequest domain session Display Course Init Instructions Request
Display Feedback Tutor Request DisplayFeedbackTutorRequest domain session Tutor User Interface Feedback
Display Feedback Gateway Request DisplayFeedbackGatewayRequest domain session String Payload – the feedback message
Display Feedback Embedded Request DisplayFeedbackEmbeddedRequest domain session String Payload – the feedback message
Display Leaner Actions Tutor Request DisplayLearnerActionsTutorRequest domain session Display Learner Actions Tutor Request
Display Lesson Material Tutor Request DisplayLessonMaterialTutorRequest domain session Display Media Collection Request
Display Message Tutor Request DisplayMessageTutorRequest domain session Display Message Tutor Request
Display Mid-Lesson Media Tutor Request DisplayMidLessonMediaTutorRequest domain session Display Mid-Lesson Media Request
Display Survey Tutor Reply DisplaySurveyTutorReply domain session * Survey Response
Display Survey Tutor Request DisplaySurveyTutorRequest domain session Survey
Display Team Sessions DisplayTeamSessions pre-user session None
Display Guidance Tutor Request DisplayGuidanceTutorRequest domain session Display Guidance Tutor Request (Base)
Domain Options Request DomainOptionsRequest user session Domain Options Request
Domain Options Reply DomainOptionsReply user session * Domain Option List
Domain Selection Reply DomainSelectionReply user session * Domain Session
Domain Selection Request DomainSelectionRequest user session Domain Selection Request
Domain Session Start Time Request DomainSessionStartTimeRequest pre-user session Integer
Domain Session Start Time Reply DomainSessionStartTimeRequest pre-user session Long
Entity State EntityState pre-user session Entity State
Environment Control EnvironmentControl domain session Environment Control
Evaluator Update Request EvaluatorUpdateRequest domain session Evaluator Update Request
Execute OC Strategy ExecuteOCStrategy pre-user session Execute OC Strategy
Experiment Course Request ExperimentCourseRequest pre-user session Experiment Course Request
Gateway Module Status GatewayModuleStatus pre-user session Gateway Module Status
Generic Status GenericState domain session Generic State
Geolocation Geolocation domain session Geolocation
Get Experiment Request GetExperimentRequest domain session * Get Experiment Request
Get Experiment Reply GetExperimentReply domain session * Data Collection Item
Get Survey Reply GetSurveyReply domain session * Survey Gift Data
Get Survey Request GetSurveyRequest domain session Get Survey Request
Initialize Domain Session Request InitializeDomainSessionRequest domain session Initialize Domain Session Request
Initialize Embedded Connections InitializeEmbeddedConnections domain session Initialize Embedded Connections
Initialize Interop Connections InitializeInteropConnections domain session Initialize Interop Connections
Initialize Lesson Request InitializeLessonRequest domain session None
Initialize Pedagogical Model Request InitializePedagogicalModelRequest domain session Initialize Pedagogical Model Request
Instantiate Learner Request InstantiateLearnerRequest domain session Instantiate Learner Request
Interop Connections Info InteropConnectionsInfo domain session * Interop Connections Info
Kill Module KillModule pre-user session None
Knowledge Session Created KnowledgeSessionCreated domain session Knowledge Session Created
Knowledge Session Updated Request KnowledgeSessionUpdatedRequest domain session Knowledge Sessions
Learner State LearnerState domain session Learner State
Learner Tutor Action LearnerTutorAction Dodomain session Learner Tutor Action
Lesson Completed LessonCompleted domain session None
Lesson Started LessonStarted domain session None
Lesson Graded Score Request LTILessonGradedScoreRequest domain session LTI Lesson Graded Score Request
LMS Data Reply LMSDataReply user session * LMS Course Records
LMS Data Request LMSDataRequest user session LMS Data Request
Load Progress LoadProgress domain session Generic State
Login Reply LoginReply user session * User Data
Login Request LoginRequest user session Login Request
Logout Request LogOutRequest user session None
LoS Query LoSQuery domain session Line of Sight Query
LoS Result LoSResult domain session Line of Sight Result
Get Lti User Request LtiGetUserRequest pre-user session LTI Get User Request
Get Lti User Reply LtiGetUserReply pre-user session LTI Get User Reply
Get Lti Provider Url Request LtiGetProviderUrlRequest pre-user session LTI Get Provider Url Request
Get Lti Provider Url Reply LtiGetProviderUrlReply pre-user session LTI Get Provider Url Reply
Manage Membership Team Knowledge Session Manage Membership Team Knowledge Session domain session Manage Membership Team Knowledge Session
Module Allocation Reply ModuleAllocationReply pre-user session Module Allocation Reply
Module Allocation Request ModuleAllocationRequest pre-user session Module Allocation Request
Module Status ModuleStatus pre-user session Module Status
NACK NACK pre-user session,
domain session,
user session *
NACK
New User Request NewUserRequest pre-user session User Data
Over Dwell Violation OverDwellViolation pre-user session String Payload – the GIFT username to use to lookup the violation
Pedagogical Request PedagogicalRequest domain session Pedagogical Request
Performance Assessment PerformanceAssessment domain session Performance Assessment
PowerPoint State PowerPointState pre-user session PowerPoint State
Publish Lesson Score Request PublishLessonScoreRequest domain session Publish Lesson Score Request
Publish Lesson Score Reply PublishLessonScoreReply domain session Publish Lesson Score Response
Processed ACK ProcessedACK pre-user session,
domain session,
user session *
None
Processed NACK ProcessedNACK pre-user session,
domain session,
user session *
NACK
Rifle Shot RifleShot pre-user session Rifle Shot
Remove Entity RemoveEntity pre-user session Remove Entity
Sensor Data SensorData domain session Unfiltered Sensor Data
Sensor Status SensorStatus user session Sensor Status
Sensor File Created SensorFileCreated domain session Sensor File Created
Sensor Filter Data SensorFilterData domain session Filtered Sensor Data
SIMAN Siman domain session Siman
Simple Example State SimpleExampleState domain session Simple Example State
Start Domain Session StartDomainSession domain session None
Start Resume StartResume pre-user session Start Resume
Start Team Knowledge Session Request StartTeamKnowledgeSessionRequest domain session None
Start Team Knowledge Session Reply StartTeamKnowledgeSessionReply domain session None
Stop Freeze StopFreeze pre-user session Stop Freeze
Subject Created SubjectCreated user session Subject Created
Submit Survey Results SubmitSurveyResults domain session Submit Survey Results
SurveyCheckRequest SurveyCheckRequest user session Survey Check Request
SurveyCheckResponse SurveyCheckResponse user session Survey Check Response
TrainingAppSurveyResponse TrainingAppSurveyResponse user session Survey Response
TrainingAppSurveySubmit TrainingAppSurveySubmit domain session None
Tutor Module Status TutorModuleStatus pre-user session Tutor Module Status
TutorSurveyQuestionResponse TutorSurveyQuestionResponse domain session Question Response
Under Dwell Violation UnderDwellViolation pre-user session String Payload – the GIFT username to use to lookup the violation
User Id Request UserIdRequest pre-user session String Payload – the GIFT username to use to lookup the user id
User Id Reply UserIdReply pre-user session User Data
Vibrate Device Request VibrateDeviceRequest domain session Vibrate Device
Weapon Fire WeaponFire pre-user session Weapon Fire
Weapon State Request VariablesStateRequest pre-user session Variables State Request
Weapon State Result VariablesStateResult pre-user session Variables State Result
Web Monitor Module Status WebMonitorModuleStatus pre-user session Web Monitor Module Status
  • - Fill in the proper Sequence Number for the reply.

GIFT Payloads

Affective State

AbstractLearnerState.proto
Protobuf Files

After Action Review Course Event

AfterActionReviewCourseEvent.proto and AbstractAfterActionReviewEvent.proto
Protobuf Files

After Action Review Survey Event

AfterActionReviewSurveyEvent.proto and AbstractAfterActionReviewEvent.proto
Protobuf Files

After Action Review Remediation Event

AfterActionReviewRemediationEvent.proto and AbstractAfterActionReviewEvent.proto
Protobuf Files

Apply Strategies

ApplyStrategies.proto
Protobuf Files

Apply Strategy Learner Action

ApplyStrategyLearnerAction.proto
Protobuf Files

Authorize Strategies Request

AuthorizeStrategiesRequest.proto
Protobuf Files

Branch Adaptation Strategy

BranchAdaptationStrategy.proto
Protobuf Files

Branch Path History

BranchPathHistory.proto
Protobuf Files

Branch Path History Request

BranchPathHistoryRequest.proto
Protobuf Files

Chat Log

ChatLog.proto
Protobuf Files

Clear Text Action

ClearTextAction.proto
Protobuf Files

Close Domain Session Request

CloseDomainSessionRequest.proto
Protobuf Files

Collision

Collision.proto
Protobuf Files

Cognitive State

AbstractLearnerState.proto
Protobuf Files

Course State

CourseState.proto
Protobuf Files

Detonation

Detonation.proto
Protobuf Files

Display AAR Tutor Request

DisplayAARTutorRequest.proto
Protobuf Files

Display Avatar Action

DisplayAvatarAction.proto
Protobuf Files

Display Chat Window Request

DisplayChatWindowRequest.proto
Protobuf Files

Display Chat Window Update Request

DisplayChatWindowUpdateRequest.proto
Protobuf Files

Display Course Init Instructions Request

DisplayCourseInitInstructionsRequest.proto
Protobuf Files

Display Guidance Tutor Request (Base)

AbstractDisplayGuidanceTutorRequest.proto
Protobuf Files

Display HTML Page Guidance Tutor Request

AbstractDisplayGuidanceTutorRequest.proto
Protobuf Files

Display Learner Actions Tutor Request

DisplayLearnerActionsTutorRequest.proto
Protobuf Files

Display Media Collection Request

DisplayMediaCollectionRequest.proto
Protobuf Files

Display Mid-Lesson Media Request

DisplayMidLessonMediaRequest.proto
Protobuf Files

Display Message Tutor Request

AbstractDisplayGuidanceTutorRequest.proto
Protobuf Files

Display Scripted Avatar Action

DisplayAvatarAction.proto
Protobuf Files

Display Text Action

DisplayTextAction.proto
Protobuf Files

Domain Option

DomainOption.proto
Protobuf Files

Domain Options Request

DomainOptionsRequest.proto
Protobuf Files

Domain Selection Request

DomainSelectionRequest.proto
Protobuf Files

Domain Session

DomainSession.proto
Protobuf Files

Domain Session List

DomainSessionList.proto
Protobuf Files

Entity State

EntityState.proto
Protobuf Files

Environment Control

EnvironmentControl.proto
Protobuf Files

Evaluator Update Request

EvaluatorUpdateRequest.proto
Protobuf Files

Data Collection Item

DataCollectionItem.proto
Protobuf Files

Execute OC Strategy

ExecuteOCStrategy.proto
Protobuf Files

Experiment Subject

ExperimentSubject.proto
Protobuf Files

Experiment Course Request

ExperimentCourseRequest.proto
Protobuf Files

Filtered Sensor

FilteredSensorData.proto
Protobuf Files

Gateway Module Status

GatewayModuleStatus.proto
Protobuf Files

Generic State

GenericState.proto
Protobuf Files

Get Survey Request

GetSurveyRequest.proto
Protobuf Files

Get Experiment Request

GetExperimentRequest.proto
Protobuf Files

Individual Knowledge Session

AbstractKnowledgeSession.proto
Protobuf Files

Initialize Domain Session Request

InitializeDomainSessionRequest.proto
Protobuf Files

Initialize Embedded Connections

InitializeEmbeddedConnections.proto
Protobuf Files

Initialize Interop Connections

InitializeInteropConnections.proto
Protobuf Files

Initialize Pedagogical Model Request

InitializePedagogicalModelRequest.proto
Protobuf Files

Instantiate Learner Request

InstantiateLearnerRequest.proto
Protobuf Files

Interop Connections Info

InteropConnectionsInfo.proto
Protobuf Files

Knowledge Session Created

KnowledgeSessionCreated.proto
Protobuf Files

Knowledge Sessions Request

KnowledgeSessionsRequest.proto
Protobuf Files

Knowledge Sessions

KnowledgeSessions.proto
Protobuf Files

Learner Action

LearnerAction.proto
Protobuf Files

Learner State

LearnerState.proto
Protobuf Files

Learner Tutor Action

LearnerTutorAction.proto
Protobuf Files

LMS Connection Info

LMSConnectionInfo.proto
Protobuf Files

LMS Course Record

LMSCourseRecord.proto
Protobuf Files

LMS Course Records

LMSCourseRecords.proto
Protobuf Files

LMS Data Request

LMSDataRequest.proto
Protobuf Files

Line of Sight Query

LoSQuery.proto
Protobuf Files

Line of Sight Result

LoSResult.proto
Protobuf Files

Located Team Member

AbstractTeamUnit.proto
Protobuf Files

Login Request

LoginRequest.proto
Protobuf Files

LTI Get User Request

LtiGetUserRequest.proto
Protobuf Files

LTI Get User Reply

LtiGetUserReply.proto
Protobuf Files

LTI Lesson Graded Score Request

LtiLessonGradedScoreRequest.proto
Protobuf Files

LTI Runtime Parameters

AbstractRuntimeParameters.proto
Protobuf Files

LTI User Id

LtiUserID.proto
Protobuf Files

LTI User Session Details

LtiUserSessionDetails.proto
Protobuf Files

Marked Team Member

AbstractTeamUnit.proto
Protobuf Files

Matrix of Choices Reply Weights

survey/MatrixOfChoicesReplyWeights.proto
Protobuf Files

Media Item

MediaItem.proto
Protobuf Files

Metadata Attribute Item

MetadataAttributeItem.proto
Protobuf Files

Mission

Mission.proto
Protobuf Files

Module Allocation Request

ModuleAllocationRequest.proto
Protobuf Files

*If the Module Type is equal to Gateway Module then the Module Type is mapped to the Gateway Module Status instead.

Module Allocation Reply

ModuleAllocationReply.proto
Protobuf Files

Module Status

ModuleStatus.proto
Protobuf Files

NACK

NACK.proto
Protobuf Files

Pedagogical Request

PedagogicalRequest
Protobuf Files

Pedagogical Requests

PedagogicalRequest.proto
Protobuf Files

Performance Assessment

PerformanceAssessment.proto
Protobuf Files

Performance State

PerformanceState.proto
Protobuf Files

PowerPoint State

PowerPointState.proto
Protobuf Files

Publish Lesson Score Request

PublishLessonScore.proto
Protobuf Files

Publish Lesson Score Response

PublishLessonScoreResponse.proto
Protobuf Files

Remove Entity

RemoveEntity.proto
Protobuf Files

Request Branch Adaptation

AbstractPedagogicalRequest.proto
Protobuf Files

Request Do Nothing Strategy

AbstractPedagogicalRequest.proto
Protobuf Files

Request Instructional Intervention

AbstractPedagogicalRequest.proto
Protobuf Files

Request Mid-Lesson Media

AbstractPedagogicalRequest.proto
Protobuf Files

Request Performance Assessment

AbstractPedagogicalRequest.proto
Protobuf Files

Request Scenario Adaptation

AbstractPedagogicalRequest.proto
Protobuf Files

Rifle Shot

RifleShotMessage.proto
Protobuf Files

Sensor Status

SensorStatus.proto
Protobuf Files

Sensor File Created

SensorFileCreated.proto
Protobuf Files

Siman

Siman.proto
Protobuf Files

Simple Example State

SimpleExampleState.proto
Protobuf Files

Start Resume

StartResume.proto
Protobuf Files

Stop Freeze

StopFreeze.proto
Protobuf Files

Strategy To Apply

StrategyToApply.proto
Protobuf Files

Subject Created

SubjectCreated.proto
Protobuf Files

Submit Survey Results

survey\SubmitSurveyResults.proto
Protobuf Files

Survey Check Request - Reply

SurveyCheckRequest.proto
Protobuf Files

Survey Check Response

SurveyCheckResponse.proto
Protobuf Files

Survey Context

survey\SurveyContext.proto
Protobuf Files

Survey Context Survey

survey\SurveyContextSurvey.proto
Protobuf Files

Survey Check Response - Success Response

SurveyCheckResponse.proto
Protobuf Files

Survey List Check Request

SurveyListCheckRequest.proto
Protobuf Files

Survey Item Property Value

survey\SurveyItemPropertyValue.proto
Protobuf Files

Survey Gift Data

survey\SurveyGiftData.proto
Protobuf Files

Survey Scale Score

survey\SurveyScorer.proto
Protobuf Files

Survey Scorer

survey\SurveyScorer.proto
Protobuf Files

Survey Page

survey\SurveyPage.proto
Protobuf Files

Survey Response

survey\SurveyResponse.proto
Protobuf Files

Team Knowledge Session

AbstractKnowledgeSession.proto
Protobuf Files

Tutor Module Status

TutorModuleStatus.proto
Protobuf Files

Tutor User Interface Feedback

TutorUserInterfaceFeedbackPayload.proto
Protobuf Files

Unfiltered Sensor Data

UnfilteredSensorData.proto
Protobuf Files

User Data

UserData.proto
Protobuf Files

User Session

UserSession.proto
Protobuf Files

User Session List

UserSessionList.proto
Protobuf Files

Variables State Request

VariablesStateRequest.proto
Protobuf Files

Variables State Result

VariablesStateResult.proto
Protobuf Files

Weapon Fire

WeaponFire.proto
Protobuf Files

Web Monitor Module Status

WebMonitorModuleStatus.proto
Protobuf Files

GIFT Enumerations

Arousal Level

Element Name Element Value Description
Unknown Unknown
Low Low
Medium Medium
High High

Assessment Level

Element Name Element Value Description
Below Expectation BelowExpectation
At Expectation AtExpectation
Above Expectation AboveExpectation
Unknown Unknown

Damage

Element Name Element Value Description
SlightDamage Slight Damage
ModerateDamage Moderate Damage
Destroyed Destroyed

Detonation Result

Element Name Element Value Description
Other Other
Entity Impact EntityImpact
None None

Domain Option Recommendation Enum

Element Name Element Value Description
Unavailable - Other UnavailableOther
Unavailable - Survey Validation UnavailableSurveyValidation
Unavailable - Restricted to User UnavailableRestrictedToUser
Recommended Recommended
Not Recommended NotRecommended

Engagement Level

Element Name Element Value Description
Unknown Unknown
Low Low
Medium Medium
High High

Environment Control Enum

Element Name Element Value Description
Overcast Overcast
Fog Level 1 FogLevel1
Fog Level 2 FogLevel2
Fog Level 3 FogLevel3
Fog Level 4 FogLevel4
Rain Rain
Time of Day Dusk TimeOfDayDusk
Time of Day Dawn TimeOfDayDawn
Time of Day Midday TimeOfDayMidday
Time of Day Midnight TimeOfDayMidnight

Error Type

Element Name Element Value Description
Malformed Data Error MalformedDataError
User Not Found Error UserNotFoundError
Database Insert Error DBInsertError
Database Update Error DBUpdateError
Incorrect Credentials IncorrectCredentials
LMS Retrieve Error LMSRetrieveError
Learner Instantiated Error LearnerInstantiatedError
Domain Session Not Found Error DomainSessionNotFoundError
Message Timeout Error MessageTimeOutError
Operation Failed OperationFailedError
Module Not Found ModuleNotFound
Unhandled Message Error UnhandledMessageError
Get Survey Error GetSurveyError

Experiment Status

Element Name Element Value Description
Running RUNNING
Paused PAUSED The experimenter has paused the experiment, meaning no additional subjects can start the experiment while it is in this state.
Invalid Course INVALID_COURSE The course is currently invalid. This means that no additional subjects can start the experiment while the course is invalid.

Filter Type

Element Name Element Value Description
Raw RAW

Gender

Element Name Element Value Description
Male MALE
Female FEMALE

Learner Action Type

Element Name Element Value Description
Explosive Hazard Spot Report EXPLOSIVE_HAZARD_SPOT_REPORT
Nine Line Report NINE_LINE_REPORT
Spot Report SPOT_REPORT
Radio RADIO

Learner State Attribute Name

Element Name Element Value Description
Engagement Engagement
Understanding Understanding
Arousal Arousal
Long Term Excitement LongTermExcitement
Short Term Excitement ShortTermExcitement
Meditation Meditation
Frustration Frustration
Motivation Motivation
Prior Knowledge PriorKnowledge
Socio-Economic Status SocioEconomicStatus
Locus of Control LocusOfControl
Learner Ability LearnerAbility
General Intelligence GeneralIntelligence
Learning Style LearningStyle

Lesson Level

Element Name Element Value Description
Course Course
RTA Real-Time Assessment

Low Medium High Level

Element Name Element Value Description
Unknown Unknown
Low Low
Medium Medium
High High

Message Encoding Type

Element Name Element Value Description
JSON JSON
BINARY BINARY

Message Feedback Display Mode

Element Name Element Value Description
AvatarAndText Avatar and Text
AvatarOnly Avatar Only
TextOnly Text Only

Message Type

Element Name Element Value Description
ACK ACK
Active Domain Sessions Reply ActiveDomainSessionsReply
Active Domain Sessions Request ActiveDomainSessionsRequest
Active User Sessions Reply ActiveUserSessionsReply
Active User Sessions Request ActiveUserSessionsRequest
Active Knowledge Sessions Request ActiveKnowledgeSessionsRequest
Active Knowledge Sessions Reply ActiveKnowledgeSessionsReply
Apply Strategies ApplyStrategies
Authorize Strategies Request AuthorizeStrategiesRequest
Branch Path History Update BranchPathHistoryUpdate
Branch Path History Request BranchPathHistoryRequest
Branch Path History Reply BranchPathHistoryReply
Chat Log ChatLog
Close Domain Session Request CloseDomainSessionRequest
Collision Collision
Configure Interop Connections ConfigureInteropConnections
Course State CourseState
Detonation Detonation
Display AAR Tutor Request DisplayAarTutorRequest
Display Chat Window Request DisplayChatWindowRequest
Display Chat Window Update Request DisplayChatWindowUpdateRequest
Display Feedback Tutor Request DisplayFeedbackTutorRequest
Display Feedback Gateway Request DisplayFeedbackGatewayRequest
Display Learner Actions Tutor Request DisplayLearnerActionsTutorRequest
Display Lesson Material Tutor Request DisplayLessonMaterialTutorRequest
Display Mid-Lesson Media Tutor Request DisplayMidLessonMediaTutorRequest
Display Survey Tutor Request DisplaySurveyTutorRequest
Display Guidance Tutor Request DisplayGuidanceTutorRequest
Display Team Sessions DisplayTeamSessions
Domain Module Status DomainModuleStatus
Domain Options Request DomainOptionsRequest
Domain Options Reply DomainOptionsReply
Domain Selection Request DomainSelectionRequest
Domain Selection Reply DomainSelectionReply
Domain Session Start Time Request DomainSessionStartTimeRequest
Domain Session Start Time Reply DomainSessionStartTimeReply
Entity State EntityState
Environment Control EnvironmentControl
Evaluator Update Request EvaluatorUpdateRequest
Experiment Course Request ExperimentCourseRequest
Execute OC Strategy ExecuteOcStrategy
External Monitor Config ExternalMonitorConfig
Gateway Module Status GatewayModuleStatus
Generic JSON State GenericJSONState
Geolocation Geolocation
Get Experiment Request GetExperimentRequest
Get Experiment Reply GetExperimentReply
Get Survey Reply GetSurveyReply
Get Survey Request GetSurveyRequest
Initialize Domain Session Request InitializeDomainSessionRequest
Initialize Interop Connections InitializeInteropConnections
Initialize Embedded Connections InitEmbeddedConnections
Initialize Lesson Request InitializeLessonRequest
Initialize Pedagogical Model Request InitializePedagogicalModelRequest
Instantiate Learner Request InstantiateLearnerRequest
Interop connections information InteropConnectionsInfo
Kill Module KillModule
Knowledge Session Created KnowledgeSessionCreated
Knowledge Session Updated Reply KnowledgeSessionUpdatedReply
Knowledge Session Updated Request KnowledgeSessionUpdatedRequest
Learner Tutor Action LearnerTutorAction
Learner State LearnerState
Lesson Completed LessonCompleted
Lesson Started LessonStarted
Lesson Graded Score Request LessonGradedScoreRequest
LMS Data Reply LMSDataReply
LMS Data Request LMSDataRequest
Load progress LoadProgress
Login Reply LoginReply
Logout Reply LogoutReply
Logout Request LogoutRequest
Line of Sight Query LoSQuery
Line of Sight Result LoSResult
LTI Get User Request LtiGetUserRequest
LTI Get User Reply LtiGetUserReply
LTI Get Provider URL Request LtiGetProviderUrlRequest
LTI Get Provider URL Reply LtiGetProviderUrlReply
Manage Membership Team Knowledge Session ManageMembershipTeamKnowledgeSession
Module Allocation Reply ModuleAllocationReply
Module Allocation Request ModuleAllocationRequest
Module Status ModuleStatus
NACK NACK
New User Request NewUserRequest
Over dwell violation OverDwellViolation
Pedagogical Request PedagogicalRequest
Performance Assessment PerformanceAssessment
Publish Lesson Score Request PublishLessonScoreRequest
Publish Lesson Score Reply PublishLessonScoreReply
Processed ACK ProcessedACK
Processed NACK ProcessedNACK
Rifle Shot RifleShot
Sensor Data SensorData
Sensor Status SensorStatus
Sensor File Created SensorFileCreated
Sensor Filter Data SensorFilterData
Siman Siman
Simple Example State SimpleExampleState
Start Domain Session StartDomainSession
Start Resume StartResume
Start Team Knowledge Session Request StartTeamKnowledgeSessionRequest
Start Team Knowledge Session Reply StartTeamKnowledgeSessionReply
Stop Freeze StopFreeze
Subject Created SubjectCreated Used to indicate that a subject in an experiment was created.
Submit Survey Results SubmitSurveyResults
Survey Check Request SurveyCheckRequest
Survey Check Response SurveyCheckResponse
Survey Presented Notification SurveyPresentedNotification
Training App Survey Response TrainingAppSurveyResponse
Training App Survey Submit TrainingAppSurveySubmit
Tutor module status TutorModuleStatus
Tutor Survey Question Response TutorSurveyQuestionResponse
User ID Request UserIdRequest
User ID Reply UserIdReply
Under dwell violation UnderDwellViolation
Vibrate Device Request VibrateDeviceRequest
Weapon Fire WeaponFire
Variable State Result VariableStateResult
Variable State Request VariableStateRequest
Weapon State Result WeaponStateResult
Weapon State Request WeaponStateRequest
Web Monitor Module Status WebMonitorModuleStatus

Merrill Quadrant

Element Name Element Value Description
Rule Rule
Example Example
Recall Recall
Practice Practice

Metadata Attribute

Element Name Element Value Description
IMI 1 IMI1
IMI 2 IMI2
IMI 3 IMI3
IMI4 IMI4
Visual Visual
Textual Textual
Visual with Text Visual with Text
Video Video
Animation Animation
Easy Difficulty Easy Difficulty
Medium Difficulty Medium Difficulty
Hard Difficulty Hard Difficulty
Low Control Low Control
Medium Control Medium Control
High Control High Control
Case Study Case Study
Graphic Graphic
Worked Example Worked Example
Multiple Choice Multiple Choice
Short Response Short Response
Essay Response Essay Response
LSA LSA
Item Response Item Response
Concept Progression As Needed Concept Progression As Needed
Feedback Frequency Question by Question Feedback Frequency Question by Question
Feedback Frequency Following All items Feedback Frequency Following All Items
Training Type Procedure Execution Training Type Procedure Execution
Training Type Problem Solving Training Type Problem Solving
Guidance Hints Guidance Hints
Guidance Prompts Guidance Prompts
Guidance Reflection Guidance Reflection
Guidance Assertions Guidance Assertions
Guidance Pumps Guidance Pumps
Training Feedback Realtime Training Feedback Realtime
Training Feedback AAR Training Feedback AAR

Module State

Element Name Element Value Description
UNKNOWN Unknown The state is not known or not provided
NORMAL Normal The module is behaving normally
OVERLOADED Overloaded The module is overloaded at this time
FAILED Failed The module has reached a critical failure state and is no longer executing properly.

Module Type

Element Name Element Value Description
UMS Module UMS_Module
LMS Module LMS_Module
DMS Module DMS_Module
Tutor Module Tutor_Module
Learner Module Learner_Module
Pedagogical Module Pedagogical_Module
Sensor Module Sensor_Module
Gateway Module Gateway_Module
Domain Module Domain_Module
Monitor Module Monitor_Module

Operator

Element Name Element Value Description
Less Than LessThan
Greater Than GreaterThan
Less Than or Equals LessThanEquals
Greater Than or Equals GreaterThanEquals
Equals Equals

Performance Node State

Element Name Element Value Description
Unactivated UNACTIVATED the task/concept was never active
Active ACTIVE the task/concept is currently being assessed
Deactivated DEACTIVATED the concept's conditions never finished but the concept is NOT currently being assessed because the ancestor task is no longer active
Finished FINISHED the task/concept gracefully finished and is NOT currently being assessed

Posture

Element Name Element Value Description
Unused Unused
Standing Standing
Walking Walking
Running Running
Kneeling Kneeling
Prone Prone
Crawling Crawling
Swimming Swimming
Parachuting Parachuting
Jumping Jumping
Sitting Sitting
Squatting Squatting
Crouching Crouching
Wading Wading
Surrender Surrender
Detained Detained

Question State

Element Name Element Value Description
Answered Correct AnsweredCorrect
Answered Wrong AnsweredWrong
Skipped Skipped
Unanswered Unanswered

Score Node Type

Element Name Element Value Description
Graded Score Node GradedScoreNode
Raw Score Node RawScoreNode
Task Score Node TaskScoreNode

Sensor Attribute Name

Element Name Element Value Description
Time Time
Temperature Temperature
Humidity Humidity
Arousal Arousal
Acceleration 3D X Acceleration3d
Electro Dermal Activity EDA
Long Term Excitement LongTermExcitement
Short Term Excitement ShortTermExcitement
Meditation Meditation
Frustration Frustration
Engagement Engagement
ED Counter ED_COUNTER An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Interpolated ED_INTERPOLATED An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Raw CQ ED_RAW_CQ An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED AF3 ED_AF3 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan F7 EE_CHAN_F7 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan F3 EE_CHAN_F3 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan FC5 EE_CHAN_FC5 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan T7 EE_CHAN_T7 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan P7 EE_CHAN_P7 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan O1 EE_CHAN_O1 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan O2 EE_CHAN_O2 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan P8 EE_CHAN_P8 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan T8 EE_CHAN_T8 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan FC6 EE_CHAN_FC6 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan F4 EE_CHAN_F4 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
EE Chan F8 EE_CHAN_F8 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED AF4 ED_AF4 An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Gyro X ED_GYROX An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Gyro Y ED_GYROY An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Timestamp ED_TIMESTAMP An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED ES Timestamp ED_ES_TIMESTAMP An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Function ID ED_FUNC_ID An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Function Value ED_FUNC_VALUE An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Marker ED_MARKER An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
ED Sync Signal ED_SYNC_SIGNAL An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information.
OS3D BITMASK OS3D_BITMASK An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D FRAME COUNTER OS3D_FRAME_COUNTER An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D RAW ACC OS3D_RAW_ACC An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D RAW GYR OS3D_RAW_GYR An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D RAW MAG OS3D_RAW_MAG An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D RAW TEMP OS3D_RAW_TEMP An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D CAL ACC OS3D_CAL_ACC An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D CAL GYR OS3D_CAL_GYR An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
OS3D CAL MAG OS3D_CAL_MAG An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
QUAT X QUAT_X A quaternion X value.
QUAT Y QUAT_Y A quaternion Y value.
QUAT Z QUAT_Z A quaternion Z value.
QUAT W QUAT_W A quaternion W value.
QUAT X Relative QUAT_X_REL A relative quaternion X value.
QUAT Y Relative QUAT_Y_REL A relative quaternion Y value.
QUAT Z Relative QUAT_Z_REL A relative quaternion Z value.
QUAT W Relative QUAT_W_REL A relative quaternion W value.
Dropped Packet Count DROPPED_PACKET_COUNT A counter for the number of dropped packets.
Roll Degrees ROLL_DEG A roll value in degrees
Pitch Degrees PITCH_DEG A pitch value in degrees
Yaw Degrees YAW_DEG A yaw value in degrees
Roll Relative Degrees ROLL_DEG_REL A roll value in degrees relative to some value
Pitch Relative Degrees PITCH_DEG_REL A pitch value in degrees relative to some value
Yaw Relative Degrees YAW_DEG_REL A yaw value in degrees relative to some value
HEART RATE HEART_RATE An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information.
RESPIRATION RATE RESPIRATION_RATE An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information.
SKIN TEMPERATURE SKIN_TEMPERATURE An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information.
POSTURE POSTURE An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information.
HEAD POSE HEAD_POSE
HEAD POSE ROT HEAD_POSE_ROT
POSTURE TYPE POSTURE_TYPE
ACTIVITY TYPE ACTIVITY_TYPE
ATTENTION TYPE ATTENTION_TYPE
ATTENTION VALUE ATTENTION_VALUE
ENGAGEMENT TYPE ENGAGEMENT_TYPE
ENGAGEMENT VALUE ENGAGEMENT_VALUE
HORIZONTAL GAZE HORIZONTAL_GAZE
VERTICAL GAZE VERTICAL_GAZE
GAZE DIRECTION GAZE_DIRECTION
LEFT HAND POSE LEFT_HAND_POSE
LEFT HAND POSE ROT LEFT_HAND_POSE_ROT
LEFT HAND POSE TYPE LEFT_HAND_POSE_TYPE
RIGHT HAND POSE RIGHT_HAND_POSE
RIGHT HAND POSE ROT RIGHT_HAND_POSE_ROT
RIGHT HAND POSE TYPE RIGHT_HAND_POSE_TYPE
HEAD HEAD
CENTER HIP CENTER_HIP
CENTER SHOULDER CENTER_SHOULDER
LEFT ANKLE LEFT_ANKLE
LEFT ELBOW LEFT_ELBOW
LEFT FOOT LEFT_FOOT
LEFT HAND LEFT_HAND
LEFT HIP LEFT_HIP
LEFT KNEE LEFT_KNEE
LEFT SHOULDER LEFT_SHOULDER
LEFT WRIST LEFT_WRIST
RIGHT ANKLE RIGHT_ANKLE
RIGHT ELBOW RIGHT_ELBOW
RIGHT FOOT RIGHT_FOOT
RIGHT HAND RIGHT_HAND
RIGHT HIP RIGHT_HIP
RIGHT KNEE RIGHT_KNEE
RIGHT SHOULDER RIGHT_SHOULDER
RIGHT WRIST RIGHT_WRIST
SPINE SPINE
TOP SKULL TOP_SKULL
TOP RIGHT FOREHEAD TOP_RIGHT_FOREHEAD
MIDDLE TOP DIP UPPER LIP MIDDLE_TOP_DIP_UPPER_LIP
ABOVE CHIN ABOVE_CHIN
BOTTOM OF CHIN BOTTOM_OF_CHIN
RIGHT OF RIGHT EYEBROW RIGHT_OF_RIGHT_EYEBROW
MIDDLE TOP OF RIGHT EYEBROW MIDDLE_TOP_OF_RIGHT_EYEBROW
LEFT OF RIGHT EYEBROW LEFT_OF_RIGHT_EYEBROW
MIDDLE BOTTOM OF RIGHT EYEBROW MIDDLE_BOTTOM_OF_RIGHT_EYEBROW
ABOVE MID UPPER RIGHT EYELID ABOVE_MID_UPPER_RIGHT_EYELID
OUTER CORNER OF RIGHT EYE OUTER_CORNER_OF_RIGHT_EYE
MIDDLE TOP RIGHT EYELID MIDDLE_TOP_RIGHT_EYELID
MIDDLE BOTTOM RIGHT EYELID MIDDLE_BOTTOM_RIGHT_EYELID
INNER CORNER RIGHT EYE INNER_CORNER_RIGHT_EYE
UNDER MID BOTTOM RIGHT EYELID UNDER_MID_BOTTOM_RIGHT_EYELID
RIGHT SIDE OF CHIN RIGHT_SIDE_OF_CHIN
OUTSIDE RIGHT CORNER MOUTH OUTSIDE_RIGHT_CORNER_MOUTH
RIGHT OF CHIN RIGHT_OF_CHIN
RIGHT TOP DIP UPPER LIP RIGHT_TOP_DIP_UPPER_LIP
TOP LEFT FOREHEAD TOP_LEFT_FOREHEAD
MIDDLE TOP LOWER LIP MIDDLE_TOP_LOWER_LIP
MIDDLE BOTTOM LOWER LIP MIDDLE_BOTTOM_LOWER_LIP
LEFT OF LEFT EYEBROW LEFT_OF_LEFT_EYEBROW
MIDDLE TOP OF LEFT EYEBROW MIDDLE_TOP_OF_LEFT_EYEBROW
RIGHT OF LEFT EYEBROW RIGHT_OF_LEFT_EYEBROW
MIDDLE BOTTOM OF LEFT EYEBROW MIDDLE_BOTTOM_OF_LEFT_EYEBROW
ABOVE MID UPPER LEFT EYELID ABOVE_MID_UPPER_LEFT_EYELID
OUTER CORNER OF LEFT EYE OUTER_CORNER_OF_LEFT_EYE
MIDDLE TOP LEFT EYELID MIDDLE_TOP_LEFT_EYELID
MIDDLE BOTTOM LEFT EYELID MIDDLE_BOTTOM_LEFT_EYELID
INNER CORNER LEFT EYE INNER_CORNER_LEFT_EYE
UNDER MID BOTTOM LEFT EYELID UNDER_MID_BOTTOM_LEFT_EYELID
LEFT SIDE OF CHEEK LEFT_SIDE_OF_CHEEK
OUTSIDE LEFT CORNER MOUTH OUTSIDE_LEFT_CORNER_MOUTH
LEFT OF CHIN LEFT_OF_CHIN
LEFT TOP DIP UPPER LIP LEFT_TOP_DIP_UPPER_LIP
OUTER TOP RIGHT PUPIL OUTER_TOP_RIGHT_PUPIL
OUTER BOTTOM RIGHT PUPIL OUTER_BOTTOM_RIGHT_PUPIL
OUTER TOP LEFT PUPIL OUTER_TOP_LEFT_PUPIL
OUTER BOTTOM LEFT PUPIL OUTER_BOTTOM_LEFT_PUPIL
INNER TOP RIGHT PUPIL INNER_TOP_RIGHT_PUPIL
INNER BOTTOM RIGHT PUPIL INNER_BOTTOM_RIGHT_PUPIL
INNER TOP LEFT PUPIL INNER_TOP_LEFT_PUPIL
INNER BOTTOM LEFT PUPIL INNER_BOTTOM_LEFT_PUPIL
RIGHT TOP UPPER LIP RIGHT_TOP_UPPER_LIP
LEFT TOP UPPER LIP LEFT_TOP_UPPER_LIP
RIGHT BOTTOM UPPER LIP RIGHT_BOTTOM_UPPER_LIP
LEFT BOTTOM UPPER LIP LEFT_BOTTOM_UPPER_LIP
RIGHT TOP LOWER LIP RIGHT_TOP_LOWER_LIP
LEFT TOP LOWER LIP LEFT_TOP_LOWER_LIP
RIGHT BOTTOM LOWER LIP RIGHT_BOTTOM_LOWER_LIP
LEFT BOTTOM LOWER LIP LEFT_BOTTOM_LOWER_LIP
MIDDLE BOTTOM UPPER LIP MIDDLE_BOTTOM_UPPER_LIP
LEFT CORNER MOUTH LEFT_CORNER_MOUTH
RIGHT CORNER MOUTH RIGHT_CORNER_MOUTH
BOTTOM OF RIGHT CHEEK BOTTOM_OF_RIGHT_CHEEK
BOTTOM OF LEFT CHEEK BOTTOM_OF_LEFT_CHEEK
ABOVE THREE FOURTH RIGHT EYELID ABOVE_THREE_FOURTH_RIGHT_EYELID
ABOVE THREE FOURTH LEFT EYELID ABOVE_THREE_FOURTH_LEFT_EYELID
THREE FOURTH TOP RIGHT EYELID THREE_FOURTH_TOP_RIGHT_EYELID
THREE FOURTH TOP LEFT EYELID THREE_FOURTH_TOP_LEFT_EYELID
THREE FOURTH BOTTOM RIGHT EYELID THREE_FOURTH_BOTTOM_RIGHT_EYELID
THREE FOURTH BOTTOM LEFT EYELID THREE_FOURTH_BOTTOM_LEFT_EYELID
BELOW THREE FOURTH RIGHT EYELID BELOW_THREE_FOURTH_RIGHT_EYELID
BELOW THREE FOURTH LEFT EYELID BELOW_THREE_FOURTH_LEFT_EYELID
ABOVE ONE FOURTH RIGHT EYELID ABOVE_ONE_FOURTH_RIGHT_EYELID
ABOVE ONE FOURTH LEFT EYELID ABOVE_ONE_FOURTH_LEFT_EYELID
ONE FOURTH TOP RIGHT EYELID ONE_FOURTH_TOP_RIGHT_EYELID
ONE FOURTH TOP LEFT EYELID ONE_FOURTH_TOP_LEFT_EYELID
ONE FOURTH BOTTOM RIGHT EYELID ONE_FOURTH_BOTTOM_RIGHT_EYELID
ONE FOURTH BOTTOM LEFT EYELID ONE_FOURTH_BOTTOM_LEFT_EYELID
COLOR CHANNEL COLOR_CHANNEL
DEPTH CHANNEL DEPTH_CHANNEL

Sensor State

Element Name Element Value Description
Ready READY
Running RUNNING
Stopped STOPPED

Sensor Type

Element Name Element Value Description
Temperature/Humidity TEMP_HUMIDITY
GSR GSR
Sinewave SINEWAVE
Self Assessment SELF_ASSESSMENT
Temperature Humidity Mouse Surrogate MOUSE_TEMP_HUMIDITY_SURROGATE
Temperature Humidity Mouse MOUSE_TEMP_HUMIDITY
Mouse Event MOUSE_EVENT
Emotiv Composer EMOTIV_COMPOSER
Emotiv EMOTIV
VHT Multisense VHT_Multisense
Kinect KINECT
OS3D OS3D The Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information.
BioHarness BIOHARNESS The Zephyr Technologies BioHarness 3 sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information.
Motivation Surrogate MOTIVATION_SURROGATE
Expertise Surrogate EXPERTISE_SURROGATE

Shared Course Permissions

Element Name Element Value Description
Can Take TakeCourse
Can View, Copy, Export, and Take ViewCourse Specifies the ability to view a course in authoring mode
Can Edit, Copy, Export, and Take EditCourse Specifies the ability to edit a course in authoring mode

Siman Type

Element Name Element Value Description
Load Load
Start Start
Stop Stop
Pause Pause
Resume Resume

Survey Property Key

Element Name Element Value Description
Question Image Question_Image
Question Image Position Question_Image_Position
Question Image Width Question_Image_Width
Is Answer Field Text Box Is_Answer_Field_Text_Box
Column Options Column_Options
Row Options Row_Options
Column Width Column_Width
Reply Option Set Reply_Option_Set
Minimum Selections Required Minimum_Selections_Required
Maximum Selections Allowed Maximum_Selections_Allowed
Scale Image URI Scale_Image_Uri
Hide Reply Option Labels Hide_Reply_Option_Labels
Display Scale Labels Display_Scale_Labels
Left Label Left_Extreme_Label
Right Label Right_Extreme_Label
Mid Point Label Mid_Point_Label
Correct Answer Correct_Answer
CLS Question Priority CLS_Question_Priority
Use Bar Layout Use_Bar_Layout
Scorers Scorers
Survey Item Scales Survey_Item_Scales
Answer Weights Answer_Weights
Hide Survey Name Hide_Survey_Name
Hide Survey Question Numbers Hide_Survey_Question_Numbers
Hide Survey Page Numbers Hide_Survey_Page_Numbers
Survey Next Page Button Label Survey_Next_Page_Button_Label
Survey Next Page Button Label Survey_Complete_Survey_Button_Label
Survey Go Back Enabled Survey_Go_Back_Enabled
Randomize Randomize
Help String Help_String
Text Text
Required Required
Range ValueBounds
Completion Time COMPLETION_TIME
Allow Partial Credit Allow_Partial_Credit
Can Question Have Scoring CAN_QUESTION_HAVE_SCORING
Step Size STEP_SIZE

Training App Route Type

Element Name Element Value Description
Embedded EMBEDDED Specifies an embedded application that resides as a web page within the Tutor User Interface
Interop INTEROP Specifies an interop-based application that runs external to GIFT and communicates with GIFT through the Gateway Module

Training Application

Element Name Element Value Description
ARES Augmented REalitySandtable (ARES)
SimpleExampleTrainingApp Demo Application
DE_Testbed Dynamic Environment Testbed
MobileDeviceEvents Mobile Device Events
PowerPoint PowerPoint
Sudoku Sudoku
TC3 Tactical Combat Casuality Care (TC3)
UnityEmbedded TUI Embedded Unity
UnityDesktop Unity Desktop
VBS Virtual Battle Space (VBS)
VR-Engage VR-Engage
HAVEN Hybrid Agile Virtual Experimentation Nexus

Question Type

Element Name Element Value Description
Fill In The Blank FillInTheBlank
Multiple Choice MultipleChoice
Rating Scale RatingScale
Matrix Of Choices MatrixOfChoices
Slider Bar SliderBar

Understanding Level

Element Name Element Value Description
Unknown Unknown
Low Low
Medium Medium
High High

Version

Element Name Element Value Description
1.0 1.0 May 2012
2.0 2.0 Nov 2012
3.0 3.0 May 2013
4.0 4.0 Nov 2013
2014-2X 5.0 Sept 2014
2014-3X 5.1 Dec 2014
2015-1 6.0 June 2015
2016-1 7.0 July 2016
2017-1 8.0 July 2017
2019-1 9.0 April 2019
2020-1 10.0 April 2020
2021-1 11.0 April 2021
2021-2 11.0 Nov 2021

Weapon Control Status

Element Name Element Value Description
Hold Hold
Tight Tight
Free Free

Protobuf Files

protobufMessages.2022-1.zip (127 KB) Roberts, Nicholas, 10/17/2022 04:54 PM