iTrace - Downloads

iTrace Eclipse v0.1.0 Documentation

System Requirements
  • Windows 10 x64
  • srcML version 1.0 (required for token processing)
  • iTrace Core v0.1.0
  • iTrace Eclipse Plugin v0.1.0 and/or iTrace Visual Studio Plugin v0.1.0
Installing iTrace Toolkit
  1. Download the iTrace-Toolkit-Installer.exe
  2. Double click iTrace-Toolkit-Installer.exe to begin the install
    • Windows Defender SmartScreen may appear before installation begins. Click More info and then Run anyway to begin installation.
Uninstalling iTrace Toolkit
  1. Open Windows Add or remove programs
  2. Find and click iTrace-Toolkit in the list of installed programs
  3. Click Uninstall

Basic Usage

  1. Create a new or load and existing iTrace sqlite database
  2. Import iTrace XML Data (from Core/Plugin)
  3. Perform Token Analysis (optional)
  4. Run Fixation Filters
  5. Run Fixation Highlighting (optional)

iTrace Toolkit v0.1.0 is only compatible with data generated by version 0.1.0 of iTrace Core, iTrace Visual Studio Plugin, and iTrace Eclipse Plugin. Data generated by older versions of these tools are NOT COMPATIBLE.

Database Creation and Loading

In order to perform post processing on your iTrace XML data files it is necessary to create a new sqlite database or open an exiting database. To create a database click the Create New Database button on the Database window tab. In the new window that opens you can browse for the directory to save the database and enter a name for the file. If you already have a sqlite database file, you can click the Browse for Existing Database button and the Database window tab and use the file browser to locate your database.

Once you have chosen to create a database or browse for an existing one, simply click Load Database to open and prepare the database for use.

Importing iTrace XML Data Files

With the database loaded, choose the Import XML window tab to begin importing iTrace Core or Plugin XML data files. Simply use the Browse for iTrace XML button to launch the file browser and select your input file. With a file selected, you can then click the Import XML Data button to import the data into your database file. This will need to be repeated for each file you wish to import, but only needs to be done once per database file. To avoid duplicate imports of XML data files, each import file will be compared against a hash value (SHA 1) of existing imported data files and reject any file hash that matches a previously imported file.

Token Analysis

If you have srcML format XML documents of the source code used during a study, it is possible to use the Token Analysis window tab to automatically have source code token information added to your database file. To load a srcML file for token analysis, use the Browse for srcML Archive button to located your srcML file and click Identify Tokens to begin mapping tokens to gazes in the database.

Creating srcML XML

To perform token analysis tasks with iTrace Toolkit it is necessary to provide an XML marked up version of the source code under study using srcML (v1.0 or higher only). This can be done with the following command: srcml [source code] --position -o output.xml In the command above, source code can be individual files, a directory, a compressed archive, or any combination of the three. The position option addes details concerning line and column information of the original source code. If there are issues with position data encoded into the output XML such as invalid positions, you can supplement the above command with the option --jobs 1 which may resolve the issue. For additional information about srcml, please visit https://www.srcml.org/

Fixation Filtering

To perform fixation calculation on your dataset, select the Fixation window tab. The fixation algorithm dropdown list contains the three currently supported fixation approaches. Selecting an algorithm changes the parameters that can be configured for fine tuning the algorithms. Clicking Generate Fixation Data to run the fixation algorithm. All fixation runs are recorded in the same database for later querying/analysis. Fixations are currently run in groups based on the session (all gazes recorded between the start and stop of a tracker using iTrace Core).

Fixating Highlighting

iTrace Toolkit can output HTML versions of the source code with tokens associated with each fixation highlighted. This is done per fixation calculation and output into a folder named after the ID number of the fixation processing run (timestamp recorded by iTrace Toolkit).

Output Artifacts:

  • A complete sqlite3 database containing:
    • All raw data
    • Source code tokens and syntactic context (using a srcML XML document)
    • Fixations associated with each raw gaze data point
    • Calibration information
    • Recording session metadata and participant information (non-identifiable)
  • HTML files representing the source code with fixation tokens highlighted

Important Notes:

Some tasks such as token analysis are computationally expensive. The UI will be unavailable for interaction until the processing task is finished. Completion of a processing task is indicated by the status bar of the application displaying the text Ready.

gaze attributes:

Table used to contain all gazes captured

  • event_time → unique id for each gaze recorded by the tracker (Windows OS file time resolution)
  • session_id → referencing the session during which the gaze was captured (generated by iTrace)
  • calibration_id → id referencing the calibration used when gaze was captured (generated by iTrace)
  • participant_id → id referencing the participant who provided the gaze data (user defined)
  • tracker_time → time of gaze as given by the tracker
  • system_time → time of gaze as given by the OS system clock
  • x and y → horizontal and vertical screen coordinates of the gaze (calculated by iTrace)
  • left_x and right_x → horizontal offset value of the left and right eye provided by the tracker
  • left_y and right_y → vertical offset value of the left and right eye provided by the tracker
  • left_pupil_diameter and right_pupil_diameter → diameter of the left and right eye provided by tracker
  • left_validation and right_validation → validation value for the left and right eye data provided by tracker
  • user_left_x and user_right_x → real world horizontal position of user's left and right eye with respect to the tracker's position
  • user_left_y and user_right_y → real world vertical position of user's left and right eye with respect to the tracker's position
  • user_left_z and user_right_z → real world distance of user's left and right eye from the tracker

session table:

Table used to contain details about a recording session. Starting tracking with the Core always creates a new session.

  • session_id → unique id value of a tracking session (generated by iTrace)
  • participant_id → id referencing the participant in the tracking session (User defined)
  • screen_height and screen_width → height width of the display used by the participant (display set as Primary in Windows)
  • tracker_type → model type of the eye tracker used
  • tracker_serial_number → serial number of the tracker used
  • session_date and session_time → Unix timestamp representing the date and time of the tracking session
  • screen_recording_start →Unix timestamp representing the system start time for recorded video
  • task_name → user defined name of the task/study a participant is performing

fixation table

Table used to contain calculated fixations

  • fixation_id → unique id for the calculated fixation (generated by iTrace)
  • fixation_run_id → id referencing a particular run of the fixation filters (generated by iTrace)
  • fixation_event_start_time → event time of the first gaze that belongs to this fixation
  • fixation_order_number → order of the fixation with respect to all fixations from a session of collected data
  • x and y → calculated horizontal and vertical screen position of the fixation
  • fixation_target → file where the fixation lies
  • source_file_line and source_file_col → source file line and column that represents the fixation
  • syntactic_category → syntactic context of the token (represented as a hierarchy)
  • xpath → XPath navigating to the token in the srcML version of the source code
  • left_pupil_diameter and right_pupil_diameter → diameter of left and right pupil during fixation
  • duration → duration of the fixation

fixation_run Table:

Table used to data for a particular run of a fixation algorithm

  • fixation_run_id → unique id representing a run of a fixation filter (generated by iTrace)
  • session_id → id referencing the session data this fixation run processed
  • date_time → Unix timestamp when the data was generated
  • filter → fixation filter and settings used (comma separated)

fixation_gaze Table:

Table for a many to many relationship mapping gazes with their fixations

  • fixation_id → id referencing a fixation
  • event_time → id referencing a particular raw gaze data point

calibration Table:

Table used to contain a full calibration and information

  • calibration_id → unique id to represent a calibration activity as a Unix timestamp (generated by iTrace)

calibration_point Table:

Table used to contain all calibration point data provided by the tracker

  • calibration_point_id → unique id representing a specific point used for calibration (generated by iTrace)
  • calibration_id → id referencing a given instance of a calibration event
  • calibration_x and calibration_y → horizontal and vertical position being used for the calibration by the tracker

calibration_sample Table:

Table used to contain samples used to determine calibration for a calibration point

  • calibration_point_id → id referencing a given calibration point
  • left_x and right_x → horizontal position of the left and right eye observed by the tracker
  • left_y and right_y → vertical position of the left and right eye observed by the tracker
  • left_validation and right_validation → Validation of left eye data

ide_context Table:

Table used to contain information pertaining to an IDE used during a session

  • event_time → id referencing a recorded gaze event
  • time_stamp → Unix timestamp when the data was processed by the IDE plugin
  • ide_type → name of the IDE plugin providing the data
  • gaze_type → name of the file being observed
  • gaze_target_type → file type (extension) being observed
  • source_file_path , source_file_line and source_file_col → path, line, and column of the source file being observed
  • editor_line_height → height of a line set in the editor
  • editor_font_height → height of the font set in the editor
  • editor_line_base_x and editor_line_base_y → base x and y positions of the line in the editor
  • source_token_typeWORK IN PROGRESS
  • source_token_xpath → XPath navigating to the token in the srcML version of the source code
  • source_token_syntactic_context → syntactic context of the token (represented as a hierarchy)

web_context Table:

Table used to contain information pertaining to a web browser used during a session WORK IN PROGRESS

  • event_time → id referencing a recorded gaze event
  • browser_type → browser use to capture plugin data
  • url → URL of the site being observed
  • tag → HTML web element tag

files Table:

Table containing information on those files who's data has been added to the database already

  • file_hash → hash value for imported iTrace XML data file
  • file_full_path → path of the iTrace XML data imported

participant Table:

Table containing participant ids

  • participant_id → anonymous id for the participant