

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Overview &mdash; XDATA API 2.1.1 documentation</title>
    
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '2.1.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <link rel="top" title="XDATA API 2.1.1 documentation" href="index.html" />
    <link rel="next" title="Draper Activity Logging API Requirements" href="log_reqs.html" />
    <link rel="prev" title="Quick Start" href="getting_started.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="log_reqs.html" title="Draper Activity Logging API Requirements"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="getting_started.html" title="Quick Start"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">XDATA API 2.1.1 documentation</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="overview">
<h1>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h1>
<p>The purpose of this document is to outline the design and use of the Analytic Activity Logging API for software components built in the XDATA program. The API outlined in this document are designed to support the behavioral and physiological assessment (including eye tracking) of users as they interact with XDATA tools, in service of building a better understanding of how analyst’s make use of these tools. Through the development of a common activity logging API, we can ensure that the combined XDATA team generates uniform logging of user actions and intents. Figure 1 illustrates a planned XDATA analytic tool, with software components built by multiple program teams.</p>
<p>There are several uses of the Logging API that make an application- and component-independent scheme for activity logging valuable to all software components:</p>
<ul class="simple">
<li>Capturing observations for evaluation metrics</li>
<li>Capturing context for physiological assessment of XDATA tools</li>
<li>Capturing analytic interests for user or task modeling</li>
<li>Capturing analyst activity for workflow or process modeling and analysis</li>
<li>Capturing context (individual or community) for resource (data or compute) utilitization and optimization</li>
</ul>
<p>The vision for XDATA is that each component development team implements the proposed analytic activity logging scheme into their software component to facilitate the analysis of user workflow and the matching of measured physiological data to user and software actions using the collection of events logged from all components. Since XDATA teams are asked to implement this logging scheme, there is a desire to:</p>
<ol class="loweralpha simple">
<li>Make the implementation of this scheme as painless as possible.</li>
<li>Keep the scheme general enough that it supports the variety of teams’ software approaches.</li>
<li>Allow the scheme to collect specific details so that it can support the analysis of a wide variety of software.</li>
<li>Ensure the scheme is generally applicable to capturing analytic process and intent, so that the effort in implementing this logging API will have utility to performers outside of XDATA program requirements, and independent of any physiological assessment.</li>
</ol>
<p><a class="reference internal" href="#fig-diagram"><em>The following figure</em></a> illustrates the high-level architecture employed by this proposed API. In this architecture, each software component communicates to a logging server via XMLHttpRequests, simple JSON log messages describing the user’s interaction with each component. These messages are collected and processed to create a top-level analytic model of the user’s activity.</p>
<div class="figure" id="fig-diagram">
<a class="reference internal image-reference" href="_images/diagram.png"><img alt="diagram figure" src="_images/diagram.png" style="width: 333.5px; height: 346.5px;" /></a>
<p class="caption">The proposed API creates a common message passing interface that allows heterogeneous software components to communicate with an activity logging engine. This engine builds a model of the user’s activity over time.</p>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="getting_started.html"
                        title="previous chapter">Quick Start</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="log_reqs.html"
                        title="next chapter">Draper Activity Logging API Requirements</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="_sources/overview.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="log_reqs.html" title="Draper Activity Logging API Requirements"
             >next</a> |</li>
        <li class="right" >
          <a href="getting_started.html" title="Quick Start"
             >previous</a> |</li>
        <li><a href="index.html">XDATA API 2.1.1 documentation</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2014, Draper .
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
    </div>
  </body>
</html>