figure 3: the sense.us comment listing page. comment listings
display all commentary on visualizations and provide links to the
commented visualization views.
potentially relevant conversation can be introduced into the
exploration process. Meanwhile, comment listings and indications of recent posts may help users find views of interest,
making social activity a catalyst for data exploration.
3. 6. unobtrusive collaboration
Finally, while designing sense.us we also wished to follow
a common CSCW design guideline: collaborative features
should not impede individual usage.
17 Hence we did not
litter views with prior annotations or commentary. Rather,
commentary on a visualization is retrieved and displayed
unobtrusively on the right side of the screen and graphical
annotations are displayed “on demand” by the user.
4. imPlEmEntation notEs
While many aspects of sense.us rely on well-known techniques, this section provides implementation details for the
more complex features: application bookmarking, doubly
linked discussions, and graphical annotations.
4. 1. application bookmarking
Bookmarks of visualization state are implemented as a set of
name–value pairs of visualization parameters, listed using
standard URL query syntax. Normally, changing the browser’s URL will force a reload of the page to prevent security
attacks. Because a reload would cause a disruptive restart
of the visualization applet, the bookmark URL encodes the
query string as a page anchor—using the URL ‘#’ delimiter instead of the standard ‘?’ delimiter—so that the URL
updates in place. Furthermore, updated URLs are put into
the browser’s history stack, so that the browser’s back and
forward buttons have their usual behavior. When a visualization URL is updated due to use of the back or forward buttons or manual typing, scripts send the updated URL to the
applet, which is parsed and used to update the current visualization state.
4. 2. Doubly linked discussions
The bookmarking mechanisms alone are not sufficient to
support doubly linked discussions. To see the challenge
in linking from a view state back to all comments on that
view, consider the visualization in Figure 1. When a user
types “military” into the top search box, they see all jobs
whose titles begin with the string “military.” On the other
hand, if they type only “mili,” they see all titles beginning
with “mili”—but this turns out to be the identical set of
jobs. These different parameter settings result in different
URLs, and yet provide exactly the same visualization view.
More generally, parameter settings may not have a one-to-one mapping to visualization states. To attach discussions
to views we therefore need an indexing mechanism which
identifies visualization states that are equivalent despite
having different parametric representations.
We solve this indexing problem by distinguishing
between two types of parameters: filter parameters and
view parameters. Filter parameters determine which data
elements are visible in the display. Rather than index filter
parameters directly, we instead index the filtered state of
the application by noting which items are currently visible,
thereby capturing the case when different filter parameters give rise to the same filtered state. View parameters,
on the other hand, adjust visual mappings, such as selecting a normalized or absolute axis scale. Our current system
indexes the view parameters directly. The bookmarking
mechanism implements this two-part index by computing a probabilistically unique hash value based on both the
filtered state and view parameters. These hash values are
used as keys for retrieving the comments for the current
4. 3. annotation
The graphical annotations take the form of vector graphics drawn above the visualization. When a new comment is
submitted, the browser requests the current annotation (if
any) from the visualization applet. The annotation is saved
to an XML format, which is then compressed using gzip and
encoded in a base 64 string representation before being
passed to the browser. When comments are later retrieved
from the server, the encoded annotations are stored in the
an annotation be displayed, the encoded annotations are
passed to the applet, decoded, and drawn.
To gain a preliminary understanding of asynchronous collaboration practices around visualizations, we ran exploratory user studies of the sense.us system. The studies had
two specific goals: first, to better understand emergent usage
patterns in social data analysis; second, to learn how well
the various features of the sense.us system supported this
analysis. We ran the studies in two different parts: a pair of
controlled lab studies and a 3-week live deployment on the
IBM corporate intranet. To analyze the data, we employed