Interface Control Document¶
- Interface Control Document
- Table of Figures
- Overview
- Modules
- ActiveMQ: Topics and Queues
- Messaging
- Overview
- GIFT Message Headers
- GIFT Messages
- GIFT Payloads
- Affective State
- After Action Review Course Event
- After Action Review Event (Base)
- After Action Review Survey Event
- Answer Score (Base)
- Assessment (Base)
- Attribute Scorer Properties
- Avatar Data
- Branch Adaptation Strategy
- Burst Descriptor
- Category
- Chat Log
- Clear Text Action
- Close Domain Session Request
- Collision
- Cognitive State
- Concept Assessment
- Concept Parameter
- Concept Performance State
- Course State
- Default Raw Score
- Detonation
- Display AAR Tutor Request
- Display Avatar Action
- Display Chat Window Request
- Display Chat Window Update Request
- Display Course Init Instructions Request
- Display Guidance Tutor Request (Base)
- Display HTML Page Guidance Tutor Request
- Display Learner Actions Tutor Request
- Display Media Tutor Request
- Display Scripted Avatar Action
- Display Text Action
- Display Text Guidance Tutor Request
- Display Text To Speech Avatar Action
- Display Text Tutor Request
- Domain Option
- Domain Option - Recommendation
- Domain Option List
- Domain Options Request
- Domain Selection Request
- Domain Session
- Domain Session List
- Entity Appearance
- Entity Identifier
- Entity State
- Entity Type
- Environment Control
- Event Identifier
- Experiment
- Experiment Subject
- Experiment Subject Id
- Experiment Course Request
- Filtered Sensor
- Folder
- Gateway Module Status
- Generic JSON State
- Get Survey Request
- Get Experiment Request
- Graded Score Node
- Image Properties
- Initialize Domain Session Request
- Initialize Interop Connections
- Initialize Pedagogical Model Request
- Instantiate Learner Request
- Intermediate Concept Assessment
- Interop Connections Info
- Learner Action
- Learner State Attribute
- Learner State Attribute (Base)
- Learner State
- Learner Tutor Action
- List Option
- LMS Connection Info
- LMS Course Record
- LMS Course Records
- LMS Data Request
- Line of Sight Query
- Line of Sight Result
- Login Request
- Matrix of Choices Reply Weights
- Media Item
- Metadata Attribute Item
- Module Allocation Request
- Module Allocation Reply
- Module Status
- NACK
- Number Payload
- Option List
- PDF Properties
- Pedagogical Request
- Pedagogical Requests
- Performance Assessment
- Performance State Attribute
- Performance State Attribute (Base)
- Performance State
- Play Audio Action
- Point 3d
- PowerPoint State
- Publish Lesson Score Request
- Publish Lesson Score Response
- Question
- Question Answer Score
- Question Scale Score
- Question Scorer
- Question Response
- Question Type Parameter
- Raw Score
- Raw Score Node
- Reply Answer Score
- Reply Scale Score
- Request Branch Adaptation
- Request Instructional Intervention
- Request Performance Assessment
- Request Scenario Adaptation
- Return Value Condition
- Rifle Shot
- Scale Score (Base)
- Score (Base)
- Score Node
- Sensor Attribute Value
- Sensor Double Value
- Sensor Status
- Sensor File Created
- Sensor Integer Value
- Sensor String Value
- Sensor Tuple3d Value
- Siman
- Simple Example State
- Simulation Address
- Slider Range
- Start Resume
- Stop Freeze
- String Payload
- Subject Created
- Submit Survey Results
- Survey
- Survey Answer Score
- Survey Check Request
- Survey Check Request - Question
- Survey Check Request - Reply
- Survey Check Response
- Survey Check Response - Response Interface
- Survey Check Response - Failure Response
- Survey Context
- Survey Context Survey
- Survey Check Response - Success Response
- Survey List Check Request
- Survey Item Property Value
- Survey Feedback Scorer (Base)
- Survey Scale Score
- Survey Scorer
- Survey Page
- Survey Page Response
- Survey Question
- Survey Response
- Task Assessment
- Task Performance State
- Total Scorer
- Tutor Me Learner Tutor Action
- Tutor User Interface Feedback
- Unfiltered Sensor Data
- User Data
- User Session
- User Session List
- Vector 3d
- Video Properties
- Weapon Fire
- WebClient Information
- Webpage Properties
- Youtube Video Properties
- GIFT Enumerations
- Arousal Level
- Assessment Level
- Damage
- Detonation Result
- Domain Option Recommendation Enum
- Engagement Level
- Environment Control Enum
- Error Type
- Experiment Status
- Filter Type
- Gender
- Learner Action Type
- Learner State Attribute Name
- Low Medium High Level
- Message Encoding Type
- Message Type
- Merrill Quadrant
- Metadata Attribute
- Module State
- Module Type
- Operator
- Pass Fail
- Posture
- Question State
- Score Node Type
- Sensor Attribute Name
- Sensor State
- Sensor Type
- Siman Type
- Survey Property Key
- Question Type
- Understanding Level
- Weapon Control Status
Table of Figures¶
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).
- 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
- For logging purposes
- For logging purposes
- For logging purposes
- For logging purposes
- For logging purposes
- For logging purposes
Logger Queue
Messages¶
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
Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this UMS module for a User Session
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
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Receive
From: Tutor
Reply With: Login Reply, Processed NACK
Description: Request for a new user to be created
Receive
From: Tutor
Reply With: User Id Reply, Processed NACK
Description: Request for a user id based on a username
Receive
From: Tutor
Reply With: Login Reply, Processed NACK
Description: Request for a user to be logged in
Receive
From: Tutor
Reply With: Processed ACK, Processed NACK
Description: Request for a user to be logged out
Receive
From: Sensor
Reply With: Nothing
Description: Notification that a file has been created with sensor data
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Submit the results of a survey
Receive
From: Domain
Reply With: Get Survey Reply
Description: Request a survey
Receive
From: Domain
Reply With: Domain Selection Reply, Processed NACK
Description: Request a domain session on the selected domain
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.
Receive
From: Domain
Expected Reply: Get Experiment Reply
Description: Reply to a request to retrieve the experiment details by experiment id.
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¶
Messages¶
Send
To: LMS Discovery
Reply With: Nothing
Description: Notify all subscribers of the LMS module status
Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this LMS module for a User Session
Send
To: Tutor
Reply With: Nothing
Description: Reply to the Tutor’s request to use this LMS module for a User Session
Receive
From: Learner, Tutor
Reply With: LMS Data Reply, Processed NACK
Description: A request for a learner’s LMS data
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
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Learner Module¶
Details¶
The primary function of the Learner module is to determine the learner’s state.
Subscriptions¶
Messages¶
Send
To: Learner Discovery
Expected Reply: Nothing
Description: Notify all subscribers of the Learner module status
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Learner module for a Domain Session
Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Learner module for a User Session
Receive
From: Sensor
Reply With: Nothing
Description: For processing sensor data into human relatable behavior
Receive
From: Sensor
Reply With: Nothing
Description: For processing sensor data into human relatable behavior
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
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Nothing
Description: For being notified that a domain session is ending
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson started
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson is complete
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Publishes the score of the lesson completed by a learner
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Submit the results of a survey to a learner
Receive
From: Domain
Reply With: Nothing
Description: Give a performance assessment to a learner
Receive
From: Tutor
Reply With: Nothing
Description: Unregister a learner with the module
Send
To: Pedagogical
Expected Reply: Nothing
Description: Notify modules of a learner’s state
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¶
Messages¶
Send
To: Pedagogical Discovery
Expected Reply: Nothing
Description: Notify all subscribers of the Pedagogical module status
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Pedagogical module for a Domain Session
Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Pedagogical module for a User Session
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
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify pedagogical module that the lesson started
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify pedagogical module that the lesson is complete
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Send
To: Domain
Expected Reply: Nothing
Description: Suggest pedagogical action to a tutor
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.
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¶
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
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
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
Receive
From: Tutor
Reply With: Processed ACK, Processed NACK
Description: Notify domain of action completed by the learner on the tutoring system
Receive
From: Tutor
Reply With: Domain Options Reply, Processed NACK
Description: Request the current set of domain options
Receive
From: Tutor
Reply With: Domain Selection Reply, Processed NACK
Description: Request a domain session on the selected domain
Receive
From: Tutor
Reply With: Processed ACK, Processed NACK
Description: For updating the domain module with the chat between the tutor and user
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Send
To: Learner, UMS, Sensor, Gateway, Tutor
Expected Reply: Nothing
Description: Ends the domain session
Receive
From: Monitor, Tutor
Reply With: Processed ACK, Processed NACK
Description: Ends the domain session
Receive
From: Pedagogical
Reply With: Nothing
Description: A request for an action
Send
To: UMS
Expected Reply: Get Survey Reply, Processed NACK
Description: Request the UMS for a survey
Send
To: Gateway
Expected Reply: Nothing
Description: Do a line of sight query
Send
To: UMS
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
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to initialize a domain session
Send
To: Learner
Expected Reply: Processed ACK, Processed NACK
Description: Request Learner to be instantiated
Send
To: Learner, UMS, Sensor, Gateway, Pedagogical, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to start a domain session
Send
To: Learner, UMS, Sensor, Gateway,Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to close a domain session
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
Send
To: Tutor
Expected Reply: Processed NACK, Display Survey Tutor Reply
Description: Tell the Tutor module to display a survey to the user
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display the After Action Review to the user
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 Type = LOAD)
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module to load a scenario
(Siman Type = START)
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module to start a scenario
(Siman Type = STOP)
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module to stop a scenario
(Siman Type = RESTART)
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module to restart a scenario
(Siman Type = PAUSE)
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module to pause a scenario
(Siman Type = RESUME)
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module to resume a scenario
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tweak the environment of the current interop application
Send
To: LMS
Expected Reply: Processed ACK, Processed NACK
Description: Notify the LMS of the score achieved by the user for a specific lesson
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
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
Expected Reply: Active Domain Sessions Reply
Description: Request for the active domain sessions known to this domain module instance.
Send
To: Monitor
Expected Reply: Nothing
Description: Reply to a request for the active domain sessions known to this domain module instance.
Send
To: Pedagogical
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).
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
Receive
From: Tutor
Expected Reply: Domain Selection Reply, Processed NACK
Description: Starts a new subject in the experiment's course
Send
To: UMS
Expected Reply: Get Experiment Reply
Description: Request the experiment details by experiment id.
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
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
Sensor Module¶
Details¶
The primary function of the Sensor module is to read and filter sensor data.
Subscriptions¶
Messages¶
Send
To: Sensor Discovery
Expected Reply: Nothing
Description: Notify subscribers of Sensor Module status
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Sensor module for a Domain Session
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
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is being ended
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Send
To: Learner
Expected Reply: Nothing
Description: Propagate new Sensor data for processing
Send
To: Learner
Expected Reply: Nothing
Description: Propagate new Filtered Sensor data for processing
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¶
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
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
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
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
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
Receive
From: Domain
Reply With: Display Survey Tutor Reply, Processed NACK
Description: Request a survey to be displayed to the learner
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
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
Send
To: UMS
Expected Reply: Processed NACK, Login Reply
Description: Request a new user to be added to the UMS
Send
To: UMS
Expected Reply: Processed NACK, Login Reply
Description: Request a user login
Send
To: UMS
Expected Reply: Processed NACK, User Id Reply
Description: Request the unique GIFT user id based on the GIFT username
Send
To: LMS
Expected Reply: LMS Data Reply, Processed NACK
Description: Request all LMS data on a user
Send
To: Domain
Expected Reply: Domain Options Reply, Processed NACK
Description: Request a list of available domains
Send
To: Domain
Expected Reply: Domain Selection Reply, Processed NACK
Description: Select a domain for use
Send
To: Domain
Expected Reply: Processed ACK, Processed NACK
Description: Notify Domain of a completed report
Send
To: Learner, UMS
Expected Reply: Processed ACK, Processed NACK
Description: Log a user out
Send
To: Domain
Expected Reply: Processed ACK, Processed NACK
Description: For updating the domain module with the chat between the tutor and user
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
Receive
From: Monitor
Expected Reply: Active User Sessions Reply
Description: Request for the active user sessions known to this tutor instance.
Send
To: Monitor
Expected Reply: Nothing
Description: Reply to a request for the active user sessions known to this tutor instance.
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
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
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
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¶
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.
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Gateway module for a Domain Session
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
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
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:
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 JSON 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
Currently the VBS interop interface can send these GIFT messages:
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:
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:
Currently the TC3 interop interface can send these GIFT messages:
SCATT
This interop interface handles communication between the SCATT Pro marksmanship training application.
Currently the SCATT interop interface can handle these incoming GIFT messages:
Currently the SCATT interop interface can send these GIFT messages:
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:
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)
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/.
Messages are formatted as JSON strings, for more information on JSON, see: http://www.json.org/
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
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 |
Domain Selection Request | S | R | ||||||
Domain Selection Request | S | R | ||||||
Domain Selection Reply | 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… |
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.
- 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 Headers¶
GIFT Message Header¶
Property Name | JSON Key | Value Type | Description |
Message Type | Message_Type | Enum (Message Type) | The type of message being sent |
Timestamp | Time_Stamp | Long ((Time Stamp) | The time the message was sent |
Sender Module Type | SenderModuleType | String | The module type of the sender module |
Sender Module Name | SenderModuleName | String | The name of the sender module |
Sender Queue Name | SenderQueueName | String | The inbox queue of the sender queue |
Destination Queue Name | DestinationQueueName | String | Which queue to send the message to |
Sequence Number | SequenceNumber | Integer | The sequence number of the message |
Needs ACK | NeedsACK | Boolean | If the message requires an ACK reply |
Reply To Sequence Number | ReplyToSequenceNumber | Integer | (Optional) the sequence number of a message this message is a reply too. If this message is not a reply to another message, don’t use this JSON key in the message. |
GIFT User Session Message Header¶
Requires GIFT Message Header
Property Name | JSON Key | Value Type | Description |
User ID | userId | Integer | The ID of the user |
Username | username | String | The username of the GIFT user |
GIFT Domain Session Message Header¶
Requires GIFT User Session Message Header
Property Name | JSON Key | Value Type | Description |
Domain Session ID | SessionId | Integer | The ID of the domain session |
Experiment ID | experimentId | String | (optional) unique id of an experiment if this domain session is part of an experiment session. |
GIFT Messages¶
Message Name | Message Type Enum Value | Header Type | Payload |
ACK | ACK | Message, Domain Session Message, User Session Message * |
None |
Active Domain Sessions Request | ActiveDomainSessionsRequest | Message | None |
Active Domain Sessions Reply | ActiveDomainSessionsReply | Message | Domain Session List |
Active User Sessions Request | ActiveUserSessionsRequest | Message | None |
Active User Sessions Reply | ActiveUserSessionsReply | Message | User Session List |
Chat Log | ChatLog | Domain Session Message | Chat Log |
Close Domain Session Request | CloseDomainSessionRequest | Domain Session Message | Close Domain Session Request |
Collision | Collision | Domain Session Message | Collision |
Course State | CourseState | Domain Session Message | Course State |
Detonation | Detonation | Message | Detonation |
Display AAR Tutor Request | DisplayAarTutorRequest | Domain Session Message | Display AAR Tutor Request |
Display Chat Window Request | DisplayChatWindowRequest | Domain Session Message | Display Chat Window Request |
Display Chat Window Update Request | DisplayChatWindowUpdateRequest | Domain Session Message | Display Chat Window Update Request |
Display Course Init Instructions Request | DisplayCourseInitInstructionsRequest | Domain Session Message | Display Course Init Instructions Request |
Display Feedback Tutor Request | DisplayFeedbackTutorRequest | Domain Session Message | Tutor User Interface Feedback |
Display Feedback Gateway Request | DisplayFeedbackGatewayRequest | Domain Session Message | String Payload – the feedback message |
Display Leaner Actions Tutor Request | DisplayLearnerActionsTutorRequest | Domain Session Message | Display Learner Actions Tutor Request |
Display Lesson Material Tutor Request | DisplayLessonMaterialTutorRequest | Domain Session Message | Display Media Tutor Request |
Display Survey Tutor Reply | DisplaySurveyTutorReply | Domain Session Message * | Survey Response |
Display Survey Tutor Request | DisplaySurveyTutorRequest | Domain Session Message | Survey |
Display Guidance Tutor Request | DisplayGuidanceTutorRequest | Domain Session Message | Display Guidance Tutor Request (Base) |
Domain Options Request | DomainOptionsRequest | User Session Message | Domain Options Request |
Domain Options Reply | DomainOptionsReply | User Session Message * | Domain Option List |
Domain Selection Reply | DomainSelectionReply | User Session Message * | Domain Session |
Domain Selection Request | DomainSelectionRequest | User Session Message | Domain Selection Request |
Domain Session Start Time Request | DomainSessionStartTimeRequest | Message | Integer |
Domain Session Start Time Reply | DomainSessionStartTimeRequest | Message | Long |
Entity State | EntityState | Message | Entity State |
Environment Control | EnvironmentControl | Domain Session Message | Environment Control |
Experiment Course Request | ExperimentCourseRequest | Message | Experiment Course Request |
Gateway Module Status | GatewayModuleStatus | Message | Gateway Module Status |
Generic JSON Status | GenericJSONState | Domain Session Message | Generic JSON State |
Get Experiment Request | GetExperimentRequest | Domain Session Message * | Get Experiment Request |
Get Experiment Reply | GetExperimentReply | Domain Session Message * | Experiment |
Get Survey Reply | GetSurveyReply | Domain Session Message * | Survey |
Get Survey Request | GetSurveyRequest | Domain Session Message | Get Survey Request |
Initialize Domain Session Request | InitializeDomainSessionRequest | Domain Session Message | Initialize Domain Session Request |
Initialize Interop Connections | InitializeInteropConnections | Domain Session Message | Initialize Interop Connections |
Initialize Lesson Request | InitializeLessonRequest | Domain Session Message | None |
Initialize Pedagogical Model Request | InitializePedagogicalModelRequest | Domain Session Message | Initialize Pedagogical Model Request |
Instantiate Learner Request | InstantiateLearnerRequest | User Session Message | Instantiate Learner Request |
Interop Connections Info | InteropConnectionsInfo | Domain Session Message * | Interop Connections Info |
Kill Module | KillModule | Message | None |
Learner State | LearnerState | Domain Session Message | Learner State |
Learner Tutor Action | LearnerTutorAction | DoDomain Session Message | Learner Tutor Action |
Lesson Completed | LessonCompleted | Domain Session Message | None |
Lesson Started | LessonStarted | Domain Session Message | None |
LMS Data Reply | LMSDataReply | User Session Message * | LMS Course Records |
LMS Data Request | LMSDataRequest | User Session Message | LMS Data Request |
Load Progress | LoadProgress | Domain Session Message | Generic JSON State |
Login Reply | LoginReply | User Session Message * | User Data |
Login Request | LoginRequest | User Session Message | Login Request |
Logout Request | LogOutRequest | User Session Message | None |
LoS Query | LoSQuery | Domain Session Message | Line of Sight Query |
LoS Result | LoSResult | Domain Session Message | Line of Sight Result |
Module Allocation Reply | ModuleAllocationReply | Message | Module Allocation Reply |
Module Allocation Request | ModuleAllocationRequest | Message | Module Allocation Request |
Module Status | ModuleStatus | Message | Module Status |
NACK | NACK | Message, Domain Session Message, User Session Message * |
NACK |
New User Request | NewUserRequest | Message | User Data |
Pedagogical Request | PedagogicalRequest | Domain Session Message | Pedagogical Request |
Performance Assessment | PerformanceAssessment | Domain Session Message | Performance Assessment |
PowerPoint State | PowerPointState | Message | PowerPoint State |
Publish Lesson Score Request | PublishLessonScoreRequest | Domain Session Message | Publish Lesson Score Request |
Publish Lesson Score Reply | PublishLessonScoreReply | Domain Session Message | Publish Lesson Score Response |
Processed ACK | ProcessedACK | Message, Domain Session Message, User Session Message * |
None |
Processed NACK | ProcessedNACK | Message, Domain Session Message, User Session Message * |
NACK |
Rifle Shot | RifleShot | Message | Rifle Shot |
Sensor Data | SensorData | Domain Session Message | Unfiltered Sensor Data |
Sensor Status | SensorStatus | User Session Message | Sensor Status |
Sensor File Created | SensorFileCreated | Domain Session Message | Sensor File Created |
Sensor Filter Data | SensorFilterData | Domain Session Message | Filtered Sensor Data |
SIMAN | Siman | Domain Session Message | Siman |
Simple Example State | SimpleExampleState | Domain Session Message | Simple Example State |
Start Domain Session | StartDomainSession | Domain Session Message | None |
Start Resume | StartResume | Message | Start Resume |
Stop Freeze | StopFreeze | Message | Stop Freeze |
Subject Created | SubjectCreated | User Session Message | Subject Created |
Submit Survey Results | SubmitSurveyResults | Domain Session Message | Submit Survey Results |
SurveyCheckRequest | SurveyCheckRequest | User Session Message | Survey Check Request |
SurveyCheckResponse | SurveyCheckResponse | User Session Message | Survey Check Response |
TrainingAppSurveyResponse | TrainingAppSurveyResponse | User Session Message | Survey Response |
TrainingAppSurveySubmit | TrainingAppSurveySubmit | Domain Session Message | None |
TutorSurveyQuestionResponse | TutorSurveyQuestionResponse | Domain Session Message | Question Response |
User Id Request | UserIdRequest | Message | String Payload – the GIFT username to use to lookup the user id |
User Id Reply | UserIdReply | Message | User Data |
Weapon Fire | WeaponFire | Message | Weapon Fire |
- - Fill in the proper Sequence Number for the reply.
GIFT Payloads¶
Affective State¶
Property Name | JSON Key | Value Type | Description |
Attributes | attributes | Map (Enum (Learner State Attribute Name), Learner State Attribute) | Attributes that describe the affective state of the learner |
Class | stateType | String | Unique name of an affective state object (value is “AffectiveState”) |
After Action Review Course Event¶
Requires: After Action Review Event (Base)
Assigned Values: Class = AfterActionReviewCourseEvent
Property Name | JSON Key | Value Type | Description |
Graded Score Node | Graded_Score_Node | Object (Graded Score Node) | The graded score node of the event |
After Action Review Event (Base)¶
Property Name | JSON Key | Value Type | Description |
Class | eventType | String | The class of the event type |
After Action Review Survey Event¶
Requires: After Action Review Event (Base)
Assigned Values: Class = AfterActionReviewSurveyEvent
Property Name | JSON Key | Value Type | Description |
Scores | Scores | Object (Score (Base)) | The score of the survey reponse |
Survey Response | Survey_Response | Object (Survey Response) | The response to the survey |
Answer Score (Base)¶
Requires: Score (Base)
Assigned Values: Class = AbstractAnswerScore
Property Name | JSON Key | Value Type | Description |
Class | answerScoreType | String | The score of the survey reponse |
Total Earned Points | Total_Earned_Points | Integer | The total points earned |
Highest Possible Points | Highest_Possible_Points | Integer | The highest possible points |
Assessment (Base)¶
Property Name | JSON Key | Value Type | Description |
Name | name | String | Name of the item being assessed |
Assessment | assessment | Enum (Assessment Level) | Assessment of the item |
Time | time | String (Time Stamp) | Time when the last assessment was calculated |
ID | id | Integer | Unique performance id that maps to this assessment |
Priority | Priority | Integer | (Optional) the current priority value of the performance assessment node. Priority can be used to filter pedagogical strategies. |
Class | assessmentType | String | Unique name of an assessment object (Concept Assessment, Intermediate Concept Assessment, Task Assessment) |
Attribute Scorer Properties¶
Property Name | JSON Key | Value Type | Description |
Type | Type | Enum (Learner State Attribute Name) | The learner state to apply to the result of the scoring conditions. |
Return Conditions | Return_Conditions | List ( Object (Return Value Condition)) | The list of conditions to use for scoring |
Avatar Data¶
Property Name | JSON Key | Value Type | Description |
URL | avatarURL | String | The URL of the avatar to display, cannot be null |
Width | avatarWidth | Integer | The width of the avatar to display, cannot be null |
Height | avatarHeight | Integer | The height of the avatar to display, cannot be null |
Branch Adaptation Strategy¶
Property Name | JSON Key | Value Type | Description |
Quadrant | quadrant | Enum (Merrill Quadrant) | The Merrill quadrant the strategy is associated with. |
Attributes | attributes | Array (Object (Metadata Attribute Item)) | List of metadata attributes used to find matching domain metadata files. |
Burst Descriptor¶
Property Name | JSON Key | Value Type | Description |
Munition Type | munitionType | Object (Entity Type) | The type of munition used |
Warhead | warhead | Integer | Type of warhead used |
Fuse | fuse | Integer | Type of fuse used |
Quantity | quantity | Integer | Number of rounds fired in the burst |
Rate | rate | Integer | Rounds per minute |
Category¶
Property Name | JSON Key | Value Type | Description |
ID | Category_Id | Integer | The ID of the category |
Name | Category_Name | String | The name of the category |
Chat Log¶
Property Name | JSON Key | Value Type | Description |
Chat Id | Id | Integer | The unique id of a chat session used to match/sync chat updates and requests together. |
Tutor Entries | tutor | Array (Object (String Payload)) | The chat messages from the tutor |
User Entries | user | Array (Object (String Payload)) | The chat messages from the user |
Clear Text Action¶
Property Name | JSON Key | Value Type | Description |
No properties used | - | - | - |
Close Domain Session Request¶
Property Name | JSON Key | Value Type | Description |
Reason | String | String | (optional) a message about why the domain session is closing. |
Collision¶
Property Name | JSON Key | Value Type | Description |
Issuing Entity | issuingId | Object (Entity Identifier) | The unique identifier for the entity that is issuing the collision information. |
Colliding Entity | collidingId | Object (Entity Identifier) | The unique identifier for the entity which has collided with the issuing entity. |
Collision Type | type | Integer | Type of collision |
Cognitive State¶
Property Name | JSON Key | Value Type | Description |
Attributes | attributes | Map (Enum (Learner State Attribute Name, Object (Learner State Attribute)) | Attributes that describe the affective state of the learner |
Class | stateType | String | Unique name of a cognitive state object (value is “CognitiveState”) |
Concept Assessment¶
Requires: Assessment
Assigned Values: Class = ConceptAssessment
Concept Parameter¶
Property Name | JSON Key | Value Type | Description |
Concept Name | conceptName | String | The name of a concept |
Parameters | parameters | Array (Question Type Parameter) | Contains additional parameters for this concept such as the number of questions needed in the survey request response. |
Preferred Questions | preferQuestions | Array (Integers) | A list of unique question ids for questions that are preferred to be given in the survey request response. Can be empty. |
Questions to Avoid | avoidQuestions | Array (Integers) | A list of unique question ids for questions that should be not be given in the survey request response. Can be empty. |
Concept Performance State¶
Property Name | JSON Key | Value Type | Description |
State | state | Object (Performance State Attribute) | Performance state of the concept |
Course State¶
Property Name | JSON Key | Value Type | Description |
Merrill Quadrant | quadrant | Enum (Merrill Quadrant) | (Optional) the current Merrill quadrant the course is at in its list of transitions. |
Default Raw Score¶
Requires: Raw Score
Assigned Values: Class = DefaultRawScore
Property Name | JSON Key | Value Type | Description |
Value | value | String | Value of the score |
Detonation¶
Property Name | JSON Key | Value Type | Description |
Firing Entity ID | firingEntityID | Object (Entity Identifier) | ID of the firing entity |
Target Entity ID | targetEntityID | Object (Entity Identifier) | ID of the target entity |
Munition ID | munitionID | Object (Entity Identifier) | ID of the munition |
Event ID | eventID | Object (Event Identifier) | ID of the detonation event |
Velocity | velocity | Object (Vector 3d) | Velocity of the detonation |
Location | location | Object (Vector 3d) | Location of the detonation |
Detonation Result | detonationResult | Enum (Detonation Result) | Result of the detonation |
Display AAR Tutor Request¶
Property Name | JSON Key | Value Type | Description |
Events | Events | Array(Object(After Action Review Event (Base))) | The list of events that happened |
Fullscreen | fullscreen | Boolean | (optional) If the AAR should be presented in full screen mode on the tutor user interface. |
Display Avatar Action¶
Assigned Values: Class = DisplayAvatarAction
Property Name | JSON Key | Value Type | Description |
Avatar | avatarData | Object (Avatar Data) | The avatar to display |
Avatar Action Type | avatarActionType | String | The class of the avatar action type |
Display Chat Window Request¶
Property Name | JSON Key | Value Type | Description |
Chat Id | Id | Integer | The unique id of a chat session used to match/sync chat updates and requests together. |
Avatar | avatar | Object (Display Avatar Action) | The avatar action to perform |
Tutor Name | tutor | String | The name of the tutor, cannot be null |
User Name | User | String | The name of the user, cannot be null |
Bypass | bypass | Boolean | If the user can bypass the chat before it is complete |
Display Chat Window Update Request¶
Property Name | JSON Key | Value Type | Description |
Chat Id | Id | Integer | The unique id of a chat session used to match/sync chat updates and requests together. |
Avatar Action | action | Object (Display Avatar Action) | The avatar action to perform |
Text | text | String | The text that was said by the tutor |
Closed | closed | String | If the chat session has been closed |
Display Course Init Instructions Request¶
Property Name | JSON Key | Value Type | Description |
Gateway State | gwState | String (mil.arl.gift.common.-DisplayCourseInitInstructionsRequest.-GatewayStateEnum) | The enumerated gateway module states related to initializing a course. |
Asset URLs | assetURLs | Array (String) | (Optional) Collection of URLs that can be reached by the tutor client and should be downloaded onto the client's computer for use in the current GIFT course execution. Example: Java Web Start Gateway module JNLP file |
Display Guidance Tutor Request (Base)¶
Property Name | JSON Key | Value Type | Description |
Display Duration | Display_Duration | Integer | (Optional) How long to display the guidance |
Fullscreen | Fullscreen | Boolean | (Optional) If the guidance takes up the full screen |
Class | Class | String | The class of what type of guidance to give |
Display HTML Page Guidance Tutor Request¶
Requires: Display Guidance Tutor Request (Base)
Assigned Values: Class = DisplayHtmlPageGuidanceTutorRequest
Property Name | JSON Key | Value Type | Description |
URL | URL | String | The URL of the web page to display |
Message | MESSAGE | String | (Optional) A message to display to the user with the web page |
Display Learner Actions Tutor Request¶
Property Name | JSON Key | Value Type | Description |
Action List | Actions_List | Array (Object (Learner Action)) | List of learner actions that the user can take |
Display Media Tutor Request¶
Property Name | JSON Key | Value Type | Description |
Media List | Media_List | Array (Object (Media Item)) | Array of URIs for media to display |
Display Scripted Avatar Action¶
Requires: Display Avatar Action (Base)
Assigned Values: Class = DisplayScriptedAvatarAction
Property Name | JSON Key | Value Type | Description |
Action | action | String | The key of the action to perform |
Display Text Action¶
Property Name | JSON Key | Value Type | Description |
Text | text | String | The text to display |
Delivery Settings | deliverySettings | String | An XML string that is formatted against the GIFT/config/domain/dkf/dkf.xsd XML element, uniquely, named ‘InTutor’. |
Display Text Guidance Tutor Request¶
Requires: Display Guidance Tutor Request (Base)
Assigned Values: Class = DisplayTextGuidanceTutorRequest
Property Name | JSON Key | Value Type | Description |
Text | text | String | The text to display |
Display Text To Speech Avatar Action¶
Requires: Display Avatar Action (Base)
Assigned Values: Class = DisplayTextToSpeechAvatarAction
Property Name | JSON Key | Value Type | Description |
Text | text | String | The text to say |
Display Text Tutor Request¶
Property Name | JSON Key | Value Type | Description |
Text | Text | String | Text to display |
Beep | BeepOnDisplay | Boolean | (Optional) True if a beep sound should be played when displaying the text, false otherwise |
Highlight Text | HighlightText | Boolean | (Optional) True if the text to display should be highlighted when displayed, false otherwise |
Display Duration | DisplayDuration | Integer | (Optional) How long to display the text before it should be hidden |
Domain Option¶
Property Name | JSON Key | Value Type | Description |
Domain Name | Domain_Name | String | Name of the domain option |
Domain ID | Domain_ID | String | ID of the domain option |
Description | description | String | (Optional) description of the domain. |
Recommendation | recommendation | Object (Domain Option - Recommendation) | (Optional) information about whether the domain option is recommended, not recommended, or unavailable and why. |
Concepts | concepts | List (String) | (Optional) concepts related to the course |
Domain Option - Recommendation¶
Property Name | JSON Key | Value Type | Description |
Recommendation | type | Enum ( Domain Option - Recommendation ) | Enumerated reason on whether the domain option is recommended, not recommended, or unavailable to the user for selection. |
Reason | reason | String | (Optional) a description about the reason of the recommendation. |
Details | details | String | (Optional) details about the reason for the recommendation. |
Domain Option List¶
Property Name | JSON Key | Value Type | Description |
Domain Options | DomainOptions | Array (Object (Domain Option)) | Array of Domain Option objects |
Domain Options Request¶
Property Name | JSON Key | Value Type | Description |
Client Info | clientInfo | Object (WebClient Information) | Information about the tutor client |
LMS User Name | LMSUsername | String | (Optional) the LMS username for a GIFT user |
Domain Selection Request¶
Property Name | JSON Key | Value Type | Description |
Domain Runtime id | DomainName | String | The selected domain runtime id which is the path to the course used when taking the course |
Domain Sourece id | DomainSource | String | The selected domain source id which is the to the authored course |
LMS Username | LmsUsername | String | Name of the learner selecting this domain |
Client Info | clientInfo | Object(WebClient Information ) | Information about the tutor client |
Domain Session¶
Property Name | JSON Key | Value Type | Description |
Domain Session ID | dsId | Integer | Unique ID of the newly created domain session |
Domain Name | name | String | The course runtime id which is the path to the course used when taking the course |
Experiment ID | experimentId | String | (optional) unique experiment id if this domain session is part of an experiment |
Domain Source ID | domainSourceId | String | The course source id which is the path to the authored course |
Domain Session List¶
Property Name | JSON Key | Value Type | Description |
Domain Sessions | DomainSessions | Array (Object (Domain Session)) | Array of Domain Session objects |
Entity Appearance¶
Property Name | JSON Key | Value Type | Description |
Posture | posture | Enum (Posture) | Posture of the entity |
Damage | damage | Enum (Damage) | Damage taken by the entity |
Entity Identifier¶
Property Name | JSON Key | Value Type | Description |
Entity ID | entityID | Integer | Unique ID for entity |
Simulation Address | simulationAddress | Object (Simulation Address) | Simulation Address of the entity |
Entity State¶
Property Name | JSON Key | Value Type | Description |
Entity ID | entityID | Object (Entity Identifier) | Unique ID of the entity |
Entity Type | entityType | Object (Entity Type) | Type of the entity |
Force ID | forceID | Integer | Identifier of the entity’s force |
Linear Velocity | linearVelocity | Object (Vector 3d) | Linear velocity of the entity |
Location | location | Object (Point 3d) | Location of the entity |
Orientation | orientation | Object (Vector 3d) | Orientation of the entity |
Appearance | appearance | Object (Entity Appearance) | Appearance of the entity |
Entity Type¶
Property Name | JSON Key | Value Type | Description |
Entity Kind | Entity_Kind | Integer | ID of the entity’s kind |
Domain | Domain | Integer | ID of the entity’s domain |
Country | Country | Integer | ID of the entity’s country |
Category | Category | Integer | ID of the entity’s category |
Subcategory | Subcategory | Integer | ID of the entity’s subcategory |
Specific | Specific | Integer | Entity specific field |
Extra | Extra | Integer | Entity extra field |
Environment Control¶
Property Name | JSON Key | Value Type | Description |
Environment Type | EnvironmentType | Enum (Environment Control) | Type of environment control |
Event Identifier¶
Property Name | JSON Key | Value Type | Description |
Event ID | eventID | Integer | Unique ID of the event |
Simulation Address | simulationAddress | Object (Simulation Address) | Simulation address of the event |
Experiment¶
Property Name | JSON Key | Value Type | Description |
Experiment ID | Id | String | The unique id of this experiment in this GIFT instance |
Experiment Name | Name | String | The non-unique display name of this experiment |
Experiment Course Folder | CourseFolder | String | The location of the course folder in GIFT (currently in Domain/Experiments/) |
URL | URL | String | The URL for subjects to execute the experiment's course |
Author | AuthorUserName | String | The username of the author of the experiment (experimenter) |
Description | Description | String | A description about the experiment. |
Status | Status | Enum (Experiment Status) | The experiment current status |
Subjects | Subjects | List (Experiment Subject) | List of subjects that have started this experiment (can be empty) |
Experiment Subject¶
Property Name | JSON Key | Value Type | Description |
Subject Id | Id | Experiment Subject Id | The unique id of this subject in an experiment |
Start Time | StartTime | String | The start time of the course for this subject instance |
End Time | EndTime | String | The end time of the course for this subject instance |
Domain Session Message log file name | MessageLogFile | String | The file name of the GIFT domain session message log file for this subject's execution of the experiment's course |
Experiment Subject Id¶
Property Name | JSON Key | Value Type | Description |
Subject Id | SubjectId | int | The unique id of this subject in a specific experiment. The value could be the same for other subjects in other experiments, therefore you need the experiment id to uniquely identify this user among all GIFT users, subject or not. |
Experiment Id | ExperimentId | String | The unique experiment id this subject is apart of |
Experiment Course Request¶
Property Name | JSON Key | Value Type | Description |
Experiment Id | EXPERIMENT_ID | String | The unique experiment id to retrieve and start it's course for a subject |
Client Info | CLIENT_INFO | Object(WebClient Information ) | Information about the tutor client |
Pre Session Id | PRE_SESSION_ID | String | An id created by the tutor and used to identify the tutor client request to start a subject in an experiment's course. |
Filtered Sensor¶
Property Name | JSON Key | Value Type | Description |
Filter Name | FilterName | String | Name of the filter used |
Sensor Name | SensorName | String | Name of the sensor where the data is coming from |
Elapsed Time | ElapsedTime | Long | Total milliseconds from the start of the domain session |
Attribute Values | AttributeValues | Map (Enum (Sensor Attribute Name), Sensor Attribute Value) | Attribute/Value pairs that hold the sensor data |
Sensor Type | SensorType | Enum(Sensor Type) | Type of sensor |
Folder¶
Property Name | JSON Key | Value Type | Description |
ID | Folder_Id | Integer | The ID of the folder |
Name | Folder_Name | String | The name of the folder |
Gateway Module Status¶
Property Name | JSON Key | Value Type | Description |
Topic Name | topicName | String | Name of the current topic |
Status | status | Object (Module Status) | Status of the Gateway Module |
Generic JSON State¶
Property Name | JSON Key | Value Type | Description |
Unique id | messageUniqueId | String | A UUID that is unique to the sender. |
JSON string | n/a | JSON string | This is a JSON encoded string that is simply added to the JSON payload. There are zero or more keys depending on the JSON string for the Generic JSON state (e.g. {“firingEntityId._entityID”:17}, {“velocity._z”:123.567} ) |
Get Survey Request¶
Property Name | JSON Key | Value Type | Description |
Gift Key | GiftKey | String | Key for the survey being requested |
Survey Context ID | SurveyContextId | Integer | Unique ID of the survey context that is associated with the survey being requested |
Concepts | Concepts | Map (Concept Parameter) | (Optional) Mapping of concept name to the request details for that concept (e.g. number of questions). This is only needed if the survey being requested in a knowledge concept survey created from a question bank from the survey context. |
Get Experiment Request¶
Property Name | JSON Key | Value Type | Description |
Experiment Id | ExperimentID | String | Key for the experiment being requested |
Graded Score Node¶
Requires: Score Node
Assigned Values: Class = GradedScoreNode
Property Name | JSON Key | Value Type | Description |
Node Grade | grade | Enum (Pass Fail) | The score of the node |
Children Nodes | children | Map (String, Object (Score Node) | The children of this node |
Image Properties¶
Assigned Values: Class = ImageProperties
Initialize Domain Session Request¶
Property Name | JSON Key | Value Type | Description |
Course File Name | courseFileName | String | The name of the Course file being used for an entire domain session |
Initialize Interop Connections¶
Property Name | JSON Key | Value Type | Description |
Interop Connections | interops | Array (String) | The list of interop interface class implementation names (e.g., gateway.interop.dis.DISInterface). Refer to the interopConfig.xml and interopConfig.xsd for more information. |
Content Server Address | contentServerAddr | String | The domain module’s content server (currently a jetty instance) address that host’s domain content (e.g. PowerPoint show) used in a GIFT course. |
Initialize Pedagogical Model Request¶
Property Name | JSON Key | Value Type | Description |
Actions | actions | String | The XML actions element of a Course or DKF that contains action information for the pedagogical module to initialize with. |
Course Actions | isCourseActions | Boolean | Whether or not the actions element is from a course (versus a DKF). |
Configuration | configuration | String | The content of the configuration xml file that contains information for the pedagogical model to initialize with. |
Instantiate Learner Request¶
Property Name | JSON Key | Value Type | Description |
LMS Username | LMSUserName | String | LMS username of learner to instantiate |
Configuration | configuration | String | The content of the configuration xml file that contains information for the learner model to initialize with. |
Intermediate Concept Assessment¶
Requires: Assessment
Assigned Values: Class = IntermediateConceptAssessment
Property Name | JSON Key | Value Type | Description |
Concepts | concepts | Array (Assessment (Base)) | List of assessment objects. This object allows for theoreticalinfinite nesting of a task/concept hierarchy. |
Interop Connections Info¶
Property Name | JSON Key | Value Type | Description |
Message Types | types | Array (Message Type Enum) | List of message types the current initialized gateway module interop plugins can receive and handle from GIFT |
Learner Action¶
Property Name | JSON Key | Value Type | Description |
Type | type | Enum (Learner Action Type) | The type of learner action taken |
Name | name | String | The name of the action taken |
Learner State Attribute¶
Requires: Learner State Attribute (Base)
Assigned Values: Class = LearnerStateAttribute
Learner State Attribute (Base)¶
Property Name | JSON Key | Value Type | Description |
Name | attributeName | Enum (Learner State Attribute Name) | Name of the learner state attribute |
Short Term | shortTerm | Enum | Short term state Note: technically any enumeration value will suffice, however only some are properly decoded |
Short Term Timestamp | shortTermTimestamp | long | The timestamp at which the short term learner state value was created. Value is epoch time. |
Long Term | longTerm | Enum | Long term state Note: technically any enumeration value will suffice, however only some are properly decoded |
Long Term Timestamp | longTermTimestamp | long | The timestamp at which the long term learner state value was created. Value is epoch time. |
Predicted | predicted | Enum | Predicted state Note: technically any enumeration value will suffice, however only some are properly decoded |
Predicted Timestamp | predictedTimestamp | long | The timestamp at which the predicted learner state value was created. Value is epoch time. |
Class | learnerStateAttributeType | String | Unique name of a learner state attribute object (Learner State Attribute) |
Learner State¶
Property Name | JSON Key | Value Type | Description |
Performance State | Performance | Object (Performance State) | Performance State of the learner |
Cognitive State | Cognitive | Object (Cognitive State) | Cognitive State of the learner |
AffectiveState | Affective | Object (Affective State) | Affective State of the learner |
Learner Tutor Action¶
Property Name | JSON Key | Value Type | Description |
Action | action | Object ({String: "RadioUsed", String: "ExplosiveHazardSpotReport", String: "NineLineReport", String: "SpotReport", Tutor Me Learner Tutor Action}) | Action that is packed in this message |
List Option¶
Property Name | JSON Key | Value Type | Description |
ID | Id | Integer | The ID of the list option |
Text | Text | String | The list option text |
Option List ID | Option_List_Id | Integer | The ID of the option list that contains this |
LMS Connection Info¶
Property Name | JSON Key | Value Type | Description |
Name | name | String | Unique name of the LMS connection. |
LMS Course Record¶
Property Name | JSON Key | Value Type | Description |
ID | Id | Integer | The course record unique id in the particular LMS. |
Domain | domain | String | (optional) The domain name for this record. |
Root | root | Object (Graded Score Node) | Scores from the course history. |
Date | date | String (Time Stamp) | Date on which the record was created. |
LMS Connection | connection | Object (LMS Connection Info) | (Optional) Information about the LMS this record is from. |
LMS Course Records¶
Property Name | JSON Key | Value Type | Description |
Course History | CourseHistory | Array (Object (LMS Course Record)) | Array of course records that represent the course’s history |
Assessments | Assessments | Map (String, Enum (Assessment Level)) | Map of skills to an overall assessment level |
LMS Data Request¶
Property Name | JSON Key | Value Type | Description |
Username | UserName | String | Username of the learner from which data should be given |
Published Score Responses | publishedResponses | Array (Publish Lesson Score Response) | (Optional: can be empty) The list of published score response objects containing the high level identifiers of LMS data that is being requested. |
Page Start Index | PageStart | Integer | The index in the query to start getting scores (Ignored if Score Keys is set) |
Page Size | PageSize | Integer | How many scores to return (Ignored if Score Keys is set) |
Sort Descending | SortDescending | Boolean | If the scores should be sorted with the newest listed first |
Domain names | DomainNames | Array (String) | Used to filter for LMS records on specific domains/courses, can be empty if wanting all records |
Line of Sight Query¶
Property Name | JSON Key | Value Type | Description |
Locations | locations | Array (Object (Point 3d)) | Array of point locations to test Line of Sight on |
Line of Sight Result¶
Property Name | JSON Key | Value Type | Description |
Locations | locations | Map (Object (Point 3d), Double) | Map from original Line of Sight query locations to visibility percentage |
Login Request¶
Property Name | JSON Key | Value Type | Description |
User ID | userId | Integer | Unique ID of the user |
Username | username | String | The GIFT username of the user (optional in cases where the user doesn’t have a username) |
Matrix of Choices Reply Weights¶
Property Name | JSON Key | Value Type | Description |
Reply Weights | REPLY_WEIGHTS | List ( List ( double))) | The reply weights for a matrix of choices survey question where the first list is the row index and the inner list is the column index (i.e. [1][3] is the 4th item in the 2nd row using zero-based array indexing). |
Media Item¶
Property Name | JSON Key | Value Type | Description |
URI | URI | String | URI of the media |
Name | Name | String | Name of the media |
Class | properties | String | The name of the class of the properties object |
Properties | Object (PDF Properties) or Object (Webpage Properties) or Object (Youtube Video Properties ) or Object (Video Properties) or Object (Image Properties) | Properties of the media, at this level of the hierarchy |
Metadata Attribute Item¶
Property Name | JSON Key | Value Type | Description |
Attribute | attribute | String | A string representation of the metadata XML element from the metadata.xsd. |
Priority | priority | Integer | A priority value for this metadata. |
Module Allocation Request¶
Property Name | JSON Key | Value Type | Description |
Requestor Information | Requestor | Module Status | The module status information for the module requesting that another module be allocated to it. |
Allocated Modules | Allocated_Modules | Map (Module Type, Module Status*) | Map of the modules that have already been allocated to the requesting module. This information can be used for sharing the same modules for a Domain Session. |
*If the Module Type is equal to Gateway Module then the Module Type is mapped to the Gateway Module Status instead.
Module Allocation Reply¶
Property Name | JSON Key | Value Type | Description |
Request denied information | RequestDenied | String | (optional) indicates why the module allocation request could not be satisfied. |
Additional Information | AdditionalInfo | String | (optional) provided additional information about why the request could not be satisfied. This is useful for providing help or developer details. |
Module Status¶
Property Name | JSON Key | Value Type | Description |
Module Name | Module_Name | String | Name of the module to report status |
Queue Name | Queue_Name | String | Name of the queue to send status to |
Module Type | Module_Type | Enum (Module Type) | Type of module the status is about |
Module State | State | Enum (Module State) | Type of state the module is in currently |
NACK¶
Property Name | JSON Key | Value Type | Description |
Error Enumeration | Error_Enum | Enum (Error) | Type of error this NACK is responding with |
Error Message | Error_Msg | String | Message that describes the error |
Help | Help | String | (optional) a help message for the user to resolve the error. |
Number Payload¶
Property Name | JSON Key | Value Type | Description |
Number | NumberPayload | Number | The number value |
Option List¶
Property Name | JSON Key | Value Type | Description |
ID | Id | Integer | The ID of the option list |
Name | Name | String | The name of the option list |
Is Shared | Is Shared | Boolean | If the option list is shared among questions |
Options | List_Options | Array (List Option) | The list of options for this list, in the order which they are presented |
Visible to Usernames | VisibleToUserNames | Array (String) | The usernames this option list is visible to |
Editable to Usernames | EditableToUserNames | Array (String) | The usernames that can edit this option list |
PDF Properties¶
Assigned Values: Class = PDFProperties
Pedagogical Request¶
Property Name | JSON Key | Value Type | Description |
ID | id | Integer | Performance node ID associated with this request |
Name | name | String | Performance node name associated with this request |
Class | requestType | String | Unique name of a pedagogical request object (Request-Instructional-Intervention, Request Performance Assessment, Request Scenario Adaptation) or “BranchAdpatationStrategy” |
Request object | n/a | One of Request-Instructional-Intervention, Request Performance Assessment, Request Scenario Adaptation, Request Branch Adaptation | The attributes based on the object type |
Pedagogical Requests¶
Property Name | JSON Key | Value Type | Description |
Requests | Requests | Array (Pedagogical Request) | Array of requests |
Performance Assessment¶
Property Name | JSON Key | Value Type | Description |
Tasks | tasks | Array (Object (Task Assessment)) | Array of task assessments for overall performance |
Performance State Attribute¶
Requires: Performance State Attribute (Base)
Assigned Values: Class = PerformanceStateAttribute
Performance State Attribute (Base)¶
Property Name | JSON Key | Value Type | Description |
Name | attributeName | String | Name of the learner performance state attribute |
Short Term | shortTerm | Enum (Assessment Level) | Short term assessment |
Short Term Timestamp | shortTermTimestamp | long | The timestamp at which the short term performance state value was created. Value is epoch time. |
Long Term | longTerm | Enum (Assessment Level) | Long term assessment |
Long Term Timestamp | longTermTimestamp | long | The timestamp at which the long term performance state value was created. Value is epoch time. |
Predicted | predicted | Enum (Assessment Level) | Predicted assessment |
Predicted Timestamp | predictedTimestamp | long | The timestamp at which the predicted performance state value was created. Value is epoch time. |
ID | id | Integer | Unique performance node ID that maps to this attribute |
Priority | Priority | Integer | (Optional) the current priority value of the performance assessment node. Priority can be used to filter pedagogical strategies. |
Class | performanceStateAttributeType | String | Unique name of a performance state attribute object (Performance State Attribute) |
Performance State¶
Property Name | JSON Key | Value Type | Description |
Tasks | tasks | Map (Integer, Object (Task Performance State)) | Map from node ID to task performance states |
Play Audio Action¶
Property Name | JSON Key | Value Type | Description |
MP3 File | mp3File | String | The URL of the MP3 file to play |
OGG File | oggFile | String | (Optional) The URL of the OGG file to play |
Point 3d¶
Property Name | JSON Key | Value Type | Description |
X | X | Double | X coordinate of this point |
Y | Y | Double | Y coordinate of this point |
Z | Z | Double | Z Coordinate of this point |
PowerPoint State¶
Property Name | JSON Key | Value Type | Description |
Slide Index | slideIndex | Integer | The current slide index in the active PowerPoint show |
Slide Count | slideCount | Integer | Total number of slides in the active PowerPoint show |
Error Message | errorMsg | String | The error that the message describes |
Publish Lesson Score Request¶
Property Name | JSON Key | Value Type | Description |
LMS Username | LMSUserName | String | Username of learner to publish the score from |
CourseData | CourseData | Object (LMS Course Record) | Course record that contains the score |
Publish Lesson Score Response¶
Property Name | JSON Key | Value Type | Description |
Records | records | Map (LMS Connection Info, Integer) | A map of unique identifiers for the score record written for each LMS connection for a single publish lesson score request message. |
Question¶
Property Name | JSON Key | Value Type | Description |
ID | Id | Integer | The ID of the question |
Text | Question_Text | String | The question being asked |
Reply Type | Type | Enum (Question Type) | The type of question this is |
Properties | Properties | Map (Enum (Survey Property Key), Object (Survey Item Property Value)) | The properties of this question |
Categories | Categories | Array (Category) | The categories associated with this question |
Visible to Usernames | VisibleToUserNames | Array (String) | The usernames this question is visible to |
Editable to Usernames | EditableToUserNames | Array (String) | The usernames that can edit this question |
Question Answer Score¶
Requires: Answer Score (Base)
Assigned Values: Class = QuestionAnswerScore
Property Name | JSON Key | Value Type | Description |
Reply Scores | Reply_Scores | Array (Object (Answer Score (Base))) | The reply scores for the question |
Question Scale Score¶
Requires: Scale Score (Base)
Assigned Values: Class = QuestionScaleScore
Property Name | JSON Key | Value Type | Description |
Reply Scores | Reply_Scores | Array (Object (Scale Score (Base))) | The reply scores for the question |
Question Scorer¶
Property Name | JSON Key | Value Type | Description |
Total | Total | boolean | Whether this question should be included in total scoring |
Attribute Scorer | Attribute_Scorers | List ( Object (Attribute Scorer Properties)) | The scoring information for the list of attributes to be evaluated and score upon |
Question Response¶
Property Name | JSON Key | Value Type | Description |
ID | Question_Response_Id | Integer | The ID of the question response |
Text | Response_Text | String | The response to the question |
Text Option List | Text_Option_List | Object (Option List) | (Optional) The option list the response text came from |
Row Text | Row_Text | String | (Optional) The text of the row the response is for |
Row Text Option List | Row_Text_Option_List | Object (Option List) | (Optional) The option list the row text came from |
Survey Question | Survey_Question | Object (Survey Question) | The survey question the response is for |
Survey Page Response ID | Survey_Page_Response_Id | Integer | The ID of the survey page response that contains this response |
Answer Time | Answer_Time | String (Time Stamp) | The time the question was answered |
Question Type Parameter¶
Property Name | JSON Key | Value Type | Description |
Number of Questions | numberOfQuestions | Integer | The number of questions to request for a particular concept |
Property Value | propertyValue | String | The value for the property to match |
Question Property Key | questionProperty | String (Survey Property Key) | The enumerated question property the value is associated with. |
Raw Score¶
Property Name | JSON Key | Value Type | Description |
Units | units | String | Value to describe the score’s units (seconds, meters, etc.) |
Class | type | String | Unique name of a raw score object (Default Raw Score ) |
One of Default Raw Score |
Raw Score Node¶
Requires: Score Node
Assigned Values: Class = RawScoreNode
Property Name | JSON Key | Value Type | Description |
Assessment | assessment | Enum (Assessment Level) | Assessment for this node |
Raw Score | rawScore | Object (Raw Score) | Raw Score that is packed in this node |
Reply Answer Score¶
Requires: Answer Score (Base)
Assigned Values: Class = ReplyAnswerScore
Reply Scale Score¶
Requires: Scale Score (Base)
Assigned Values: Class = ReplyScaleScore
Request Branch Adaptation¶
Requires: Pedagogical Request
Assigned Values: Class = RequestBranchAdaptation
Property Name | JSON Key | Value Type | Description |
Strategy | strategy | Object (Branch Adaptation Strategy) | Branch Adaptation strategy information. |
Request Instructional Intervention¶
Requires: Pedagogical Request
Assigned Values: Class = RequestInstructionalIntervention
Property Name | JSON Key | Value Type | Description |
Strategy | strategy | String | Domain Action Knowledge strategy name |
Request Performance Assessment¶
Requires: Pedagogical Request
Assigned Values: Class = RequestPerformanceAssessment
Property Name | JSON Key | Value Type | Description |
Strategy | strategy | String | Domain Action Knowledge strategy name |
Request Scenario Adaptation¶
Requires: Pedagogical Request
Assigned Values: Class = RequestScenarioAdaptation
Property Name | JSON Key | Value Type | Description |
Strategy | strategy | String | Domain Action Knowledge strategy name |
Return Value Condition¶
Property Name | JSON Key | Value Type | Description |
Sign | Sign | Enum (Operator) | The mathematical operator to apply to the condition |
Value | Value | double | The fixed value for the condition to score against |
Return Value | Return_Value | Enum ( A value from any GIFT Enum class ) | The enumerated value to return when this condition is met |
Return Value Class | Return_Value_Class | String | The GIFT enum class name that contains the ‘Return_Value’ enumerated value. |
Rifle Shot¶
Property Name | JSON Key | Value Type | Description |
Location | location | Point 3d | Location of the rifle shot hit location on the target (z-value not used) |
Result | result | float | Score value for this rifle shot |
Shot Number | shotNumber | int | Index number of this shot |
Scale Score (Base)¶
Requires: Score (Base)
Assigned Values: Class = AbstractScaleScore
Property Name | JSON Key | Value Type | Description |
Class | scaleScoreType | String | The class of the scale score object |
Score (Base)¶
Property Name | JSON Key | Value Type | Description |
Class | scoreType | String | The class of the score type object |
Score Node¶
Property Name | JSON Key | Value Type | Description |
Name | Name | String | Name of the performance node |
Class | Type | String | Unique name of a score node object (Graded Score Node, Raw Score Node) |
the node attributes | n/a | One of Graded Score Node, Raw Score Node | contains the attributes of the node object |
Sensor Attribute Value¶
Property Name | JSON Key | Value Type | Description |
Name | name | Enum (Sensor Attribute Name) | Name of the sensor attribute |
Class | attributeValue | String | Unique name of a sensor attribute object (Sensor Double Value, Sensor Integer Value, Sensor String Value, Sensor Tuple3d Value) |
the attribute object | n/a | One of Sensor Double Value, Sensor Integer Value, Sensor String Value, Sensor Tuple3d Value | The values of a sensor attribute object. |
Sensor Double Value¶
Requires: Sensor Attribute Value
Assigned Values: Class = DoubleValue
Property Name | JSON Key | Value Type | Description |
value | value | Double | A double value. |
Sensor Status¶
Property Name | JSON Key | Value Type | Description |
Message | Message | String | The sensor status message |
Sensor Name | SensorName | String | Name of the sensor that produced the error |
Sensor Type | SensorType | Enum ( Sensor Type) | The type of sensor |
Is Error | IsError | Boolean | If the status is an error message |
Sensor File Created¶
Property Name | JSON Key | Value Type | Description |
File name | FileName | String | Name of the file created |
Sensor Type | SensorType | Enum (Sensor Type) | The type of sensor |
Sensor Integer Value¶
Requires: Sensor Attribute Value
Assigned Values: Class = IntegerValue
Property Name | JSON Key | Value Type | Description |
value | value | Integer | An integer value. |
Sensor String Value¶
Requires: Sensor Attribute Value
Assigned Values: Class = StringValue
Property Name | JSON Key | Value Type | Description | Property Name |
value | value | String | A string value. |
Sensor Tuple3d Value¶
Requires: Sensor Attribute Value
Assigned Values: Class = Tuple3dValue
Property Name | JSON Key | Value Type | Description |
X | X | Double | The X value as a double. |
Y | Y | Double | The Y value as a double. |
Z | Z | Double | The Z value as a double. |
Class | type | String | Unique name of the tuple3d object (“Vector3d”, “Point3d”) |
Siman¶
Property Name | JSON Key | Value Type | Description | |
Siman Type | Siman_Type | Enum (Siman Type) | The type of Siman message | |
Load Arguments | LoadArgs | Map (String, String) | A key/value pair map of the Siman Load parameters. The keys are interop plugin class names (e.g. gateway.interop.ppt.PPTInterface). The values are string representations of the course XML node object ‘generated.course.InteropInputs’ (see GIFT\config\domain\course\course.xsd for XML structure). | |
Course Folder | CourseFolder | String | The type of Siman message | (optional) runtime course folder path relative to Domain folder |
File Size | FileSize | long | (optional) size (bytes) of a training application file to load on the client side |
Simple Example State¶
Property Name | JSON Key | Value Type | Description |
Variable | VAR | String | Just a string value that represents something about a simple game state. This was created for the GIFT developer guide as a simple use case of a game state message. |
Simulation Address¶
Property Name | JSON Key | Value Type | Description |
Site ID | siteID | Integer | Unique site ID for this address |
Application ID | applicationID | Integer | Unique ID for this address |
Slider Range¶
Property Name | JSON Key | Value Type | Description |
Min Value | MIN_VALUE | Double | The minimum value of the slider for a survey question |
Max Value | MAX_VALUE | Double | The maximum value of the slider for a survey question |
Start Resume¶
Real Time | realWorldTime | Integer | The real-world time (UTC, milliseconds since midnight Jan 1, 1970) at which the entity is to start/resume in the exercise. |
Simulation Time | simulationTime | Integer | The simulation time (time of day in the simulated world in UTC, milliseconds since midnight Jan 1, 1970) at which the entity will start/resume in the exercise |
Request ID | requestID | Integer | Unique ID for this request |
Stop Freeze¶
Property Name | JSON Key | Value Type | Description |
Real Time | realWorldTime | Integer | The real-world time (UTC, milliseconds since midnight Jan 1, 1970) at which the entity is to start/resume in the exercise. |
Reason | reason | Integer | ID for the reason that an entity or exercise was stopped/frozen |
Frozen Behavior | frozenBehavior | Integer | ID for the frozen behavior, that will indicate how the entity or exercise acts while frozen |
Request ID | requestID | Integer | Unique ID for this request |
String Payload¶
Property Name | JSON Key | Value Type | Description |
String | StringPayload | String | The string value as the entire payload. |
Subject Created¶
Property Name | JSON Key | Value Type | Description |
Course Id | courseId | String | A unique identifier for the experiment's course (usually the relative path to the course.xml file from the Domain folder) |
Pre Session Id | preSessionId | String | An id created by the tutor and used to identify the tutor client request to start a subject in an experiment's course. |
Submit Survey Results¶
Property Name | JSON Key | Value Type | Description |
Survey Response | SurveyResponse | Object (Survey Response) | The response to the survey with the results |
Gift Key | GiftKey | String | Label for the survey being submitted |
Survey¶
Property Name | JSON Key | Value Type | Description |
ID | Id | Integer | The ID of the survey |
Name | Name | String | The name of the survey |
Folder | Folder | Object (Folder) | The folder the survey is in (this should not be defined if it is not in a folder) |
Pages | Survey_Pages | Array (Survey Page) | The pages of the survey, in the order in which they are to be presented |
Properties | Properties | Map (Enum (Survey Property Key), Object (Survey Item Property Value)) | The properties of the survey |
Visible to Usernames | VisibleToUserNames | Array (String) | The usernames this survey is visible to |
Editable to Usernames | EditableToUserNames | Array (String) | The usernames that can edit this survey |
Survey Answer Score¶
Requires: Answer Score (Base)
Assigned Values: Class = SurveyAnswerScore
Property Name | JSON Key | Value Type | Description |
Question Scores | Question_Scores | Array (Object (Answer Score (Base))) | The reply scores for the survey |
Survey Check Request¶
Property Name | JSON Key | Value Type | Description |
GIFT Key | GiftKey | String | (optional if this check is for a survey context and not a survey in the context) Label for the survey being checked. |
Survey Context Id | SurveyContextId | Integer | Unique id of a survey context associated with the GIFT key and questions to check. |
Questions | Questions | List (Object ( Survey Check Request - Question )) | List of question objects to check in this request. |
Survey Check Request - Question¶
Property Name | JSON Key | Value Type | Description |
Question ID | id | Integer | The ID of the question |
Replies | Replies | List (Object ( Survey Check Request - Reply )) | List of reply objects for this question to check in this request. |
Survey Check Request - Reply¶
Property Name | JSON Key | Value Type | Description |
Reply ID | id | Integer | The ID of the question reply |
Survey Check Response¶
Property Name | JSON Key | Value Type | Description |
Responses | responses | Map ( String , List ( Object ( Survey Check Response - Response Interface ) ) ) | Map of survey check responses where the key provides useful information about what the list of responses are for (e.g. a course name). |
Survey Check Response - Response Interface¶
Property Name | JSON Key | Value Type | Description |
Type | type | String | The class of the value object (e.g. FailureResponse) that implements Response interface. |
Responses | responses | One of ( Survey Check Response - Failure Response, Survey Check Response - Success Response ) | The responses to the Survey Check Request |
Survey Check Response - Failure Response¶
Requires: Survey Check Response - Response Interface
Assigned Values: Class = FailureResponse
Property Name | JSON Key | Value Type | Description |
Message | message | String | The reason why the survey check request failed. |
Survey Context¶
Property Name | JSON Key | Value Type | Description |
Survey Context ID | Survey_Context_Id | Integer | The ID of the survey context |
Survey Context Name | Survey_Context_Name | String | The name of the survey context |
Survey Context Surveys | Survey_Context_Surveys | Array (Object(Survey Context Survey)) | The surveys contained in this survey context |
Visible to Usernames | VisibleToUserNames | Array (String) | The usernames this survey is visible to |
Editable to Usernames | EditableToUserNames | Array (String) | The usernames that can edit this survey |
Survey Context Survey¶
Property Name | JSON Key | Value Type | Description |
Survey Context id | Survey_Context_Context_Id | Integer | The ID of the survey context |
Survey Context survey key | Survey_Context_Survey_Key | String | The gift key, unique to this survey context, that references this survey in the survey context. |
Survey Context Survey | Survey_Context_Survey_Survey | Object(Survey) | The survey for this key |
Survey Check Response - Success Response¶
Requires: Survey Check Response - Response Interface
Assigned Values: Class = SuccessResponse
Survey List Check Request¶
Property Name | JSON Key | Value Type | Description |
Requests | request | Map ( String , List ( Object ( Survey Check Request ) ) ) | Map of survey check requests where the key provides useful information about what the list of requests are for (e.g. a course name). |
Survey Item Property Value¶
Property Name | JSON Key | Value Type | Description |
Class | Property_Class | String | The class of the value object |
Value | Property_Value | Object (One of Option List, String Payload, Survey Scorer, Question Scorer, Slider Range, Matrix of Choices Reply Weights) | The value of the property |
Survey Feedback Scorer (Base)¶
Requires: Score (Base)
Assigned Values: Class = SurveyFeedbackScorer
Property Name | JSON Key | Value Type | Description |
nothing |
Survey Scale Score¶
Requires: Scale Score (Base)
Assigned Values: Class = SurveyScaleScore
Property Name | JSON Key | Value Type | Description |
Question Scores | Question_Scores | Array (Object (Scale Score (Base))) | The reply scores for the survey |
Survey Scorer¶
Property Name | JSON Key | Value Type | Description |
Total Scorer | Total_Scorer | Object (Total Scorer) | The scoring information for calculating the total score |
Attribute Scorer | Attribute_Scorers | List ( Object (Attribute Scorer Properties)) | The scoring information for the list of attributes to be evaluated and score upon |
Survey Page¶
Property Name | JSON Key | Value Type | Description |
ID | Survey_Page_Id | Integer | The ID of the survey page |
Name | Survey_Page_Name | String | The name of the survey page |
Survey ID | Survey_Page_Survey_Id | Integer | The ID of the survey page’s parent survey |
Questions | Survey_Page_Questions | Array (Survey Question) | The survey questions in the page, in the order they are to be presented in |
Properties | Properties | Map (Enum (Survey Property Key), Object (Survey Item Property Value)) | The properties of the survey page |
Survey Page Response¶
Property Name | JSON Key | Value Type | Description |
ID | Survey_Page_Response_Id | Integer | The ID of the response |
Survey Response ID | Survey_Response_Id | Integer | The ID of the survey response this page is in |
Survey Page | Survey_Page | Object (Survey Page) | The survey page the response is for |
Start Time | Start_Time | String (Time Stamp) | The time the survey page was started |
End Time | End_Time | String (Time Stamp) | The time the survey page was completed |
Question Responses | Question_Responses | Array (Question Response) | The list of responses to questions in the survey page |
Survey Question¶
Property Name | JSON Key | Value Type | Description |
ID | ID | Integer | The ID of the survey question |
Question | Question | Object (Question) | The question that is being asked |
Survey Page ID | Survey_Page_Id | Integer | The ID of the survey question’s parent survey page |
Properties | Properties | Map (Enum (Survey Property Key), Object (Survey Item Property Value)) | The properties of the survey question |
Survey Response¶
Property Name | JSON Key | Value Type | Description |
ID | Survey_Response_Id | Integer | The ID of the survey response |
User ID | User_Id | Integer | The ID of the user that responded to the survey |
Survey | Survey | Object (Survey) | The survey that was responded to |
Survey Context ID | Survey_Context_Id | Integer | The ID of the survey context that the survey response belongs to |
Domain Session ID | Domain_Session_Id | Integer | The ID of the domain session the survey response is in |
Start Time | Start_Time | String (Time Stamp) | The time the survey was started |
End Time | End_Time | String (Time Stamp) | The time the survey was completed |
Survey Page Responses | Survey_Page_Responses | Array (Survey Page Response) | The list of responses to pages in the survey |
Experiment ID | ExperimentId | String | (optional) the experiment id if the user answer the survey is a subject in an experiment. |
Task Assessment¶
Requires: Assessment (Base)
Assigned Values: Class = TaskAssessment
Task Performance State¶
Property Name | JSON Key | Value Type | Description |
State | state | Object(Performance State Attribute) | Performance state of the task |
Concepts | concepts | Map ( Integer, Object (Concept Performance State)) | Map from concepts IDs to the Performance State of that concept |
Total Scorer¶
Property Name | JSON Key | Value Type | Description |
Attribute Properties | Attribute_Properties | List ( Object (Attribute Scorer Properties)) | The scoring information for the list of attributes to be evaluated and score upon |
Tutor Me Learner Tutor Action¶
Property Name | JSON Key | Value Type | Description |
Action Name | action | String | the unique name of the action to use as a key to apply the action during the course |
Tutor User Interface Feedback¶
Property Name | JSON Key | Value Type | Description |
Display Text Action | DisplayTextAction | Object (Display Text Action) | (Optional) The text to display as feedback |
Play Audio Action | PlayAudioAction | Object (Play Audio Action) | (Optional) The audio to display as feedback |
Display Avatar Action | DisplayAvatarAction | Object (Display Avatar Action) | (Optional) The avatar action to take as feedback |
Clear Text Action | ClearTextAction | Object (Clear Text Action) | (Optional) Whether to clear previous text feedback from the TUI before presenting this feedback |
Unfiltered Sensor Data¶
Property Name | JSON Key | Value Type | Description |
Sensor Name | SensorName | String | Name of the sensor the data is coming from |
Sensor Type | SensorType | Enum (Sensor Type) | Type of sensor the data is coming from |
Elapsed Time | ElapsedTime | Long | Total milliseconds from the start of the domain session |
Attribute Values | AttributeValues | Map ( Enum (Sensor Attribute Name), Sensor Attribute Value) | Name/Value pairs that represent the sensor’s data |
User Data¶
Property Name | JSON Key | Value Type | Description |
User ID | User_Id | Integer | Unique ID of the user (optional in cases where the user id hasn’t been created yet) |
Username | Username | String | The GIFT username of the user (optional in cases where the user doesn’t have a username) |
Gender | Gender | Enum (Gender) | Gender of the user |
LMS Username | LMS_UserName | String | LMS username of the user |
Experiment Id | ExperimentId | String | (optional) the id of an experiment if this user is a subject in an experiment. |
User Session¶
Property Name | JSON Key | Value Type | Description |
User ID | userId | Integer | ID of the user to associate with this domain session |
Username | username | String | The GIFT username of the user (optional in cases where the user doesn’t have a username) |
Experiment ID | experimentId | String | (optional) unique experiment id if this domain session is part of an experiment |
Client Info | clientInfo | Object (WebClient Information) | Information about the tutor client |
User Session List¶
Property Name | JSON Key | Value Type | Description |
User Sessions | UserSessions | Array (Object (User Session)) | Array of User Session objects |
Vector 3d¶
Property Name | JSON Key | Value Type | Description |
X | X | Double | X value of the vector |
Y | Y | Double | Y value of the vector |
Z | Z | Double | Z value of the vector |
Video Properties¶
Assigned Values: Class = VideoProperties
Weapon Fire¶
Property Name | JSON Key | Value Type | Description |
Firing Entity ID | firingEntityID | Object (Entity Identifier) | ID of the firing entity |
Target Entity ID | targetEntityID | Object (Entity Identifier) | ID of the target entity |
Munition ID | munitionID | Object (Entity Identifier) | ID of the munition |
Event ID | eventID | Object (Event Identifier) | ID of the detonation event |
Velocity | velocity | Object (Vector 3d) | Velocity of the detonation |
Location | location | Object (Vector 3d) | Location of the detonation |
Burst Descriptor | burstDescriptor | Object (Burst Descriptor) | Description of the weapon fire |
WebClient Information¶
Property Name | JSON Key | Value Type | Description |
Client Address | clientAddress | String | The address (e.g. IPv4) of the tutor client. |
Webpage Properties¶
Assigned Values: Class = WebpageProperties
Youtube Video Properties¶
Assigned Values: Class = YoutubeVideoProperties
Property Name | JSON Key | Value Type | Description |
Height | height | Integer | The height of the video |
Width | width | Integer | The width of the video |
Fullscreen | fullscreen | String {true, false from generated.course.BooleanEnum} | If the video should be displayed fullscreen |
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 |
Healthy | Healthy | |
Died of Wounds | DiedOfWounds | |
Incapacitated | Incapacitated |
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 |
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 |
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 | |
Chat Log | ChatLog | |
Close Domain Session Request | CloseDomainSessionRequest | |
Collision | Collision | |
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 Survey Tutor Request | DisplaySurveyTutorRequest | |
Display Guidance Tutor Request | DisplayGuidanceTutorRequest | |
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 | |
Experiment Course Request | ExperimentCourseRequest | |
Gateway Module Status | GatewayModuleStatus | |
Generic JSON State | GenericJSONState | |
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 Lesson Request | InitializeLessonRequest | |
Initialize Pedagogical Model Request | InitializePedagogicalModelRequest | |
Instantiate Learner Request | InstantiateLearnerRequest | |
Kill Module | KillModule | |
Learner Tutor Action | LearnerTutorAction | |
Learner State | LearnerState | |
Lesson Completed | LessonCompleted | |
Lesson Started | LessonStarted | |
LMS Data Reply | LMSDataReply | |
LMS Data Request | LMSDataRequest | |
Login Reply | LoginReply | |
Logout Reply | LogoutReply | |
Logout Request | LogoutRequest | |
Line of Sight Query | LoSQuery | |
Line of Sight Result | LoSResult | |
Module Allocation Reply | ModuleAllocationReply | |
Module Allocation Request | ModuleAllocationRequest | |
Module Status | ModuleStatus | |
NACK | NACK | |
New User Request | NewUserRequest | |
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 | |
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 | |
User ID Request | UserIdRequest | |
User ID Reply | UserIdReply | |
Weapon Fire | WeaponFire |
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 |
Pass Fail¶
Element Name | Element Value | Description |
Pass | PASS | |
Fail | FAIL | |
Unknown | UNKNOWN | |
Incomplete | INCOMPLETE |
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 |
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 |
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 |
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 |
Weapon Control Status¶
Element Name | Element Value | Description |
Hold | Hold | |
Tight | Tight | |
Free | Free |