CommLogging

CommLoggingLibrary

extends: MovieClip

This class provides logging services for Flash Movies. It assembles student data into an XML document and sends it to a logging server. The data needed for this is passed as method parameters. See the individual methods for details. The data logged maps to the OLI Logging DTDs for OLI - oli_log_1.1.dtd (download)
It also maps to the Version 4 Data Shop v2.x (February 2007).

The OLI Logging DTD contains meta information about the tutor, such as the source of the tutor (source_id). The Data Shop Tutor Message DTD contains meta information about the tutor, such as curriculum (course) and problem. It also contains tutor data such as the selection, action, and input.

Documentation References:
Logging Library for Flash
CTAT_FlashPublish page
Flashvars page

Also, if you're testing your Flash Movies in a browser, a helpful debugging technique is found at:
(MAC) http://www.flashkit.com/tutorials/Tips_And_Techniques/Tracing_-Josh_Buh-1106/index.php
(PC) http://broadcast.artificialcolors.com/index.php?m=20040401

You can also use Ethereal, Live HTTP Headers Firefox extension, Charles for Flash, or IE HTTP Analyzer.

Property Summary

static Stringversion = "2.3.8"
static StringDTDversion = "4"

Constructor Summary

CommLoggingLibrary()

Method Summary

nulldispatchEvent()
nulladdEventListener()
nullremoveEventListener()
public gettabLevel()
public setProblemStarted(isStarted:Boolean)
public getProblemStarted()
public setStartMessageSent(theValue:Boolean)
public getStartMessageSent()
public setsessionEstablished(newValue:Boolean)
public getsessionEstablished()
public startProblemOld(log_service_url:String, question_file:String, problem_name:String, course_name:String, unit_name:String, section_name:String, school_name:String, user_guid:String, session_id:String, container_id:String, source_id:String, external_object_id:String, auth_token:String)
public logLoadTutor(dataObj:ContextMessageTransferData)
public logStartTutor(dataObj:ContextMessageTransferData)
public startProblem(dataObj:ContextMessageTransferData)
public logLoadVideo(dataObj:ContextMessageTransferData)
public logStartVideo(dataObj:ContextMessageTransferData)
public logLoadAudio(dataObj:ContextMessageTransferData)
public logStartAudio(dataObj:ContextMessageTransferData)
public logLoadMedia(dataObj:ContextMessageTransferData)
public logStartMedia(dataObj:ContextMessageTransferData)
public startProblemFull(dataObj:ContextMessageTransferData)
public sendContextMessage(dataObj:ContextMessageTransferData)
public checkProblemStartedAndStartMessageSent(semanticEventName:String)
public logAction(theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, arSkillName:Array, arSkillCategory:Array)
public logActionFull(theSemanticTrigger:String, theSemanticSubType:String, theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, arSkillName:Array, arSkillCategory:Array, arSkillModel:Array, theSkillProbability:String, theSkillBuggy:String)
public logAttempt(theTransactionID:String, theSelection:String, theAction:String, theInput:String)
public logAttemptFull(theTransactionID:String, theSemanticTrigger:String, theSemanticSubType:String, theSelection:String, theAction:String, theInput:String, theSemanticEventName:String)
public logResult(theTransactionID:String, theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, arSkillName:Array, arSkillCategory:Array)
public logResultFull(theTransactionID:String, theSemanticTrigger:String, theSemanticSubType:String, theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, arSkillName:Array, arSkillCategory:Array, arSkillModel:Array, theSkillProbability:String, theSkillBuggy:String, theSemanticEventName:String)
public logHint(theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, theHintLevel:String, theNumberOfHints:String, arSkillName:Array, arSkillCategory:Array)
public logHintFull(theSemanticTrigger:String, theSemanticSubType:String, theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, theHintLevel:String, theNumberOfHints:String, arSkillName:Array, arSkillCategory:Array, arSkillModel:Array, theSkillProbability:String, theSkillBuggy:String)
public logHintRequest(theTransactionID:String, theSelection:String, theAction:String, theInput:String)
public logHintRequestFull(theTransactionID:String, theSemanticTrigger:String, theSemanticSubType:String, theSelection:String, theAction:String, theInput:String)
public logHintMessage(theTransactionID:String, theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, theHintLevel:String, theNumberOfHints:String, arSkillName:Array, arSkillCategory:Array)
public logHintMessageFull(theTransactionID:String, theSemanticTrigger:String, theSemanticSubType:String, theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, theHintLevel:String, theNumberOfHints:String, arSkillName:Array, arSkillCategory:Array, arSkillModel:Array, theSkillProbability:String, theSkillBuggy:String)
public logMediaPlay(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoPlay(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioPlay(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaStop(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoStop(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioStop(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaPause(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoPause(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioPause(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaClose(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoClose(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioClose(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaEnd(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoEnd(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioEnd(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaMute(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoMute(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioMute(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaUnmute(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoUnmute(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioUnmute(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaNextClip(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoNextClip(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioNextClip(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaPreviousClip(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logVideoPreviousClip(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logAudioPreviousClip(theSelection:String, theMediaFile:String, theClipLength:String, theTime:String, messageText:String)
public logMediaVolumeChange(theSelection:String, theMediaFile:String, theClipLength:String, time:String, start_level:String, final_level:String, messageText:String)
public logVideoVolumeChange(theSelection:String, theMediaFile:String, theClipLength:String, time:String, start_level:String, final_level:String, messageText:String)
public logAudioVolumeChange(theSelection:String, theMediaFile:String, theClipLength:String, time:String, start_level:String, final_level:String, messageText:String)
public logMediaCue(theSelection:String, theMediaFile:String, theClipLength:String, theStartTime:String, theStopTime:String, messageText:String)
public logVideoCue(theSelection:String, theMediaFile:String, theClipLength:String, theStartTime:String, theStopTime:String, messageText:String)
public logAudioCue(theSelection:String, theMediaFile:String, theClipLength:String, theStartTime:String, theStopTime:String, messageText:String)
public logVideo(ptheSelection:Array, ptheSelectionType:Array, ptheAction:Array, ptheActionType:Array, ptheInput:Array, ptheInputType:Array, messageText:String, semanticEventName:String)
public logVideoFull(theTransactionID:String, theSemanticTrigger:String, theSemanticSubType:String, ptheSelection:Array, ptheSelectionType:Array, ptheAction:Array, ptheActionType:Array, ptheInput:Array, ptheInputType:Array, theActionEvaluation:String, messageText:String, theSemanticEventName)
public TutorLog(theTransactionID:String, theActionMsgSource:String, theSemanticEventName:String, theSemanticTrigger:String, theSemanticSubType:String, theSelection:String, theAction:String, theInput:String, theActionEvaluation:String, theText:String, theHintLevel:String, theNumberOfHints:String, arSkillName:Array, arSkillCategory:Array, arSkillModelName:Array, skillProbability:String, skillBuggy:String)
public SendLog(infoString:String, theActionMsgDescription:String)
public logSessionMessage(plog_service_url:String, pauth_token:String, psession_id:String, puser_guid:String)
public simpleSessionLog(plog_service_url:String, pauth_token:String, psession_id:String, puser_guid:String)
public SessionLog(sessionObj:SessionMessageTransferData)
public static userAndSessionValidityWarning(theField:String, theValue:String, fieldSetBy:String)
public checkUserAndSessionValidity(theField:String, theValue:String, fieldSetBy:String)
public detectOldShell()
public checkTutorCompatibility(theVersion:String)
public setTheSessionObj(theValue:SessionMessageTransferData)
public SessionMessageTransferDatagetTheSessionObj()
public ContextMessageTransferDatacreateContextMessageTransferData()
public SessionMessageTransferDatacreateSessionMessageTransferData()
public getMetaDataHeader(pTabLevel:Array)
public ContextMessageTransferDatagetDefaultDataObj()
public setTheDataObj(theValue:ContextMessageTransferData)
public ContextMessageTransferDatagetTheDataObj()
public nulltraceDataObject(dataObj:ContextMessageTransferData)
public getGuid()
public getClassVersion()
public getDTDversion()
public escapeXML(xmlToEscape1:String)
public nullcaseInsIndexOf(string1:String, string2:String)

Property Details

version

static version:String = "2.3.8"

DTDversion

static DTDversion:String = "4"

Constructor Details

CommLoggingLibrary

CommLoggingLibrary()

The constructor is not used to set class properties. The startProblem method is more generally used for this purpose because the library may be used for more than one problem on one SWF and so there is a need to initialize variables repeatedly. This is not the case with CTAT Pseudo Tutors but it is anticipated with other systems that will use this logging library. I added System.security.allowDomain("*") which allows this SWF to be scripted by a localhost tutor that loads it. That is a Flash 8 security thing.

Method Details

dispatchEvent

dispatchEvent()

addEventListener

addEventListener()

removeEventListener

removeEventListener()

gettabLevel

public gettabLevel():Array

setProblemStarted

public setProblemStarted(isStarted:Boolean):Void

Set the state of the problem to be started or not. This is used in conjunction with the startProblem method and the logging methods.

getProblemStarted

public getProblemStarted():Boolean

Get the state of the problem, whether it is started or not. This is used in conjunction with the startProblem method and the logging methods.

setStartMessageSent

public setStartMessageSent(theValue:Boolean):Void

Set teh state of the Start Tool Message.

getStartMessageSent

public getStartMessageSent():Boolean

Get the state of the problem, whether it is started or not. This is used in conjunction with the startProblem method and the logging methods.

setsessionEstablished

public setsessionEstablished(newValue:Boolean):Void

Used for session management If not using OLI then I would expect that the author would call simpleSessionLog or sessionLog. If using OLI, then the author wouldn't call simpleSessionLog. The library then gets the session data through flashvars by way of startProblem or startProblemOld.

Parameters
newValue (Boolean) - = a boolean.

getsessionEstablished

public getsessionEstablished():Boolean

startProblemOld

public startProblemOld(log_service_url:String,
                       question_file:String,
                       problem_name:String,
                       course_name:String,
                       unit_name:String,
                       section_name:String,
                       school_name:String,
                       user_guid:String,
                       session_id:String,
                       container_id:String,
                       source_id:String,
                       external_object_id:String,
                       auth_token:String):Void

This method initiates the logging of a problem. It builds two messages that are sent to the logging server, a start message and a curriculum message. When beginning to log a problem, call this method with all the background parameters needed to log. Note that the .FLA/.SWF that instantiates this class will call this method when it loads.

This method should generally be called for each problem that is shown in a tutor SWF. The CTAT Pseudo Tutors have one problem per Tutor SWF but other tutors will load multiple problems into the same SWF. In the latter situation, the problem_name parameter will likely change.

The parameters for this method describe the user, the problem, the session, etc. But they don't include the student data such as selection, action, and input Those are passed to the individual method calls such as logAction. CTAT normally sources the parameter values from the flashvars parameter of the HTML Object tag. (See CTAT_FlashPublish page). You can pass those values to the logging methods.

parameters

log_service_url: This is a web service for logging. PSLC logging server is http://learnlab.web.cmu.edu/log/server

problem_name: This is the name of the problem.

question_file: This is a reference to a file that contains questions. For CTAT, it is the .BRD Behavior Graph model, an xml document.

course_name: The name of the course or curriculum.

unit_name: The unit name, related to the course.

section_name: The section name, related to the course.

school_name: The name of the school for the tutor.

user_guid: A unique user id. If using OLI to serve pages, they supply this from their authentication system. If serving outside OLI, consider writing this with a JSP etc.

session_id: A unique session ID. Each time a student logs in they should get a new session ID. If using OLI to serve pages, they supply this from their authentication system. If serving outside OLI, consider writing this with a JSP etc.

container_id: A unique ID. If using OLI to serve pages, they supply this from their authentication system. If serving outside OLI, consider writing this with a JSP etc.

source_id: The name of the tutor source. CTAT uses CTAT_PACT.

external_object_id: A unique Object ID. If using OLI to serve pages, they supply this from their authentication system. If serving outside OLI, consider writing this with a JSP etc.

auth_token: A authorization token. If using OLI to serve pages, they supply this from their authentication system. If serving outside OLI, consider writing this with a JSP etc.

logLoadTutor

public logLoadTutor(dataObj:ContextMessageTransferData):Void

Log the context message. uses LOAD_TUTOR for context name. Note, the context message name will default to LOAD_TUTOR if it hasn't been set in the dataObj getthe_action_msg_type param (default changed from START_TUTOR in v2.3.1)

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/) This method is a wrapper, replacement for startProblem. See also logLoadVideo, logLoadAudio, logLoadMedia and startProblemFull

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

logStartTutor

public logStartTutor(dataObj:ContextMessageTransferData):Void

Log the context message . uses START_TUTOR for context name. Note, the context message name will default to LOAD_TUTOR if it hasn't been set in the dataObj getthe_action_msg_type param (default changed from START_TUTOR in v2.3.1)

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/) This method is a wrapper, replacement for startProblem. See also logLoadVideo, logLoadAudio, logLoadMedia and startProblemFull

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

startProblem

public startProblem(dataObj:ContextMessageTransferData):Void

Log the context message . uses LOAD_TUTOR for context name. Note, the context message name will default to LOAD_TUTOR if it hasn't been set in the dataObj getthe_action_msg_type param (default changed from START_TUTOR in v2.3.1)

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/) This method is an upgrade of startProblem to the Data Shop V4 DTD. See also logLoadVideo, logLoadAudio, logLoadMedia and startProblemFull

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

logLoadVideo

public logLoadVideo(dataObj:ContextMessageTransferData):Void

Log the context message . uses LOAD_VIDEO for context name.

Create the start message and the curriculum message with name LOAD_VIDEO

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/)

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

logStartVideo

public logStartVideo(dataObj:ContextMessageTransferData):Void

Log the context message . uses START_VIDEO for context name.

Create the start message and the curriculum message with name LOAD_VIDEO

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/)

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

logLoadAudio

public logLoadAudio(dataObj:ContextMessageTransferData):Void

Log the context message . uses LOAD_AUDIO for context name.

Create the start message and the curriculum message with name LOAD_AUDIO

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/)

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

logStartAudio

public logStartAudio(dataObj:ContextMessageTransferData):Void

Log the context message . uses START_AUDIO for context name.

Create the start message and the curriculum message with name LOAD_AUDIO

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/)

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

logLoadMedia

public logLoadMedia(dataObj:ContextMessageTransferData):Void

Log the context message . uses LOAD_MEDIA for context name.

Create the start message and the curriculum message with name LOAD_MEDIA

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/)

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

logStartMedia

public logStartMedia(dataObj:ContextMessageTransferData):Void

Log the context message . uses START_MEDIA for context name.

Create the start message and the curriculum message with name LOAD_MEDIA

This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/)

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

startProblemFull

public startProblemFull(dataObj:ContextMessageTransferData):Void

Create the curriculum message.

This method does the bulk of the work for the startProblem, logLoadProblem,logLoadVideo, logLoadAudio and logLoadMeida. Each of those methods sets the msg type (e.g., START_VIDEO) and msg source (e.g., TOOL_ACTION) using setthe_action_msg_type and setthe_action_msg_source. This maps to the Data Shop Tutor Message DTD. See tutor_message_v4.xml and tutor_message_v4.dtd ( http://learnlab.web.cmu.edu/dtd/) This method is an upgrade of startProblem to the Data Shop V4 DTD.

Parameters
dataObj (ContextMessageTransferData) - = a instance of ContextMessageTransferData. The author should have instantiated this and set data such as the problem, study condition etc. The library has a method named getDefaultDataObj() to generate a data object, populated by flashvars values.

sendContextMessage

public sendContextMessage(dataObj:ContextMessageTransferData):Void

checkProblemStartedAndStartMessageSent

public checkProblemStartedAndStartMessageSent(semanticEventName:String):Void

Parameters
semanticEventName (String) - = "START_TUTOR", "START_VIDEO" etc.

logAction

public logAction(theSelection:String,
                 theAction:String,
                 theInput:String,
                 theActionEvaluation:String,
                 theText:String,
                 arSkillName:Array,
                 arSkillCategory:Array):Void

A combined method for Attempt and Result messages. See the logAttempt and logResult methods for descriptions. Use this technique if you want to combine user input and assessment into one statement. CTAT Pseudo Tutors separate and use the individual method calls. One advantage to separate methods for Attempt and Result is the ability to set different values for Selection, Action, and Input (SAI). For example, to record the intended SAI on an erroneous action.

Parameters

theSelection: This is a unique identifier within the problem of what the user is interacting with. For example, in CTAT, this is often the name of a text field but in a language tutor, this could identify a audio clip that the student is listening. This maps to the selection element of the event descriptor element of the Data Shop Tutor Message DTD.

theAction: A domain specific action that is done against the selection. This maps to the action element of the Data Shop Tutor Message DTD. Examples:
- For a Button: ButtonPressed
- For a ComboBox: UpdateComboBox
- For a label: UpdateIcon
- For a RadioButton: UpdateRadioButton
- For a Table: UpdateTable
- For a Text Area: UpdateTextArea
- For a Text Field: UpdateTextField
- For a List: UpdateList
- For a Chooser: UpdateChooser
- For a Composer: UpdateComposer
- For a MultipleChoice: UpdateMultipleChoice
- For a QuestionTextField: UpdateQuestionTextField

theInput: This is meant to capture the value of the user's interaction. For example, the value typed into a text field. This maps to the input element of the Data Shop Tutor Message DTD.

theActionEvaluation: This describes the tutor assessment of the student action. Values include CORRECT, BUG, and INCORRECT.

theText: This is meant to capture feedback text that is shown to the student. For example, the success message. This maps to the tutor_advice element of the Tutor Message in the Data Shop Tutor Message DTD.

arSkillName: This parameter is meant to record a skill associated with the user's action. A Array of strings.

arSkillCategory: This parameter is meant to record a category of a skill.

logActionFull

public logActionFull(theSemanticTrigger:String,
                     theSemanticSubType:String,
                     theSelection:String,
                     theAction:String,
                     theInput:String,
                     theActionEvaluation:String,
                     theText:String,
                     arSkillName:Array,
                     arSkillCategory:Array,
                     arSkillModel:Array,
                     theSkillProbability:String,
                     theSkillBuggy:String):Void

See logAction This method contains extra params such as theSemanticTrigger, theSemanticSubType, arSkillModel, theSkillProbability, and theSkillBuggy. These extra params are seldom used and this method is avaialable for more advanced logging.

logAttempt

public logAttempt(theTransactionID:String,
                  theSelection:String,
                  theAction:String,
                  theInput:String):Void

A method for Attempt messages. This is meant to capture data about the user action but not about any assessment of the action (i.e., correct, incorrect).

Parameters

theCommonSemanticEventID: This is a unique ID assigned to each tool-tutor action pair in order to link them logically. This value is assigned in two places that map in the Data Shop Tutor Message DTD. First, it maps to the id of the sematic_event tag of Tool messages. Second, it maps to the semantic_event_id of the semantic_event tag of the Tutor messages. Pass this ID to map to the id parameter of the semantic_event tag. If you're calling logAttempt and logResult separately, please use the same value in both calls. You can use the getGuid method to get IDs Finally, if you use the logAction method, the ID is generated by that method and used in both calls.

theSelection: See logAction method.

theAction: See logAction method.

theInput: See logAction method.

logAttemptFull

public logAttemptFull(theTransactionID:String,
                      theSemanticTrigger:String,
                      theSemanticSubType:String,
                      theSelection:String,
                      theAction:String,
                      theInput:String,
                      theSemanticEventName:String):Void

See logAttempt This method contains extra params such as theSemanticTrigger, theSemanticSubType These extra params are seldom used or have default values in other methods.

Parameters

logResult

public logResult(theTransactionID:String,
                 theSelection:String,
                 theAction:String,
                 theInput:String,
                 theActionEvaluation:String,
                 theText:String,
                 arSkillName:Array,
                 arSkillCategory:Array):Void

A method for Result messages. This is meant to capture data about the assessment of the action (i.e., correct, incorrect) not the user action.

Parameters

theTransactionID: Pass this ID to map to the id parameter of the semantic_event tag. You can use getGuid() to get a ID. Note that this id should match the semantic_event_id parameter of the semantic_event tag for a result, so if you're calling logAttempt and logResult separately, please use the same value in both calls. Note that if you use the logAction method, the ID is generated by that method and used in both calls.

theTutorMsgSemanticEventID: This is a unique ID assigned to the id parameter of the semantic_event tag of the tutor_message in the Data Shop Tutor Message DTD.

theSelection: See logAction method.

theAction: See logAction method.

theInput: See logAction method.

theActionEvaluation: This describes the tutor assessment of the student action. Values include CORRECT, BUG, and INCORRECT. BUG means error.

theText: This is meant to capture feedback text that is shown to the student. For example, the success/bug message.

arSkillName: This parameter is meant to record a skill associated with the user's action. A Array of strings.

arSkillCategory: This parameter is meant to record a category of a skill.

logResultFull

public logResultFull(theTransactionID:String,
                     theSemanticTrigger:String,
                     theSemanticSubType:String,
                     theSelection:String,
                     theAction:String,
                     theInput:String,
                     theActionEvaluation:String,
                     theText:String,
                     arSkillName:Array,
                     arSkillCategory:Array,
                     arSkillModel:Array,
                     theSkillProbability:String,
                     theSkillBuggy:String,
                     theSemanticEventName:String):Void

See logResult This method contains extra params such as theSemanticTrigger, theSemanticSubType, arSkillModel, theSkillProbability, and theSkillBuggy. These extra params are seldom used and this method is avaialable for more advanced logging.

logHint

public logHint(theSelection:String,
               theAction:String,
               theInput:String,
               theActionEvaluation:String,
               theText:String,
               theHintLevel:String,
               theNumberOfHints:String,
               arSkillName:Array,
               arSkillCategory:Array):Void

This is a combined hint request and hint messages. See the logHintRequest and logHIntResponse methods for descriptions. Use this technique if you want to combine user request and system response into one statement. CTAT Pseudo Tutors separate and use the individual method calls. One advantage to separate methods for Attempt and Result is the ability to set different values for Selection, Action, and Input (SAI) where the selection of the hint is the hint button but the user is getting a hint on a text field.

Parameters

theSelection: See logAction method.

theAction: See logAction method.

theInput: See logAction method.

theActionEvaluation: This describes the tutor assessment of the student action. For example "HINT".

theText: This is meant to capture feedback text that is shown to the student.

theHintLevel: This parameter is meant to record a hint sequence. For example, 2 for the second hint.

theNumberOfHints: This parameter is meant to record the total number of hints that are part of a hint sequence. This maps to the skill element of the Tutor Message in the Data Shop Tutor Message DTD.

arSkillName: This parameter is meant to record a skill associated with the user's action. A Array of strings.

arSkillCategory: This parameter is meant to record a category of a skill.

arSkillModel: A model. Hao Cen does work in this area. (hcen@andrew.cmu.edu)

theSkillProbability:

theSkillName:
*

arSkillName: This parameter is meant to record a skill associated with the user's action. A Array of strings.

arSkillCategory: This parameter is meant to record a category of a skill.

logHintFull

public logHintFull(theSemanticTrigger:String,
                   theSemanticSubType:String,
                   theSelection:String,
                   theAction:String,
                   theInput:String,
                   theActionEvaluation:String,
                   theText:String,
                   theHintLevel:String,
                   theNumberOfHints:String,
                   arSkillName:Array,
                   arSkillCategory:Array,
                   arSkillModel:Array,
                   theSkillProbability:String,
                   theSkillBuggy:String):Void

See logHint This method contains extra params such as theSemanticTrigger, theSemanticSubType, arSkillModel, theSkillProbability, and theSkillBuggy. These extra params are seldom used and this method is avaialable for more advanced logging.

logHintRequest

public logHintRequest(theTransactionID:String,
                      theSelection:String,
                      theAction:String,
                      theInput:String):Void

This method is meant to log the user's action in requesting a hint.

Parameters

theTransactionID: This is a unique ID assigned to each tool-tutor action pair in order to link them logically. This value is assigned in two places that map in the Data Shop Tutor Message DTD. First, it maps to the id of the sematic_event tag of Tool messages. Second, it maps to the semantic_event_id of the semantic_event tag of the Tutor messages. Pass this ID to map to the id parameter of the semantic_event tag. If you're calling logAttempt and logResult separately, please use the same value in both calls. You can use the getGuid method to get IDs Finally, if you use the logAction method, the ID is generated by that method and used in both calls.

theSelection: See logAction method.

theAction: See logAction method.

theInput: See logAction method.

logHintRequestFull

public logHintRequestFull(theTransactionID:String,
                          theSemanticTrigger:String,
                          theSemanticSubType:String,
                          theSelection:String,
                          theAction:String,
                          theInput:String):Void

See logHintRequest This method contains extra params such as theSemanticTrigger, theSemanticSubType. These extra params are seldom used and this method is avaialable for more advanced logging.

logHintMessage

public logHintMessage(theTransactionID:String,
                      theSelection:String,
                      theAction:String,
                      theInput:String,
                      theActionEvaluation:String,
                      theText:String,
                      theHintLevel:String,
                      theNumberOfHints:String,
                      arSkillName:Array,
                      arSkillCategory:Array):Void

Paramaters

theTransactionID: Pass this ID to map to the id parameter of the semantic_event tag. You can use getGuid() to get a ID. Note that this id should match the semantic_event_id parameter of the semantic_event tag for a result, so if you're calling logAttempt and logResult separately, please use the same value in both calls. Note that if you use the logAction method, the ID is generated by that method and used in both calls.

theTutorMsgSemanticEventID: This is a unique ID assigned to the id parameter of the semantic_event tag of the tutor_message in the Data Shop Tutor Message DTD.

theSelection: See logAction method.

theAction: See logAction method.

theInput: See logAction method.

theActionEvaluation: This describes the tutor assessment of the student action. For example "HINT".

theText: This is meant to capture feedback text that is shown to the student.

theHintLevel: This parameter is meant to record a hint sequence. For example, 2 for the second hint.

theNumberOfHints: This parameter is meant to record the total number of hints that are part of a hint sequence.

arSkillName: This parameter is meant to record a skill associated with the user's action. A Array of strings.

arSkillCategory: This parameter is meant to record a category of a skill.

arSkillModel: A model. Hao Cen does work in this area. (hcen@andrew.cmu.edu)

theSkillProbability:

theSkillBuggy: This maps to the skill element of the Tutor Message in the Data Shop Tutor Message DTD.

logHintMessageFull

public logHintMessageFull(theTransactionID:String,
                          theSemanticTrigger:String,
                          theSemanticSubType:String,
                          theSelection:String,
                          theAction:String,
                          theInput:String,
                          theActionEvaluation:String,
                          theText:String,
                          theHintLevel:String,
                          theNumberOfHints:String,
                          arSkillName:Array,
                          arSkillCategory:Array,
                          arSkillModel:Array,
                          theSkillProbability:String,
                          theSkillBuggy:String):Void

Full version of logHint. Contains parameters for theSematnicTrigger, theSemanticSubType, arSkillModel, theSkillProbability, theSkillBuggy

logMediaPlay

public logMediaPlay(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

play . see logPlay . Semantic Name = MEDIA_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456

logVideoPlay

public logVideoPlay(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

play. see logPlay. Semantic Name = VIDEO_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456

logAudioPlay

public logAudioPlay(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

play. see logPlay. Semantic Name = AUDIO_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456

logMediaStop

public logMediaStop(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

stop. Semantic Name = MEDIA_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
messageText (String) - = a text message that describes the event

logVideoStop

public logVideoStop(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

stop. Semantic Name = MEDIA_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logAudioStop

public logAudioStop(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

stop. Semantic Name = AUDIO_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logMediaPause

public logMediaPause(theSelection:String,
                     theMediaFile:String,
                     theClipLength:String,
                     theTime:String,
                     messageText:String):Void

Pause. Semantic Name = MEDIA_ACTION Pause. time is location in clip where playback was paused See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logVideoPause

public logVideoPause(theSelection:String,
                     theMediaFile:String,
                     theClipLength:String,
                     theTime:String,
                     messageText:String):Void

Pause. Semantic Name = VIDEO_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
messageText (String) - = a text message that describes the event

logAudioPause

public logAudioPause(theSelection:String,
                     theMediaFile:String,
                     theClipLength:String,
                     theTime:String,
                     messageText:String):Void

Pause. Semantic Name = AUDIO_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
messageText (String) - = a text message that describes the event

logMediaClose

public logMediaClose(theSelection:String,
                     theMediaFile:String,
                     theClipLength:String,
                     theTime:String,
                     messageText:String):Void

close. time is location in current clip when media was closed. Semantic Name = MEDIA_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logVideoClose

public logVideoClose(theSelection:String,
                     theMediaFile:String,
                     theClipLength:String,
                     theTime:String,
                     messageText:String):Void

close. time is location in current clip when media was closed. Semantic Name = VIDEO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logAudioClose

public logAudioClose(theSelection:String,
                     theMediaFile:String,
                     theClipLength:String,
                     theTime:String,
                     messageText:String):Void

close. time is location in current clip when media was closed. Semantic Name = AUDIO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logMediaEnd

public logMediaEnd(theSelection:String,
                   theMediaFile:String,
                   theClipLength:String,
                   theTime:String,
                   messageText:String):Void

end. Semantic Name = MEDIA_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logVideoEnd

public logVideoEnd(theSelection:String,
                   theMediaFile:String,
                   theClipLength:String,
                   theTime:String,
                   messageText:String):Void

end. Semantic Name = VIDEO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logAudioEnd

public logAudioEnd(theSelection:String,
                   theMediaFile:String,
                   theClipLength:String,
                   theTime:String,
                   messageText:String):Void

end. Semantic Name = AUDIO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
theClipLength (String) - = the length of the media in seconds. e.g., 2.456
messageText (String) - = a text message that describes the event

logMediaMute

public logMediaMute(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

mute. time is location in clip when this action occurred. Semantic Name = MEDIA_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logVideoMute

public logVideoMute(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

mute. time is location in clip when this action occurred. Semantic Name = VIDEO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logAudioMute

public logAudioMute(theSelection:String,
                    theMediaFile:String,
                    theClipLength:String,
                    theTime:String,
                    messageText:String):Void

mute. time is location in clip when this action occurred. Semantic Name = AUDIO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logMediaUnmute

public logMediaUnmute(theSelection:String,
                      theMediaFile:String,
                      theClipLength:String,
                      theTime:String,
                      messageText:String):Void

unmute. time is location in clip when this action occurred. Semantic Name = MEDIA_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logVideoUnmute

public logVideoUnmute(theSelection:String,
                      theMediaFile:String,
                      theClipLength:String,
                      theTime:String,
                      messageText:String):Void

unmute. time is location in clip when this action occurred. Semantic Name = VIDEO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logAudioUnmute

public logAudioUnmute(theSelection:String,
                      theMediaFile:String,
                      theClipLength:String,
                      theTime:String,
                      messageText:String):Void

unmute. time is location in clip when this action occurred. Semantic Name = AUDIO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logMediaNextClip

public logMediaNextClip(theSelection:String,
                        theMediaFile:String,
                        theClipLength:String,
                        theTime:String,
                        messageText:String):Void

next_clip. move to the next media clip; time is location in current clip when this action occurred. Semantic Name = MEDIA_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logVideoNextClip

public logVideoNextClip(theSelection:String,
                        theMediaFile:String,
                        theClipLength:String,
                        theTime:String,
                        messageText:String):Void

next_clip. move to the next media clip; time is location in current clip when this action occurred. Semantic Name = VIDEO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logAudioNextClip

public logAudioNextClip(theSelection:String,
                        theMediaFile:String,
                        theClipLength:String,
                        theTime:String,
                        messageText:String):Void

next_clip. move to the next media clip; time is location in current clip when this action occurred. Semantic Name = AUDIO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logMediaPreviousClip

public logMediaPreviousClip(theSelection:String,
                            theMediaFile:String,
                            theClipLength:String,
                            theTime:String,
                            messageText:String):Void

Previous_clip. move to the Previous media clip; time is location in current clip when this action occurred. Semantic Name = MEDIA_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logVideoPreviousClip

public logVideoPreviousClip(theSelection:String,
                            theMediaFile:String,
                            theClipLength:String,
                            theTime:String,
                            messageText:String):Void

previous_clip. move to the previous media clip; time is location in current clip when this action occurred. Semantic Name = v See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logAudioPreviousClip

public logAudioPreviousClip(theSelection:String,
                            theMediaFile:String,
                            theClipLength:String,
                            theTime:String,
                            messageText:String):Void

previous_clip. move to the previous media clip; time is location in current clip when this action occurred. Semantic Name = AUDIO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters

logMediaVolumeChange

public logMediaVolumeChange(theSelection:String,
                            theMediaFile:String,
                            theClipLength:String,
                            time:String,
                            start_level:String,
                            final_level:String,
                            messageText:String):Void

volume_change. Semantic Name = MEDIA_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
start_level (String) - = initial volume level in a scale from 0 to 100.
messageText (String) - = text describing the action.

logVideoVolumeChange

public logVideoVolumeChange(theSelection:String,
                            theMediaFile:String,
                            theClipLength:String,
                            time:String,
                            start_level:String,
                            final_level:String,
                            messageText:String):Void

volume_change. Semantic Name = VIDEO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
start_level (String) - = initial volume level in a scale from 0 to 100.
messageText (String) - = text describing the action.

logAudioVolumeChange

public logAudioVolumeChange(theSelection:String,
                            theMediaFile:String,
                            theClipLength:String,
                            time:String,
                            start_level:String,
                            final_level:String,
                            messageText:String):Void

volume_change. Semantic Name = AUDIO_ACTION See https://learnlab.web.cmu.edu/dtd/media_logging.doc

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
start_level (String) - = initial volume level in a scale from 0 to 100.
messageText (String) - = text describing the action.

logMediaCue

public logMediaCue(theSelection:String,
                   theMediaFile:String,
                   theClipLength:String,
                   theStartTime:String,
                   theStopTime:String,
                   messageText:String):Void

Cue. Semantic Name = MEDIA_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
messageText (String) - = text describing the action.

logVideoCue

public logVideoCue(theSelection:String,
                   theMediaFile:String,
                   theClipLength:String,
                   theStartTime:String,
                   theStopTime:String,
                   messageText:String):Void

Cue. Semantic Name = VIDEO_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
messageText (String) - = text describing the action.

logAudioCue

public logAudioCue(theSelection:String,
                   theMediaFile:String,
                   theClipLength:String,
                   theStartTime:String,
                   theStopTime:String,
                   messageText:String):Void

Cue. Semantic Name = AUDIO_ACTION

Parameters
theSelection (String) - = a string e.g., _level0.VideoPlayerInstance1.button
theMediaFile (String) - = the name of the media file = mymovie.flv. Translated into mymovie.flv
messageText (String) - = text describing the action.

logVideo

public logVideo(ptheSelection:Array,
                ptheSelectionType:Array,
                ptheAction:Array,
                ptheActionType:Array,
                ptheInput:Array,
                ptheInputType:Array,
                messageText:String,
                semanticEventName:String):Void

This is a base method for logging video, audio and video events such as Start, Stop, etc. It was written for the 2.1.0.5 version of the library. This method has a basic signature and would allow an author to extend media logging by passing a new name for the semanticEventName parameter. It calls logVideoFull with null values for any missing parameter values. You can use logVideoFull with extra params if needed.

Parameters
ptheSelection (Array) - = An array of selection values. The video logging requires multiple SAI and id values for SAI.
ptheSelectionType (Array) - = An array of selection IDs. These map to the array ptheSelection. Each Selection, Action and Input can have an ID.
ptheAction (Array) - = Array of actions
ptheActionType (Array) - = array of action types
ptheInput (Array) - = array of inputs
ptheInputType (Array) - = array of input types
messageText (String) - = an optional message about the media.
semanticEventName (String) - = the semantic name of the media event. E.g., VIDEO_ACTION

logVideoFull

public logVideoFull(theTransactionID:String,
                    theSemanticTrigger:String,
                    theSemanticSubType:String,
                    ptheSelection:Array,
                    ptheSelectionType:Array,
                    ptheAction:Array,
                    ptheActionType:Array,
                    ptheInput:Array,
                    ptheInputType:Array,
                    theActionEvaluation:String,
                    messageText:String,
                    theSemanticEventName):Void

Logging Video Events such as Start, Stop, Queue etc.

TutorLog

public TutorLog(theTransactionID:String,
                theActionMsgSource:String,
                theSemanticEventName:String,
                theSemanticTrigger:String,
                theSemanticSubType:String,
                theSelection:String,
                theAction:String,
                theInput:String,
                theActionEvaluation:String,
                theText:String,
                theHintLevel:String,
                theNumberOfHints:String,
                arSkillName:Array,
                arSkillCategory:Array,
                arSkillModelName:Array,
                skillProbability:String,
                skillBuggy:String):Void

This method is generally not used but it is the core method that all log methods call (except video). So, it is avaialable for users who can't get what they need from the specific log methods. This method assembles data for logging the student data into an XML document that maps to the Data Shop Tutor Message DTD. The data comes from the method parameters and from the flashvars param of HTML Object tag. Once assembled, it sends the data to the SendLog method. Note that it also sends a start message to the server the first time it is called.

Method Parameters

theTransactionID: This is a unique ID assigned to each tool-tutor action pair. It maps to the id parameter of the semantic_event tag of the tool_message in the Data Shop Tutor Message DTD

theActionMsgSource: This describes the character of the message. Values should be either TOOL_ACTION or TUTOR_ACTION. Tool refers to ungraded actions that the user does in the UI while Tutor refers to the system that assesses / grades the user action. An example of a system that grades is the behavior recorder for Pseudo Tutors.

theSemanticEventName: This describes the tool and tutor actions. Tool Values should be one of the following: ATTEMPT, HINT_REQUEST, START_TUTOR. Tutor actions shold be one of the following: RESULT, HINT_MSG, UPDATE_SKILL_MASTERY. This maps to the name parameter of the semantic_event element in the Data Shop Tutor Message DTD.

theSemanticTrigger: Used by CTAT for automatic actions by the tutor. CTAT refers to these as tutor performed actions.

theSemanticSubType: Used by CTAT for automatic actions by the tutor. CTAT refers to these as tutor performed actions.

theSelection: This is the thing that the user is acting on in the tool (UI). For example, the name of a text field. This maps to the selection element of the Data Shop Tutor Message DTD.

theAction: A domain specific action that is done against the selection. This maps to the action element of the Data Shop Tutor Message DTD. Examples:
- For a Button: ButtonPressed
- For a ComboBox: UpdateComboBox
- For a label: UpdateIcon
- For a RadioButton: UpdateRadioButton
- For a Table: UpdateTable
- For a Text Area: UpdateTextArea
- For a Text Field: UpdateTextField
- For a List: UpdateList
- For a Chooser: UpdateChooser
- For a Composer: UpdateComposer
- For a MultipleChoice: UpdateMultipleChoice
- For a QuestionTextField: UpdateQuestionTextField

theInput: This is meant to capture the value of the user's interaction. For example, the value typed into a text field. This maps to the input element of the Data Shop Tutor Message DTD.

theActionEvaluation: This describes the tutor assessment of the student action. Values include CORRECT, BUG, and INCORRECT.

theText: This is meant to capture feedback text that is shown to the student. For example, the hint message text of a hint message or the success/bug message. This maps to the tutor_advice element of the Tutor Message in the Data Shop Tutor Message DTD.

theHintLevel: This parameter is meant to record a hint sequence. For example, 2 for the second hint. This maps to the current_hint_number parameter of the action_evaluation element of the Tutor Message in the Data Shop Tutor Message DTD.

theNumberOfHints: This parameter is meant to record the number of hints that are part of a hint sequence. For example, 3 if there are three hints. This maps to the total_hints_available parameter of the action_evaluation element of the Tutor Message in the Data Shop Tutor Message DTD.

arSkillName: This parameter is meant to record the skills associated with the user's action. This maps to the skill name element of the Tutor Message in the Data Shop Tutor Message DTD.

arSkillCategory: This parameter is meant to record the category of a skill.

arSkillModelName: This parameter is meant to a skill model. Some studies have research on skill models.

skillProbability: Data related to CTAT research.

skillBuggy: Data related to the skills on an incorrect step. CTAT research.

Note, if you're testing in a browser, check out http://www.flashkit.com/tutorials/Tips_And_Techniques/Tracing_-Josh_Buh-1106/index.php

SendLog

public SendLog(infoString:String,
               theActionMsgDescription:String):Void

This method assembles the data that maps to the LOG_ACTION element of the OLI Logging DTD (download). This data comes from the data passed to the startProblem method and from the log methods, such as logAction.

This method also supports insertion of student data in a CDATA child. Commonly, this data comes from the log methods such as logAction. For PSLC data this amounts to an XML document which conforms to the Data Shot Tutor Logging DTD (Download).

This method also handles the mechanics of sending the log messages to the server.

Method Parameters

infoString: This parameter contains the student tutoring data that includes the Selection, Action, and Input. People who aren't logging to the PSLC Data Shop may want to pass a value for infoString that conforms to their own specifications.

theActionMsgDescription: This describes the character of the message. Values should be either TOOL_ACTION or TUTOR_ACTION. Tool refers to ungraded actions that the user does in the UI while Tutor refers to the system that assesses / grades the user action. An example of a system that grades is the behavior recorder for Pseudo Tutors. This parameter often changes and is dependant on the method call so we made it a parameter.

logSessionMessage

public logSessionMessage(plog_service_url:String,
                         pauth_token:String,
                         psession_id:String,
                         puser_guid:String):Void

Log a Session Message

This is a replacement, for the simpleSessionLog method.

This method assembles the data that maps to the LOG_SESSION_START element of the OLI Logging DTD (download). This is a simple version that doesn't require class_id, treatment_id, assignment_id, and info_type. The Session message is something OLI sends behing the scenes, but if you are logging outside of the OLI, you need to send it!! This maps to the log_session_start element of the OLI logging DTD. This class builds a SessionMessageTransferData instance from the parameters. These are then later used where session is needed i.e., sendLog()

Parameters
plog_service_url (String) - = a string for the url to log message to
pauth_token (String) - = a authtentication token.
psession_id (String) - = A session id. This is unique to the student's session.
puser_guid (String) - = user identifier. Unique to the user.

simpleSessionLog

public simpleSessionLog(plog_service_url:String,
                        pauth_token:String,
                        psession_id:String,
                        puser_guid:String):Void

Deprecated with 2.3.1 and later. Available for backward compatibility.

This method assembles the data that maps to the LOG_SESSION_START element of the OLI Logging DTD (download). This is a simple version that doesn't require class_id, treatment_id, assignment_id, and info_type. The Session message is something OLI sends behing the scenes, but if you are logging outside of the OLI, you need to send it!! This maps to the log_session_start element of the OLI logging DTD. This class builds a SessionMessageTransferData instance from the parameters. These are then later used where session is needed i.e., sendLog()

Parameters
plog_service_url (String) - = a string for the url to log message to
pauth_token (String) - = a authtentication token.
psession_id (String) - = A session id. This is unique to the student's session.
puser_guid (String) - = user identifier. Unique to the user.

SessionLog

public SessionLog(sessionObj:SessionMessageTransferData):Void

This method assembles the data that maps to the LOG_SESSION_START element of the OLI Logging DTD (download).

Parameters
sessionObj (SessionMessageTransferData) - = a SessionMessageTransferData instance. This instance should have the necessary session information to log.

userAndSessionValidityWarning

static public userAndSessionValidityWarning(theField:String,
                                            theValue:String,
                                            fieldSetBy:String):Void

Show a feedback message in the Shell and trace an Exception if theField is invalid.

Parameters
theField (String) - = the name of a field, e.g., "session_id"
theValue (String) - = the value of the theField
fieldSetBy (String) - = description of the source of the data, that is what it was set by. e.g., "set by value sent to library from tutor";
Returns
{valid:true, description:the user_guid is valid.}

checkUserAndSessionValidity

public checkUserAndSessionValidity(theField:String,
                                   theValue:String,
                                   fieldSetBy:String):Object

Return a message if theField is invalid, that is theValue is undefined or fieldSetBy == "set to default" This method is a utility for third parties Library users who want to check the valididy of fields in such as sesssion_id and user_guid.

Parameters
theField (String) - = the name of a field, e.g., "session_id"
theValue (String) - = the value of the theField
fieldSetBy (String) - = description of the source of the data, that is what it was set by. e.g., "set by value sent to library from tutor";
Returns
{valid:true, description:the user_guid is valid.}

detectOldShell

public detectOldShell():Void

Detect Old Shell and Warn the user that it won't log correctly. This tests (_level0[shell].getDTDversion() == undefined) and uses the shell Feedback method. The new Shell (2.1.0.0+) will return a string (e.g., "4")

checkTutorCompatibility

public checkTutorCompatibility(theVersion:String):Object

The tutor passes to the Library the version of the library that it was designed for and the method returns a status object. The status object has two properteis : {compatible:Boolean, description:a description} if ( theVersion == getClassVersion()) return true else if ( (theVersion.substr(0,1) == "1") || (theVersion.substr(0,1) == "2" && theVersion.substr(2,1) == "0")) rturn false else if ( theVersion.substr(0,1) == "2" && theVersion.substr(2,1) == "3" && Number(theVersion.substr(4,1)) < Number(getClassVersion().substr(4,1)) ) return false else if ( theVersion.substr(0,1) == "2" && theVersion.substr(2,1) == "3" && Number(theVersion.substr(4,1)) > Number(getClassVersion().substr(4,1)) ) return true else if ( theVersion.substr(0,1) == "2" && theVersion.substr(2,1) == "1") return false

Parameters
theVersion (String) - = a string versionthat the tutor expects to use. e.g., 2.3.4
Returns
{compatible:false, description:the library is incompatible because ... }

setTheSessionObj

public setTheSessionObj(theValue:SessionMessageTransferData):Void

getTheSessionObj

public getTheSessionObj():SessionMessageTransferData

createContextMessageTransferData

public createContextMessageTransferData():ContextMessageTransferData

create ContextMessageTransferData object This is needed for standalone tutors so they can build up the data object before passing to startProblem.

createSessionMessageTransferData

public createSessionMessageTransferData():SessionMessageTransferData

create a SessionMessageTransferData object The instance created will look have default values for session etc. But, these are usually overriden with the simpleSessionLog message or if that isn't called, by the logLoadProblem, logLoadVideo etc. which try to pull the data from flashvars.

getMetaDataHeader

public getMetaDataHeader(pTabLevel:Array):String

getDefaultDataObj

public getDefaultDataObj():ContextMessageTransferData

create data object with flashvars values. If flashvars variables aren't present, it sents default values for required fields. Flashvars changed a lot in implementing the v4 DTD. Brett documeted these and there is a spreadsheet named flashvars_listforV4DTDandTutoringService.xls

setTheDataObj

public setTheDataObj(theValue:ContextMessageTransferData):Void

getTheDataObj

public getTheDataObj():ContextMessageTransferData

traceDataObject

public traceDataObject(dataObj:ContextMessageTransferData)

Troubleshooting method. Trace the contents of the ContextMessageTransferData object.

Parameters

getGuid

public getGuid():String

This method is a utility for returning globally unique identifiers (GUIDs). It is used internally to get IDs but a tutor builder can use it as well to assign IDs. For example, the methods logAction and logHint each generate a semantic IDs that they pass to two other methods to link the two resulting messages.

getClassVersion

public getClassVersion():String

Return the Library Version number. E.g., "2.1.0.2"

getDTDversion

public getDTDversion():String

Return the Data Shop DTD Version that this library supports.

escapeXML

public escapeXML(xmlToEscape1:String):String

Utility method for escaping xml characters & -> & < -> < > -> > = -> &61;

Parameters
xmlToEscape1 (String) - = a string to unescape
Returns
escaped string

caseInsIndexOf

public caseInsIndexOf(string1:String,
                      string2:String)