Title: tutor_message_v4.dtd
1tutor_message_v4.dtd
- Standardized Format for
- Data Shop Logging
- Version 4
- DTD (Document Type Definition)
This version works with DataShop v2.2 Februrary
2007 CTAT v2.2 June 2007
2Goals of this DTD
- Log every student and tutor action
- Playback in CTAT
- Human readable
Notes
- If not logging to the OLI log service, the meta
data element must be filled in. - Raw logs in previous version of DTD will remain
the same, the DataShop will convert data. - The DataShop will continue to accept logs in v2
as well as v4. - Required elements should not be left blank/empty.
3Release Notes(changes since v2 of the DTD)
- attempt_id renamed to context_message_id
- New message type context_message
- Replaces curriculum_message
- Flexible dataset hierarchy
- Condition Element
- Provides information on a study condition
- Sub-element of problem only
- tutor_message
- Interpretation element added to handle the
cognitive tutors idea of what the student was
doing - Custom Field element added to store variables
that are specific to the tutor application. - skill has new sub-elements and one new attribute
- buggy (attribute, true or false, default false)
- name
- category
- model_name
- semantic_event changes
- Removed id and semantic_event_id
- Replaced with transaction_id
- new attribute subtype for when additional
classification of a semantic event is required.
4XML within XML
- To explain how the tutor_message.dtd fits into
the big picture, its first important to get an
introduction to the OLI log DTD. To log student
actions to OLI, the data must be in this
oli_log_1.1.dtd xml format. See
http//oli.web.cmu.edu. The info field of each
action, when coming from a tutor, should be
filled in with XML in the format of the
tutor_message.dtd. Its XML within XML. - Heres part of the oli_log_1.1.dtd with just the
log_action element - lt!--
- auth_token provided by JCourse, used to
authenticate a session - session_id optionally provided by JCourse, used
to group actions within a session - user_guid optionally provided by Jcourse, used
to identify the user - date_time timestamp for action
- timezone timezone of the timestamp
- action_id identifes the type of action (e.g.
START_ATTEMPT) - source_id source of the action, the application
creating the log entry (e.g. WORKBOOK_ACTIVITY,
PACT_CTAT, ANDES, etc.) - external_object_id id of the object effected by
the action within the application (e.g.
window1/frame1/textbox1) - NOTE external_object_id does not neccessarily
correspond to a content file identifier, it is
more like a 'container' in Ken's usage of the
term - info_type type of data stored in the info field
(e.g. xml) - info all relevant data associated with the
action (most likely in XML format) - --gt
- lt!ATTLIST LOG_ACTION
- auth_token CDATA IMPLIED
5log_action auth_token session_id
user_guid date_time timezone
action_id source_id external_obj_id
info_type tutor_message.dtd
tutor_related_message_sequence
Note The info_type field must be set to
tutor_message.dtd so that the Data Shop log
conversion utilities can find the actions which
are of this format.
6Though many different types of actions can be
logged into the OLI logging database, following
the OLI DTD, Tutor Actions need to follow the
Tutor Message DTD for the content of a log_action
element. There are 4 types of messages, as seen
below.
Formerly curriculum_message
7problem_name (0 or 1)
semantic_event transaction_id name
trigger subtype
ui_event id name
The context_message_id attribute needs to match
the id of an actual context_message so that the
scope/context of this problem (where it falls
within the curriculum/dataset) can be
determined. The semantic events transaction id
in this message should match the
semantic_events transaction_id of a tutor
message if the two messages go together. The
semantic_events name can be anything, but useful
expected pairs are ATTEMPT/RESULT or
HINT_REQUEST/HING_MSG The meta element is only
used when messages are outside of an OLI logging
database. The anonFlag attribute on the user_id
element is optional and the default is false.
Set to true when the user_id is already
anonymized so that the DataShop doesnt anonymize
it again.
8tutor_message context_message_id
problem_name (0 or 1)
semantic_event transaction_id name
trigger subtype
interpretation (0) chosen (truefalse)
ui_event id name
correct_step_sequence (0 or 1) ordered
(truefalse)
action_evaluation (0) current_hint_number
total_hints_available hint_id
classification
tutor_advice (0)
Custom fields and interpretations will be
associated with transactions in the analysis
database. Skill goes with chosen
interpretation. Only incorrect interpretations
will have BOTH a correct and incorrect step
sequence.
9Formerly curriculum_message
context_message context_message_id name
dataset (0 or 1)
conversion_date (0 or 1)
converter_info (0 or 1)
name (1)
level (1) type
name (1)
New Elements
level (0 or 1)
problem (0 or 1) tutorFlag other
name (1)
context (0 or 1)
dfa (0)
- Problems tutorFlag attribute can be tutor,
test, pre-test, post-test or other. If
other, then the other attribute can/should be
filled in with application specific data
indicating where it falls in the spectrum between
tutor and test. (Other attribute is ignored
unless tutorFlag is set to other.) - If class name is not filled in, but period is,
then period will be used as the class name. If
class name and period name is not filled in, but
description is, then the description will be used
as the classname. - Every problem must be placed within at least one
level. Only one problem element is expected
within the entire dataset element, and it is
expected at the bottom-most level.
10message context_message_id
entry (0 or 1)
Used by CTAT for extra information that is used
primarily for playback.
11tutor_message_v4.xml
- Sample XML File
- with data from
- CTAT Example Tracing Tutor
12log_action auth_token session_id
user_guidstudent1 date_time2005/02/22
064347.00284 timezoneUS/Eastern
action_idSTART_TUTOR source_idPACT_CTAT
external_obj_id info_typetutor_message.d
td
tutor_related_message_sequence
13problem_name ChemPT1
event_descriptor
selection ../../../../webcontent/flash/ChemPT1.brd
semantic_event transaction_id
5B86A043 name START_TUTOR
action START_TUTOR
14context_message context_message_id
0CEF2E07 nameSTART_PROBLEM
dataset
class
name Chemistry
school CMU
level typeModule
period 5th
name Stoichiometry
Instructor Joe Jones
level type Section
name Unit Conversion
problem
name ChemPT1
context How many moles?
15(No Transcript)
16tutor_message context_message_id0CEF2E07
action_evaluation INCORRECT
tutor_advice 1000 should be in this term's
ratio, but look at the units you need to cancel
in the first term. Will placing 1000 mg in the
numerator cancel in the first term?
17problem_name ChemPT1
event_descriptor
event_descriptor
selection hint_button
semantic_event transaction_id 7BF61B95
nameHINT
action ButtonPressed
18tutor_message context_message_id0CEF2E07
action_evaluation current_hint_number1
total_hints_available3 HINT
tutor_advice Your goal here is to convert the
units of the first term.
19- lt?xml version"1.0" encoding"UTF-8"?gt
- lttutor_related_message_sequence
version_number4"gt - ltcontext_message
- context_message_id"0CEF2E07-24DE-BFDA-9BAB-957C3
AE236CE" name"START_PROBLEM"gt - ltclassgt
- ltschoolgtCMUlt/schoolgt
- lt/classgt
- ltdatasetgt
- ltnamegtChemistrylt/namegt
- ltlevel typeModulegt
- ltnamegtStoichiometrylt/namegt
- ltlevel typeSectiongt
- ltnamegtUnit Conversionlt/namegt
- ltproblemgt
- ltnamegtChemPT1lt/namegt
- ltcontextgtHow many moles?lt/contextgt
- lt/problemgt
- lt/levelgt
20- lttool_message
- context_message_id"0CEF2E07-24DE-BFDA-9BAB-957C3
AE236CE"gt - ltproblem_namegtChemPT1lt/problem_namegt
- ltsemantic_event
- transaction_id"0FB7AE5D-B8B9-3AAA-0B01-26CAA330
2205 name"ATTEMPT" /gt - ltevent_descriptorgt
- ltselectiongtNumerator1Valuelt/selectiongt
- ltactiongtUpdateTextFieldlt/actiongt
- ltinputgt1000lt/inputgt
- lt/event_descriptorgt
- lt/tool_messagegt
- lttutor_message
- context_message_id"0CEF2E07-24DE-BFDA-9BAB-957C3
AE236CE"gt - ltproblem_namegtChemPT1lt/problem_namegt
- ltsemantic_event
- transaction_id"0FB7AE5D-B8B9-3AAA-0B01-26CAA330
2205" - name"RESULT" /gt
- ltevent_descriptorgt
21- lttool_message
- context_message_id"0CEF2E07-24DE-BFDA-9BAB-957C3
AE236CE"gt - ltproblem_namegtChemPT1lt/problem_namegt
- ltsemantic_event
- transaction_id
"7BF61B95-3477-0D20-1E8B-2F4A2FAC5FE0 - name"HINT_REQUEST" /gt
- ltevent_descriptorgt
- ltselectiongthint_buttonlt/selectiongt
- ltactiongtButtonPressedlt/actiongt
- lt/event_descriptorgt
- lt/tool_messagegt
- lttutor_message
- context_message_id "0CEF2E07-24DE-BFDA-9BAB-957C
3AE236CE"gt - ltproblem_namegtChemPT1lt/problem_namegt
- ltsemantic_event
- transaction_id"7BF61B95-3
477-0D20-1E8B-2F4A2FAC5FE0" - name"HINT_MSG" /gt
- ltevent_descriptorgt