UNIVERSIT`A DEGLI STUDI DI TRENTO “TOUCHING DANTE”: A

Transcription

UNIVERSIT`A DEGLI STUDI DI TRENTO “TOUCHING DANTE”: A
UNIVERSITÀ DEGLI STUDI DI TRENTO
FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI
Master of Science in Computer Science
Thesis
“TOUCHING DANTE”: A PROXIMITY-BASED
PARADIGM FOR TABLETOP BROWSING
prof. Antonella de Angeli
Co-advisor: prof. Massimo Zancanaro
Advisor:
Candidate:
Silvia Bordin
ACADEMIC YEAR
2010 - 2011
First of all, I would like to thank the I3 unit at Fondazione Bruno Kessler for giving
me the opportunity to have a rich, hands-on experience in a stimulating, collaborative
and friendly environment, the team of Practix for always being available for
suggestions and technical support, and the users who participated in the prototype
evaluation.
Then, I would like to thank my family: in spite of all the hard times, they were always
there for welcoming me back home and pushing me to do my best.
I would like to thank Andrea, for always hugging me when I most needed it.
I would like to thank the “pious women”, my sisters during these years at university: I
will never forget our happy, insane moments together.
Finally, I would like to thank all the people I met during Erasmus for showing me
how vast and variegated the world is, and all the people I met during university for
sharing this path of growth.
ii
Contents
1
Introduction
1
2
Related work
2.1 Natural User Interfaces . . . . . . . . . . . . . . . . . . . . .
2.2 Interactive tabletops . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Collaborative information exploration in public spaces
2.2.2 Collaborative learning . . . . . . . . . . . . . . . . .
2.3 Information visualization and visual analytics . . . . . . . . .
2.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
2
2
3
4
5
5
6
3
Towards a proximity-based paradigm
3.1 A case study: Dante’s Inferno . . . . . . . . . . . . . . . . . . . . . .
3.2 The design procedure . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Implemented principles of interaction design . . . . . . . . . . . . . .
10
10
11
12
4
The prototype
4.1 Tabletop devices . . . . . . . . . . . . . . . . . . . . .
4.1.1 Microsoft Surface . . . . . . . . . . . . . . . .
4.2 The platform . . . . . . . . . . . . . . . . . . . . . .
4.3 Technicalities . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Inheritance of controls . . . . . . . . . . . . .
4.3.2 Card snapping to the text page . . . . . . . . .
4.3.3 Data serialization . . . . . . . . . . . . . . . .
Extracting dialogs . . . . . . . . . . . . . . .
4.4 Problems encountered . . . . . . . . . . . . . . . . . .
4.4.1 Dynamic dimensions . . . . . . . . . . . . . .
4.4.2 Ambiguities: coordinates and dimension setting
4.4.3 Incomplete customizability of components . .
4.4.4 Special effects . . . . . . . . . . . . . . . . .
4.4.5 Data cleanup . . . . . . . . . . . . . . . . . .
19
19
19
21
21
23
25
29
29
33
33
33
34
35
35
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
Evaluation
5.1 Co-discovery learning . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Semi-structured interview . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Attrak-Diff2 questionnaire . . . . . . . . . . . . . . . . . . . . . . .
36
37
39
42
6
Conclusions and future work
44
Bibliography
47
iv
Chapter 1
Introduction
This thesis stems from what learned and experimented during my internship by the I3
unit of the Fondazione Bruno Kessler in Trento, Italy. The main contribution is the
design of a proximity-based interaction paradigm for browsing complex information.
The paradigm builds on the intrinsic peculiarities of interactive tabletops, namely their
physical spatial dimension, direct-touch input modality and affordance for multi-user
interaction. In order to assess the validity of such proposal, I sought a topic that could
be addressed by a prototypical application aimed at a realistic public setting. After
some research, I chose Dante’s Inferno, due to the complexity, vastity and universality
of such writing; furthermore, previous research had already made available partiallystructured data about the relationships between characters.
The prototype application was evaluated by four couples of users, so as to qualitatively
assess whether the interaction paradigm would help users in browsing a collection of
data collaboratively. Preliminary results are encouraging: user studies confirmed that
the proposed paradigm can be easily understood, that it is perceived as simple while
still engaging, that it allows for collaborative learning while not forcing it, and that it
helps highlighting and remembering connections among data.
Future directions for this work include the integration of users’ suggestions in the
prototype (especially in light of the considerations about the need to bridge the current
adaptation phase to touch-enabled devices), the application of the paradigm to different
settings (both public and business) and the extension of the concept of proximity also
to tag-recognizable objects.
1
Chapter 2
Related work
This chapter presents the related work which provides the grounding for my contribution. I will first of all introduce Natural User Interfaces, which can in particular be
applied on interactive tabletops. I will then go more in detail about how interactive
tabletops placed in public spaces can facilitate collaborative information exploration
and learning. Furthermore, I will provide a brief introduction to information visualization and visual analytics. In conclusion, I will present some examples of software that
are close to what developed for the present thesis.
2.1
Natural User Interfaces
This thesis can be contextualized within the realm of Natural User Interfaces, one of
the most recent and interesting evolutions in computing and human-computer interaction. A Natural User Interface provides “a clear and enjoyable path to unreflective
expertise in its use. It makes skilled behavior seem natural in both learning and expert
practice” [35]. In other words, Natural User Interfaces allow users to feel right from the
start that “their performance is ideal and that it seems effortless and graceful” [35], i.e.
they are immediately and continuously successful and rewarded. Furthermore, Natural User Interfaces “promise to reduce the barriers to computing still further, while
simultaneously increasing the power of the user, and enabling computing to access still
further niches of use” [35].
In this context, the word natural refers to “the user’s behavior and feeling during the
experience” of interaction; direct, multi-touch devices such as the tabletop can be considered as natural input interfaces since, for instance, they remove the intermediate
layer of control devices such as mouse and keyboard and exploit several types of human memory. In fact, tabletops provide a physical space for the user to organize information and require physical gestures to be operated: such combination has been widely
2
acknowledged to reinforce the persistence of learned information. The overall goal of
Natural User Interfaces is indeed to leverage “the potential of modern technologies to
better mirror human capabilities” [35].
It is paramount to realize that, in order to take full advantage of the capabilities provided by this new paradigm, it does not suffice to convert or wrap designs targeted at
traditional GUIs, nor does mimicking some other experience, even if it is familiar to
the user. Rather, it is better to understand what the unique features of Natural User Interfaces are and in which niches they best fit in, by integrating technologies and design
that rely on natural gestures that can be quickly discovered [5]. To this end, this thesis
proposes a new interaction paradigm to be used at a tabletop interface.
2.2
Interactive tabletops
Multi-user multi-touch tabletop displays are becoming more and more affordable and
widely available: therefore, interest has been growing towards their “potential to support natural simultaneous interaction of multiple individuals with digital materials”
[28]. Tabletop displays combine a large, shareable display area with a physical arrangement that leverages both on the well-established experience humans have in collaborating around tables and on the fluid, dynamic interaction that takes place in such
context [33]. Furthermore, such a configuration promotes discussion and interaction
among peers by providing equal access and shared ownership over the activity at hand.
As stated in [23], such social benefits combined with the productivity advantages of
computing can be applied to a variety of settings: for instance, Microsoft Surface,
the tabletop platform addressed by the present thesis, is admittedly targeted at entertainment in public places or in commercial settings; interactive tabletops have started
appearing in restaurants or bars; some studies, such as [19], have investigated their
impact in a business setting, and so forth.
As claimed in [30], “where it is considered desirable for a group to participate in
collaborative activities that involve using and creating an assortment of representations
[...], then horizontal interactive surfaces that closely couple the resources used and
created during the various activities are most effective”. In fact, the study described
in the article highlights that cohesive collaboration is enticed by tabletop displays, as
they provide the following benefits:
• a shared representation of data the group can refer to and which facilitates contribution of all members to problem solving;
• the support for more fluid interaction, given by the tight coupling of the information to be accessed to their graphical representation;
3
• a physical surface affording easy role swapping, which encourages users to put
forward alternatives for discussion.
Furthermore, the technology of interactive tabletops can enable even users with little if
no computer experience (for instance, the elderly) to begin interaction with computing
technology quickly and in a satisfying way [12].
2.2.1
Collaborative information exploration in public spaces
The capability of tabletops to augment information exploration and analysis, and their
increasing affordability suggests that they are very likely to become commonplace in
several settings in the near future. For instance, they might help domain experts in their
workplace. As an example, let us think of business analysts looking at the trends in
financial data, or at biologists analysing the outcomes of laboratory experiments. They
are also increasingly available in public spaces, such as libraries or museums, thus
conveying information in an interactive and potentially engaging way while leveraging
on their ease of use [20].
In this thesis I focus on interaction in public spaces, where the goal is to “attract
people’s attention, draw them closer to the installation and promote lightweight information exploration that leads to serendipitous discoveries, some reflection on the
presented data and/or active discussion of this data with peers” [20]. This situation
is aimed at an audience whose socio-cultural background, interests, and level of acquaintance with technology can be highly diverse and unpredictable. Moreover, a key
point is in the serendipity of the interaction. Such audience typically does not have any
clearly defined questions to pose to the system, nor has it specific goals with respect to
it: rather, it is willing to explore information mostly based on spontaneous interest.
These considerations clearly point out that “interaction techniques need to be designed
with a walk-up-and-use scenario in mind” [20]: users are not likely to read lengthy
or complex instructions to operate the installation, but will rather try to figure out by
themselves how to do it in an occasional and possibly single interaction experience,
which should thus provide immediate and rewarding feedback.
Another fundamental feature of the public spaces scenario is group interaction and, in
particular, its orientation towards social, collaborative exploration of data: users are
likely to explore visualizations in parallel (especially in the case of groups of people
not knowing each other), possibly sharing their insights also verbally from time to
time. As a result, a large amount of research has been devoted to investigating how
interactive tabletops could be integrated into a didactical setting, i.e. in collaborative
learning.
4
2.2.2
Collaborative learning
As defined in [13], the goal of computer-supported collaborative learning (CSCL) is to
“design software tools and collaborative environments that facilitate social knowledge
construction via a valuable assortment of methodologies, theoretical and operational
definitions, and multiple structures”.
Several studies proved the effectiveness of shared tabletop interfaces in supporting collaborative learning. According to [10], such benefit is clearer if we consider not only
the outcome of the learning per se, but also how tabletop-facilitated collaboration affects the learning process: it is widely agreed that such technology “is enjoyable to use,
promotes playfulness, can encourage equity of participation and can lead to learning”
[10] and that the coupling of verbal and physical interaction both with the machine and
with other users can boost remembrance and favors exploration and discussion.
One way to foster around-the-table collaboration is the implementation of cooperative
gestures. These are defined in [24] as “interactions where the system interprets the
gestures of more than one user as contributing to a single, combined command”. They
can be used in multi-user interaction techniques to “enhance users’ sense of teamwork,
increase awareness of important system events, facilitate reachability and access control” and so forth.
2.3
Information visualization and visual analytics
Another area that contributed to the development of the present thesis is visual analytics, which, as stated in [21], can be defined as “an iterative process that involves
information gathering, data preprocessing, knowledge representation, interaction and
decision making” and which aims at gaining insight into a problem described by a
vast amount of heterogeneous and possibly contradictory or incomplete data by trying
to combine automatic analysis methods with human intuition and background knowledge.
Visual analytics is a branch of the more general field of information visualization,
which concerns the communication of abstract, relevant data through the use of interactive interfaces; its goals are mainly the execution of either confirmatory or exploratory analysis and the efficient and effective presentation of obtained results. One
of the first examples of a system implementing collaborative visual analytics is Cambiera [19], developed for a tabletop display and supporting the analysis of large text
documents collections; by providing a shared space, it combines both the benefits of
face-to-face interactions and of artefact-centered information sharing.
5
2.4
Examples
An example of interactive tabletop application allowing to explore a network of information is mæve [26]. It is in many ways similar to the prototype developed for this
thesis: in fact, mæve is an interactive system which aimed at enhancing the discovery
of architectural projects presented at the Entryville student competition in the 2008
Venice Biennale.
As described in [2], each exhibit is described in a paper card marked with a tag; such
cards can then be placed on an interactive tabletop, which can recognize their tags
and present a concept network consisting of related projects, metadata and mutually
shared concepts as can be seen in figure 2.2. This representation is also proposed on a
supplemental wall projection, enriched with further media and text displays: the whole
configuration can be seen in figure 2.1. As a result, this tangible system allows users
to easily explore both the unifying themes of the exhibition and the individual features
of the various architectural projects: this promotes an informal, playful learning that
reinforces remembrance and provides an overview of the exposition, while at the same
time affording the development of social interaction.
An evaluation study has demonstrated that mæve and its innovative spatial setup provide a new browsing experience to users, “by combining tangible interaction, complex
visualization and collaborative data examination”, and invite them to interact with the
system without posing barriers or demanding too much concentration.
6
Figure 2.1: The setting of mæve.
Figure 2.2: A screenshot of the relations among architectural projects shown by mæve.
7
Similar objectives were addressed by the ImpulsBauhaus installation [1], which aimed
at the discovery and exploration of background information in the context of an exhibition about the artists belonging to the Bauhaus movement. The overall setting,
shown in figure 2.3, is similar to that of mæve. In particular, the installation shows
biographical information about such artists, linking them in a sort of social network;
furthermore, it exploits the potentialities of augmenting objects through mobile technology and tag recognition as shown in figure 2.4.
Figure 2.3: The setting of ImpulsBauhaus.
8
Figure 2.4: A screenshot of the relations among artists shown by ImpulsBauhaus.
However, more research is needed to investigate whether new interaction paradigms
would be more suitable to ease and improve user experience on Natural User Interfaces
in the public spaces scenario. This is the niche this thesis aims at, by proposing a new
interaction paradigm that will be described in detail in chapter 3.
9
Chapter 3
Towards a proximity-based paradigm
This chapter addresses the main contribution of the present thesis, that is the design
of an innovative paradigm of interaction. This piece of work was sketched during
my internship by the I3 unit at Fondazione Bruno Kessler in Trento, Italy. The main
idea of this paradigm relates to activation of interactive elements induced by physical
proximity: while users browse the interface, new information is revealed as they move
items near to each other. Moreover, the semantics of proximity and thus the effect
produced differ according to the nature of the items involved in the interaction.
3.1
A case study: Dante’s Inferno
The context in which the interaction paradigm has been instantiated has been suggested
by the availability of an ontology describing the characters of Dante Alighieri’s Inferno
and the relationships linking them. The KDD-Lab of the National Center for Research
(CNR), directed by prof. Amedeo Cappelli, aimed at making explicit and implicit concept relations emerge from a manually annotated XML version of the whole text of the
Commedia. Here, the dialog, topological, political and even linguistic relations between characters were highlighted by domain experts and composed in a sort of social
network. Such database identifies 66 characters and the dialogs that occur between
pairs of them; furthermore, the ontology provides biographical and literature information not only about them, but also about characters that are just mentioned in the text.
The knowledge mining process is described in [8], while the subsequent “application
of network analytics and visualization” is presented in [9].
10
Figure 3.1: The social networks built in [9]
As shown in [9], the KDD-Lab adopted a visual analytics methodology to represent the
multidimensional social network extracted: namely, a directed graph. Their goal was
in fact to provide organized access to the data to scholars and in general specialized
users, allowing them to have a simultaneous overview of Dante’s text, knowledge and
time. However, the amount of information and the effort required for gathering it
are enormous and it would be worthwhile to share these also with casual users, for
instance in a public library or in an exhibition about Dante and his Commedia: a niche
for taking advantage of the low barrier of Natural User Interfaces therefore emerges.
3.2
The design procedure
The design is the result of an iterative process based on prototype refinement, which
combined what was learned from a literature review, an overview of similarly-targeted
applications and the available data about Dante’s Inferno. The design was immediately
oriented to the realization of a multi-user interface, so as to exploit the affordances of
tabletops; however, since the targeted device (referenced in chapter 4) was not capable
of detecting the author of each touch, cooperative gestures were not integrated in the
design.
At first, the visualization approach outlined in [9] was considered, drafting an initial
design and interface based on graphs. However, it soon became clear that it would be
better to exploit the peculiarities of the target interactive tabletop more in depth: therefore, some low-fidelity paper prototypes were produced trying to take this into account.
11
Following this path, a different design emerged, more oriented towards interaction with
user-recognizable objects and built on top of the spatial capabilities provided by the
tabletop.
With subsequent refinements of the design, also informed by further literature examination and a deeper investigation on tabletop-based applications, higher-fidelity prototypes were produced in Adobe Illustrator and Microsoft Expression Design. Finally, as
the design converged to a stable version, a proper application began to be developed:
it will be described more in detail in chapter 4.
3.3
Implemented principles of interaction design
The main concept around which the whole design revolves is that of proximity: the
reactions of the system are triggered by the user justaposing the elements she can
interact with. Following is a description of the design which highlights how Norman’s
principles were implemented [27]. The corresponding medium-fidelity prototypes will
also be presented.
In the standby state (figure 3.2), a page reading the first canto of the Inferno is shown
together with some objects that suggest how it is possible to interact with it, i.e. cards
representing the most famous characters of the writing and a handle for the opening
of an additional panel. This choice has been inspired by the principle of visibility, i.e.
making evident to the user what the state of the system is and what action it is possible
to perform.
Feedback to user actions is given, as mentioned, in response to proximity, namely by
applying a sort of magnetism metaphor to elements. For instance, a card drawn near the
central page snaps to it (figure 3.3), highlighting the first dialog in which the character
represented in the card speaks. Each snapped card is associated with a different color
(3.4), which is used to both highlight the lines of the related character in the text and
frame the card itself: this enforces the principle of consistency.
12
Figure 3.2: The initial screen.
Figure 3.3: One card snapped to the page.
13
Figure 3.4: Two cards snapped to the page.
When a new card is snapped to the text, any previously snapped card is repelled in
case the character shown in it does not speak with the former character within the
whole writing; this suggests to the user that the two figures are somehow mutually
exclusive. Such behavior enforces the constraints principle: constraints prevent the
users from doing what they are not allowed to. Other examples of the implementation
of this principle are that elements not related to each other are not activated by mutual
proximity nor provide any feedback to the user and so do non-manipulation-enabled
elements as well.
On top of the screen there is a handle bar which affords dragging (figure 3.5). Affordances are about what is active or can be manipulated in the interface; more precisely,
they are attributes of an object that allow people to know how to use it [31]. In the case
of screen-based interfaces, we talk about ”perceived affordances, which are essentially
learned conventions”. When dragged downwards, the bar opens a panel containing selectors (figure 3.6), i.e. elements representing a category of characters. Such selectors
(which can be clearly distinguished visually from the usual cards) can be dragged in
and out of the container panel.
14
Figure 3.5: The handle bar.
Figure 3.6: The selector panel opened.
Furthermore, when a selector is drawn near a card, the magnetism metaphor is applied once again: if the character has some relation with the category represented, an
additional panel slides out of the card (figure 3.7) presenting information on such relation (for example, the political career of the character, or the poem it occurs in, or the
family it belonged to, and so forth).
Figure 3.7: A card interacting with a selector.
15
In all of these actions, the lights provide an important feedback that an active element
has a lit border that allows to tell active and inactive elements apart.
A special widget is structured as a contacts book (figure 3.8) in order to provide access
to characters directly through their name, rather than through the various categories.
The user can then select the name of a character and the related card pops out at the
bottom of the screen.
Figure 3.8: The contacts book.
Cards and selectors are the two main kinds of manipulation-enabled controls available
in the system, each with a homogeneous, recognizable look-and-feel. Furthermore,
the content of the central page can be scrolled by touching. The background is not
manipulation-enabled instead and is not responsive to the interaction with other elements, except for a special area at the bottom which is sensitive to card dropping
(figure 3.9). In fact, cards about characters suggested by the system pop out from this
area and float around here: the user can either choose to drag them upwards, in the
main interaction area, or to ignore them, in which case the cards disappear beyond the
table border after a while. The user can also return to this area the cards she wishes to
eliminate from the table.
16
Figure 3.9: The dropping area.
On top of the verses displayed, there is a header indicating which canto is currently being shown (figure 3.10). By touching such header, a popup list of all cantos will open;
each of them can then be selected with a new touch and the page will automatically
scroll up to the chosen canto.
Figure 3.10: The canto selector header.
17
Finally, for what concerns the overall layout of the application, we have that since
the central element is the page containing the text of the Commedia, the system has
been designed so as to provide a fixed orientation. In a way, this disrupts one of the
advantages of using a tabletop, namely accessibility from all sides, but at the same time
it favors readability. Furthermore, layout and spacing of items have been informed by
reviewed literature about visual analytics, even though the typical scenarios in which
the latter is applied usually involve much larger amounts of data than those at hand.
It is worth noticing that the design is not intrinsically collaborative: for instance, there
is no action which necessarily requires at least two users to collaborate in order to
perform it. This choice was made to take advantage of a larger variety of use case
scenarios: a user might not be willing to collaborate with others, or there might not
be anyone else to collaborate with; nonetheless, such a user could use the application
all the same. In contrast, it is conjectured that the commonly accepted affordance for
collaboration of tabletops will naturally foster spontaneous cooperation in the case of
two or more users that are willing to engage in a shared interaction.
18
Chapter 4
The prototype
In this chapter I will present the prototype software that was developed so as to allow
a user evaluation of the proposed design.
4.1
Tabletop devices
Direct multi-touch tables are “surfaces on which input sensing and output displays are
superimposed, and on which multiple touches can be detected simultaneously” [32].
Some of them use capacitive touch sensing: for example, Mitsubishi’s Diamond Touch
[4] can also identify which user is touching which particular location on the surface;
others rely on computer vision techniques. Their unifying trait, however, is the support
of direct-touch and gesture-based interactions.
4.1.1
Microsoft Surface
The prototype developed for this thesis targets Microsoft Surface 2.0 [3], a surface
computing platform provided by Microsoft which combines both a touch-enabled operating system and a dedicated hardware by Samsung. The current version, on which
the prototype has also been tested, consists of a 40” LED backlit LCD display with an
integrated PC running Windows 7. The PixelSense technology [6] relies on infrared
sensors and on computer vision to recognize touches and objects placed on top of the
display. With respect to its previous version, which was equipped with cameras, Microsoft Surface 2.0 is thus a much thinner table; furthermore, the interactive display
can even be mounted vertically, thus broadening the number of scenarios in which it
can be used.
19
Microsoft Surface has been explicitly designed for use in public, possibly commercial
settings by several users at once, providing the capability of sharing information and
without requiring specific previous knowledge to operate it. It was chosen as target
platform because it was available at Practix, one of FBK’s spin-offs with which the I3
unit has tight relations, and it was more advanced, reliable and vividly-colored than
the camera-equipped unit possessed by the I3 unit.
Figure 4.1: Microsoft Surface 2.0.
Figure 4.2: Interaction around the tabletop.
20
4.2
The platform
The prototype has been developed under the .NET 4.0 framework, exploiting the capabilities of the graphical library Windows Presentation Foundation (WPF). Furthermore, the Microsoft Surface SDK 2.0 has been included in the Visual Studio 2010 IDE
to handle touches and manipulations in order to take advantage of the capabilities of
Microsoft Surface. The code has been written in C# for the part concerning the logic
and in the XAML markup language for the graphical part, with some exceptions that
will be described in next section.
Microsoft Surface SDK includes an Input Simulator which converts mouse clicks into
touches: this allowed developing the prototype on an ordinary non-touch enabled laptop, without requiring the constant availability of the proper tabletop (kindly provided
by Practix, http://www.practix.net).
4.3
Technicalities
Here follow some screenshots of how the mockups introduced in chapter 3 evolved
into the prototype application.
Figure 4.3: The main screen.
21
Figure 4.4: The main screen on the tabletop.
Figure 4.5: Some details: the address book, the canto selector and the open selector panel.
22
Figure 4.6: Card snapping.
In this section I am going to present some of the most relevant solutions found to
implementation issues.
4.3.1
Inheritance of controls
In WPF, controls typically consist of two complementary parts: the graphical part is
written in XAML, a dedicated markup language, whereas the business logic is written
in C# in the so-called code-behind. However, a control created in this way cannot be
extended by further controls. My idea was that of creating different types of cards:
some plain ones, some with an image of the character, and some allowing an extension
showing additional information about the character. Since however their base behavior
and appearance was to be the same, I wanted to be able to reuse code.
23
Figure 4.7: The different types of card implemented.
Therefore, I created a base control called ICarta, entirely written in C#: this seems to
be the only way to allow inheritance of controls. ICarta is extended by CartaBase,
which represents a plain card with no image attached, and by CartaExtended,
where an image of the character (usually one of the most famous ones) is shown. The
former control is written as a regular one, partly in XAML and partly in C#; the latter is entirely written in C# instead, as it is further extended by CartaExpandable:
such control features both an image and a resizing capability so as to show information
about the related character once the card is snapped to a selector.
24
4.3.2
Card snapping to the text page
ICarta mainly contains the code that manages the manipulation of a card. In WPF,
a manipulation fires the events presented in figure 4.8:
Figure 4.8: Events fired by a manipulation in WPF.
The ManipulationStarting event occurs as the user places the finger on the object. At this point, it is possible to set the ManipulationContainer: the position
of the manipulation will be considered as relative to this element from then on. In
ICarta, the corresponding handler method has been implemented as follows:
Listing 4.1: ManipulationStarting method
1
2
3
4
5
6
7
8
9
10
11
12
v o i d Carta_ManipulationStarting ( o b j e c t sender , ManipulationStartingEventArgs e )
{
/ / t h e c a n v a s l y i n g a t t h e b a s e o f t h e whole a p p l i c a t i o n
e . ManipulationContainer = t h i s . CartaParent ;
/ / t h e b o r d e r of t h e c a rd i s h i g h l i g h t e d so as t o p r o v i d e
/ / t h e u s e r w i t h f e e d b a c k a b o u t t h e f a c t t h a t an a c t i o n r e c o g n i z e d
/ / by t h e s y s t e m i s a c t u a l l y t a k i n g p l a c e
t h i s . CardBorder . BorderBrush = C o l o r M a n a g e r . Instance . BASE_GLOW ;
e . Handled = t r u e ;
}
25
The ManipulationStarted event occurs next and reports the origin of the manipulation. Then, as long as the user moves the touched object on the screen, the
ManipulationDelta event is fired multiple times, recording the kind of transformation applied to the object. In ICarta, the corresponding handler method has been
implemented as follows:
Listing 4.2: ManipulationDelta method
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
v o i d Carta_ManipulationDelta ( o b j e c t sender , ManipulationDeltaEventArgs e )
{
/ / rotation is applied
t h i s . rotation . CenterX = t h i s . center . X ;
t h i s . rotation . CenterY = t h i s . center . Y ;
t h i s . rotation . Angle += e . DeltaManipulation . Rotation ;
/ / translation is applied
translate ( e . DeltaManipulation . Translation . X , e . DeltaManipulation . Translation . Y ) ;
/ / t h e p o s i t i o n o f t h e c e n t e r o f t h e c a r d i s computed w i t h r e s p e c t t o
/ / t h e c o o r d i n a t e s system of t h e c e n t r a l page
Point relativePos = t h i s . TranslatePoint ( t h i s . center , Pagina ) ;
/ / i f t h e c a r d i s above t h e dr opping a r e a
i f ( relativePos . Y > 0 && relativePos . Y < t h i s . referenceHeight )
/ / i f t h e c a r d i s on t h e l e f t o f t h e p a g e
i f ( relativePos . X <= 0 )
{
i f ( relativePos . X <= − t h i s . wider_proximity )
{
/ / i f t h e c a r d i s w i t h i n a ” s e n s i t i v e ” a r e a around t h e page
i f ( t h i s . isAttached )
{
/ / t h e c a r d i s b e i n g d e t a c h e d from t h e p a g e ;
/ / t h e h i g h l i g h t i n g o f t h e c a r d i t s e l f and o f t h e
/ / l i n e s p r o n o u n c e d by t h e c h a r a c t e r i n t h e t e x t i s t u r n e d o f f
t h i s . Pagina . theContent . HighlightOff ( t h i s ) ;
t h i s . isAttached = f a l s e ;
}
}
/ / as the card approaches the
/ / t h u s p r o v i d i n g a cue about
/ / p o s s i b i l i t y of snapping i t
e l s e i f ( t h i s . rotation . Angle
page , i t i s f o r c e d t o be h o r i z o n t a l ,
the
t o t h e page
! = 0 ) t h i s . rotation . Angle = 0 ;
}
// if
else if
{
//
if
{
t h e c a r d i s on t h e r i g h t o f t h e p a g e
( relativePos . X >= t h i s . referenceWidth )
i f t h e c a r d i s w i t h i n a ” s e n s i t i v e ” a r e a around t h e page
( relativePos . X >= t h i s . referenceWidth + t h i s . wider_proximity )
i f ( t h i s . isAttached )
{
/ / t h e c a r d i s b e i n g d e t a c h e d from t h e p a g e ;
/ / t h e h i g h l i g h t i n g o f t h e c a r d i t s e l f and o f t h e
26
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/ / l i n e s p r o n o u n c e d by t h e c h a r a c t e r i n t h e t e x t i s t u r n e d o f f
t h i s . Pagina . theContent . HighlightOff ( t h i s ) ;
t h i s . isAttached = f a l s e ;
}
}
/ / a s t h e c a r d a p p r o a c h e s t h e page , i t i s f o r c e d t o be h o r i z o n t a l ,
/ / t h u s p r o v i d i n g a cue about t h e
/ / p o s s i b i l i t y of sn apping i t t o t h e page
e l s e i f ( t h i s . rotation . Angle ! = 0 ) t h i s . rotation . Angle = 0 ;
}
e . Handled = t r u e ;
}
/ / t h i s method s e t s t h e c o o r d i n a t e s o f t h e c a r d
i n t e r n a l v o i d translate ( d o u b l e x , d o u b l e y )
{
Canvas . SetTop ( t h i s , Canvas . GetTop ( t h i s ) + y ) ;
Canvas . SetLeft ( t h i s , Canvas . GetLeft ( t h i s ) + x ) ;
}
No inertia is applied on the cards. Finally, the ManipulationCompleted event
signals that the manipulation is completed and that the object is still. In ICarta, the
corresponding handler method has been implemented as follows:
Listing 4.3: ManipulationCompleted method
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
v o i d Carta_ManipulationCompleted ( o b j e c t sender , ManipulationCompletedEventArgs e )
{
/ / the border takes a neutral color
i f ( ! t h i s . isAttached ) t h i s . CardBorder . BorderBrush = cm . TEXT_COLOR ;
Point relativePos = t h i s . TranslatePoint ( t h i s . center , Pagina ) ;
/ / p r o x i m i t y t o t h e page i s checked so as t o d e t e r m i n e whether t o snap t h e c a r d
t h i s . CheckProximityToPage ( relativePos ) ;
/ / p r o x i m i t y t o a s e l e c t o r i s checked so as t o d e t e r m i n e whether t o snap t h e c a r d
ProximityManager . Instance ( ) . handleProximity ( t h i s ) ;
e . Handled = t r u e ;
}
p r i v a t e v o i d CheckProximityToPage ( Point relativePos )
{
/ / i f the card i s not in the dropping area
i f ( relativePos . Y > 0 )
/ / i f t h e c a r d i s w i t h i n t h e h e i g h t of t h e page
i f ( relativePos . Y < t h i s . referenceHeight )
{
/ / i f t h e c a r d i s on t h e l e f t o f t h e p a g e
i f ( relativePos . X <= 0 )
{
/ / i f t h e c a r d i s c l o s e enough t o t h e p a g e
i f ( relativePos . X >= − t h i s . snapping_proximity )
{
27
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/ / s n a p t h e c a r d and h i g h l i g h t t e x t p r o n o u n c e d by t h e c h a r a c t e r , i f any
translate ( Math . Abs ( relativePos . X − ( t h i s . Width / 2 ) ) − Width , 0 ) ;
t h i s . Pagina . theContent . HandleSnapping ( t h i s ) ;
}
}
/ / i f t h e c a r d on t h e r i g h t o f t h e p a g e
e l s e i f ( relativePos . X >= t h i s . referenceWidth )
{
/ / i f t h e c a r d i s c l o s e enough t o t h e p a g e
i f ( relativePos . X <= t h i s . referenceWidth + t h i s . snapping_proximity )
{
/ / s n a p t h e c a r d and h i g h l i g h t t e x t p r o n o u n c e d by t h e c h a r a c t e r , i f any
translate(−relativePos . X + t h i s . referenceWidth + ( t h i s . Width / 2 ) ,
0) ;
t h i s . Pagina . theContent . HandleSnapping ( t h i s ) ;
}
}
}
e l s e / / drop the card
t h i s . BeginAnimation ( Canvas . TopProperty , disappearingAnimation ) ;
}
ProximityManager is a class dedicated to detecting the proximity of a card to a
selector: since both elements can be freely rotated and moved by the user, this has
required writing a sort of customized hit testing method, which can account for the
closest selector to a given card (or vice versa), can give precedence to the snapping
of a card to the central page and, when snapping a card to the relevant selector, can
position it in a suitable way to let the card expand and show its information about
the character without messy overlappings. The code of the class is rather lengthy and
complex, therefore it will not be reported here.
28
4.3.3
Data serialization
One of the most laborious parts of the development consisted in the reading, loading
and management of the XML data provided by the KDD-Lab. A preliminar cleaning
phase was first of all required so as to standardize the structure of such files: it will be
described more in detail in section 4.4.5. Once clean data was available, it was first
loaded by class XmlManager; here follows a sample code for the reading and loading
of one of the XML files used.
Listing 4.4: Xml loading
1
2
3
4
5
XmlDocument inferno_text = new XmlDocument ( ) ;
X m l R e a d e r S e t t i n g s xrs = new X m l R e a d e r S e t t i n g s ( ) ;
xrs . D t d P r o c e s s i n g = D t d P r o c e s s i n g . Parse ;
XmlReader reader = XmlReader . Create ( ” f i l e s / i n f e r n o . xml ” , xrs ) ;
inferno_text . Load ( reader ) ;
XML files provided input data to associate characters with categories, to extract dialogs
from the text and to obtain contextual information about the characters. Let us see how
each of these actions was performed in turn.
Extracting dialogs
Once KDD-Lab’s document about dialogs was loaded, it had to be traversed so as
to read in memory the extremes of each dialog. To this end, a jagged array called
dialogo nodes was created: it has 34 rows, one for each canto in the Inferno,
and each row contains as many XmlNodeList items as the dialogs occurring in the
corresponding canto, defined by the numbers of their initial and ending verses.
Listing 4.5: Dialog reading
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
XmlNodeList dialoghi_canti = cnr_document . SelectNodes ( ” / T e s t o 1 / T a b l e / D i a l o g a t o /
Dialoghi ” ) ;
f o r e a c h ( XmlNode canto_xml i n dialoghi_canti )
{
XmlNode num_canto_roman = canto_xml . SelectSingleNode ( ” C a n t o ” ) ;
s t r i n g roman = num_canto_roman . InnerText ;
i n t index = generic_utils . RomanToInt ( roman ) ;
XmlNodeList dialogs = canto_xml . SelectNodes ( ” D i a l o g o ” ) ;
i n t i = 0;
dialogo_nodes [ index − 1 ] = new XmlNodeList [ dialogs . Count ] ;
f o r e a c h ( XmlNode dialogo i n dialogs )
{
dialogo_nodes [ index − 1 ] [ i ] =
dialogo . SelectNodes ( ” S e g m e n t i D i a l o g o / Segmento ” ) ;
i++;
}
}
29
Such information now has to be converted into a suitable format to be displayed in the
scrolling content of the central text page. Each fragment of text (corresponding either
to the lines of a character or of the narrator) has to be first of all reconstructed as proper
text from its bounding verses obtained at the previous step and then annotated with the
name of the character that possibly pronounces it. Meanwhile, names of characters are
saved into an auxiliary set called personaggi. All such information, including the
text of each fragment, are saved in objects called HighlightTextBlocks: they
extend regular TextBlocks by adding the possibility of dynamically coloring (i.e.
highlighting) the background of parts of the text.
Listing 4.6: Dialog serialization
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/ / t h i s method i s c a l l e d o n c e f o r e a c h c a n t o , whose i n d e x i s i
i n t e r n a l L i s t <H i g h l i g h t T e x t B l o c k > GetCantoHTB ( i n t i )
{
L i s t <H i g h l i g h t T e x t B l o c k > result = new L i s t <H i g h l i g h t T e x t B l o c k >() ;
XmlNodeList [ ] segments = dialogo_nodes [ i ] ; / / s e g m e n t s i n c a n t o i
/ / i n d e x o f t h e v e r s e where t h e n e x t s e g m e n t i s s u p p o s e d t o b e g i n
i n t current_start = 1 ;
s t r i n g text = ” ” ;
C o l o r M a n a g e r cm = C o l o r M a n a g e r . Instance ;
f o r e a c h ( XmlNodeList segmentList i n segments )
f o r e a c h ( XmlNode segment i n segmentList )
{
H i g h l i g h t T e x t B l o c k tmp ;
/ / i n i t i a l v e r s e of t h i s segment
i n t verso_start = i n t . Parse ( segment . SelectSingleNode ( ” T e s t o / I n i z i o /
V e r s o ” ) . InnerText ) ;
/ / ending v e r s e of t h i s segment
i n t verso_end = i n t . Parse ( segment . SelectSingleNode ( ” T e s t o / F i n e / V e r s o ”
) . InnerText ) ;
/ / i n i t i a l v e r s e of next segment
i n t next_start = ( segment . NextSibling ! = n u l l ) ? i n t . Parse ( segment .
NextSibling . SelectSingleNode ( ” T e s t o / I n i z i o / V e r s o ” ) . InnerText ) :
verso_end ;
/ / ending v e r s e of next segment
i n t next_end = ( segment . NextSibling ! = n u l l ) ? i n t . Parse ( segment .
NextSibling . SelectSingleNode ( ” T e s t o / F i n e / V e r s o ” ) . InnerText ) :
verso_end ;
i f ( current_start ! = verso_start )
{
/ / the n a r r a t o r says something before another c h a r a c t e r speaks :
/ / s u c h p i e c e o f t e x t i s c o n v e r t e d i n t o an a u t o n o m o u s
/ / HighlightTextBlock
tmp = new H i g h l i g h t T e x t B l o c k ( ) ;
tmp . CantoIndex = i ;
tmp . NomePersonaggio = n u l l ;
tmp . NomeInterlocutore = n u l l ;
tmp . FilterText = n u l l ; / / t e x t t o be h i g h l i g h t e d
/ / whole t e x t o f t h e H i g h l i g h t T e x t B l o c k
tmp . RawText = t h i s . GetFullText ( i , current_start , verso_start ) ;
tmp . FilterTextBackground = Brushes . Transparent ;
tmp . FilterTextForeground = cm . TEXT_COLOR ;
30
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
result . Add ( tmp ) ;
current_start = verso_start ;
}
/ / a c h a r a c t e r speaks i n t h e c u r r e n t segment
tmp = new H i g h l i g h t T e x t B l o c k ( ) ;
tmp . CantoIndex = i ;
s t r i n g nome = segment . SelectSingleNode ( ” C h i P a r l a ” ) . InnerText ;
/ / t h e name o f t h e c h a r a c t e r i s a d d e d t o t h e g l o b a l H a s h S e t o f names
i f ( ! personaggi . Contains ( nome ) ) personaggi . Add ( nome ) ;
tmp . NomePersonaggio = nome ;
s t r i n g interlocutore = segment . SelectSingleNode ( ” AChi ” ) . InnerText ;
/ / t h e name o f t h e i n t e r l o c u t o r i s a l s o s a v e d
tmp . NomeInterlocutore = interlocutore ;
text = t h i s . GetFullText ( i , verso_start , verso_end + 1 ) ;
tmp . FilterText = text ;
tmp . RawText = ( ( next_start == verso_end + 1 | | segment . NextSibling ==
n u l l ) ) ? text : text + t h i s . GetFullText ( i , verso_end + 1 ,
next_start ) ;
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
tmp . FilterTextBackground = Brushes . Transparent ;
tmp . FilterTextForeground = cm . TEXT_COLOR ;
/ / s a v e an a s s o c i a t i o n b e t w e e n t h e name o f e a c h c h a r a c t e r and t h e
/ / H i g h l i g h t T e x t B l o c k s i n which i t s p e a k s
i f ( ! page . htb_dictionary . ContainsKey ( nome ) )
{
HTBListWrapper list = new HTBListWrapper ( ) ;
list . Add ( tmp ) ;
page . htb_dictionary . Add ( nome , list ) ;
}
else
{
HTBListWrapper list ;
i f ( page . htb_dictionary . TryGetValue ( nome , o u t list ) ) list . Add ( tmp
);
page . htb_dictionary [ nome ] = list ;
}
result . Add ( tmp ) ;
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
i f ( segment . NextSibling == n u l l )
{
/ / t h e r e a r e no o t h e r d i a l o g s i n t h i s segment ,
/ / so t h e remainder of t h e t e x t i s saved as t h e n a r r a t o r s p a r t
tmp = new H i g h l i g h t T e x t B l o c k ( ) ;
tmp . CantoIndex = i ;
tmp . NomePersonaggio = n u l l ;
tmp . NomeInterlocutore = n u l l ;
tmp . FilterText = n u l l ;
tmp . RawText = t h i s . GetFullText ( i , current_start , t h i s . CountVerses
(i) + 1) ;
tmp . FilterTextBackground = Brushes . Transparent ;
tmp . FilterTextForeground = cm . TEXT_COLOR ;
result . Add ( tmp ) ;
}
else
current_start = next_start ;
}
r e t u r n result ;
}
31
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/ / t h i s method c o u n t s t h e number o f v e r s e s i n a g i v e n c a n t o
p r i v a t e i n t CountVerses ( i n t canto )
{
XmlNode node = inferno_text . SelectSingleNode ( ” i n f e r n o / c a n t o [ @numero =
canto + 1 ) + ” ] ” ) ;
XmlNode ultima_terzina = node . LastChild ;
XmlNode ultimo_verso = ultima_terzina . LastChild ;
r e t u r n i n t . Parse ( ultimo_verso . Attributes [ ” numero ” ] . Value ) ;
}
” + (
//
t h i s method g e t s t h e t e x t b e t w e e n two g i v e n i n d e x e s o f v e r s e s w i t h i n a
specified canto
p r i v a t e s t r i n g GetFullText ( i n t canto , i n t index_start , i n t index_next_start )
{
s t r i n g result = ” ” ;
s t r i n g query = ” i n f e r n o / c a n t o [ \ @numero = ” + ( canto + 1 ) + ” ] ” ;
XmlNode terzina_corrente = inferno_text . SelectSingleNode ( query ) ;
query = ” ∗ / v e r s o [ \ @numero = ” + index_start + ” ] ” ;
XmlNode verso_corrente = terzina_corrente . SelectSingleNode ( query ) ;
terzina_corrente = verso_corrente . ParentNode ;
i n t tmp = index_start ;
w h i l e ( tmp < index_next_start )
{
result += verso_corrente . InnerText + ” \n ” ;
i f ( tmp % 3 == 0 )
{
result += ” \n ” ;
terzina_corrente = terzina_corrente . NextSibling ;
verso_corrente = terzina_corrente . FirstChild ;
}
e l s e verso_corrente = verso_corrente . NextSibling ;
tmp++;
}
r e t u r n result ;
}
As soon as a card is snapped to the page, all the HighlightTextBlocks associated
to the related character is retrieved in the whole text and the background of the lines
that character pronounces is highlighted.
32
4.4
Problems encountered
In this closing section I am going to point out the most relevant issues that arose during development. The implementation phase turned out to be very time-consuming
for at least two major reasons: first of all, the prototype needed to have a variety of
features and to be stable enough so as to ensure a realistic user evaluation; secondly,
the technology framework was totally new to me and it required a rather long training
phase. In fact, it seems that the framework was targeted to professional developers
who can afford spending a long time training or who have a substantial previous experience with Microsoft’s technologies. This is probably due to Microsoft Surface
being evidently not (yet?) a consumer product because of its price and dimensions.
Nonetheless, having released a public SDK could be interpreted as a way of lowering
such barriers: rather, it turns out that the framework is often hard to understand, when
not puzzling, as I will describe here.
4.4.1
Dynamic dimensions
At the beginning of the implementation, it was not clear what the target device would
be, i.e. whether a sort of home made interactive tabletop available at the I3 unit or a
more recent full-HD Microsoft Surface; moreover, the resolution of the screen of the
laptop I was working on was even different. Therefore, the whole software had to be
parametrized so that the size of all elements drawn would be dynamically computed
base on the device where it was running. The framework however does not easily
provide this capability: as a result, a significant amount of code had to be written so as
to allow such device independence.
4.4.2
Ambiguities: coordinates and dimension setting
The Microsoft Surface SDK provides two different ways of setting the coordinates
of an element on the basic layout. One way is to act on the manipulation applied to
the object, i.e. by registering a TransformGroup on the object and then setting its
translation, rotation and scaling in the ManipulationDelta handler method. Alternatively, one can set the value of the attached properties Bottom, Left, Top or Right
of the Canvas object, as it happens in the translate method presented in listing
4.2. One of the two methods has to be chosen at the beginning and to be maintained
consistently throughout the development.
33
Moreover, apparently complementary methods, such as Canvas.SetBottom and
Canvas.SetTop for instance, cannot actually be mixed in the code: rather, only
one of them has to be used consistently. In fact, let us consider the following snippet
drawn from the code-behind of an hypothetical user control:
Listing 4.7: Coordinates setting
1
2
Canvas . SetTop ( t h i s , 1 0 0 . 0 ) ;
C o n s o l e . WriteLine ( Canvas . GetBottom ( t h i s ) ) ;
The first instruction places the control at a distance of 100 pixels from the top edge
of the window. Intuitively, the second instruction should print out a value that corresponds to the height of the window minus 100. Instead, it outputs a value of NaN.
For what concerns dimensions, it happens that every control has several properties
that relate to its width or height: for example, MinWidth, MaxWidth, Width,
ActualWidth. In particular, Width is usually set in the constructor, but it can be
overwritten by an automatically computed value of ActualWidth after the loading is completed. Hence, in order to set dynamic dimensions, one has to specify
ActualWidth and ActualHeight of both controls and their children in the Load
event handler instead of taking advantage of the XAML capabilities.
It is possible that these design choices are due to the fact that Microsoft Surface is
a specific device with a given resolution and that one should only use absolute dimensions when specifying controls, or let the system take care of the arrangement of
items. Nonetheless, this behavior is in my opinion rather confusing, overly restrictive
and often complicates the code to be written.
4.4.3
Incomplete customizability of components
Not all of the components can be freely customized. For example, the LibraryBar
component (used to implement the scrollable list of selectors in the categories panel)
caused me a lot of trouble as its width would stay fixed to 300 pixels no matter what
my specifications were in the code or in the XAML, while I wanted it to span over
the whole width of the screen. It turned out that, in order to apply such a simple
change, I would need to rewrite the whole template of the control (which, by the way,
cannot be done on a LibraryBar). In the end, I discovered that it sufficed to set
the MinWidth of the component to obtain the desired behavior. As said before, this
redundancy of similar properties and these poorly documented restrictions often get
in the way of the developer, who has to take care of a considerable amount of details
instead of focusing on the core flow of the application.
34
4.4.4
Special effects
Another unclear point concerns the capability of the software platform to actually
support the special effects it provides to the developer. Initially, I had designed the
feedback related to a snapped card as a colored halo; furthermore, each object had a
shadow drawn by the system. Performance rapidly degraded as the number of objects
on the scene grew, so I had to replace the colored halo with a solid colored border and
dynamically-created shadows with images.
I have some experience in game development and have often used dedicated game
engines: in such context, the system takes care of most of the necessary optimizations
in a way that is transparent to the developer, so as to obtain smooth executions even
in presence of shadows or large numbers of polygons and on ordinary hardware. It is
possible that this led me to overlook the performance issue at first. However, I found
it rather disappointing that the framework promises several capabilities which then
cannot be properly managed at runtime.
4.4.5
Data cleanup
Another issue that arose but that is not related to the technology in use was that of
data cleanup. As described in section 3.1, XML data was provided by the KDD-Lab
of the National Centre for Research. Upon a closer examination, however, it turned
out that there were several flaws in the files. For example, the documents were not
always well-formed, with open or incorrectly nested tags. Moreover, categories were
not homogeneous but often referred to only one character and thus had to be redefined
and assigned manually. Then, the ontology did not always provide information about
the life of actually speaking characters, but rather on cited ones that did not occur in
the text; this required me to gather some biographical and historical information (on
the most famous characters, at this prototypical stage) and insert it manually in the
system. This is the reason why the interaction with selectors was implemented only
for few cards.
Most importantly, only the initial and ending verses of dialogs were provided, but not
the proper text which had to be integrated by external sources. This process proved to
be time-consuming indeed, but was essential to the implementation of a functioning
prototype.
35
Chapter 5
Evaluation
Here follows the description of how a qualitative evaluation has been performed by
means of observational studies. Four pairs of users were asked to test the system in
turn according to the following procedure:
• users were first asked to freely explore the system for five minutes (co-discovery
learning): the aim of this part was to gain insights on their mental model of the
interaction and of the interface using the think aloud technique.
• then, three tasks were posed: users had to find the dialog between Dante and
Ulisse, then the prophecy that Farinata degli Uberti makes about Dante’s upcoming exile, and finally some information about Dante’s political career as a
Guelph.
Users have been videorecorded while interacting with the table. Such phase was
followed by the administration of an Attrak-Diff2 questionnaire [15] and by a semistructured interview with both the members of each pair.
Users came from different backgrounds. Two pairs of them consisted of master students, with little or no previous experience with touch-screen devices and definitely
no experience with interactive tabletops. Other two pairs of users consisted of professionals aged between 26 and 40, with some experience in the field of interface design,
all well acquainted with touch-screen devices and with at least a basic experience with
interactive tabletops. This allowed to have different perspectives on the design, which
were reflected in the evaluation outcomes.
In the remainder of this section I will present the findings resulting from the codiscovery phase, from the semi-structured interview and from the Attrak-Diff2 questionnaire.
36
5.1
Co-discovery learning
In general, it appears that most functionalities were discovered by users within the first
two or three minutes and that the behavior of the system was well understood. Users
were all able to complete given tasks within a very short time and, from what revealed
by the think aloud technique, built an overall correct mental model of how the application works and of what information it offers. It also seems that the user experience,
after some initial moments of frustration that will be clarified below, developed in a
satisfactory way: one pair of users even kept interacting with the application for as
long as 45 minutes after the study terminated.
In the remainder of this section I will discuss the so-called critical incidents that were
noted during the co-discovery phase. At first, users often tried to put two cards one on
top of the other, or a card on top of the text page in order to obtain further information
(figure 5.1).
Figure 5.1: Users trying to place a card on the text page.
37
Moreover, they tried (especially in the case of users not acquainted with touch devices)
to “double click” on the items expecting some reaction to occur. However, once users
realized that these inputs were not recognized by the system, they started trying to
drag items around. This suggests that there is some discrepancy between the users’
apparent mental model and the model proposed by the presented design: such point
will be addressed more in detail in next section.
Users often interpreted the sliding panel containing the selectors as a generic “drawer”,
in which they tried to put cards they wanted to dispose (figure 5.2).
Figure 5.2: Users trying to dispose the cards in the sliding panel.
In contrast, they were frequently puzzled by cards disappearing when drawn too close
to the bottom edge of the screen: often, this gesture was not intended to dispose the
cards, but rather to put them back into their initial position. It also happened that at
some point there were too many cards scattered around the tabletop, thus cluttering
the interface (figure 5.3), and users asked for a way of clearing the working space
altogether.
The most frequent difficulties concerned understanding how to use selectors (i.e. that
they could be attached to cards). Often, additional information obtained by snapping
a card to a selector were only discovered by chance and not intentionally. However,
this might be due to the fact that such behavior was implemented only for some of the
cards.
38
Figure 5.3: One example of interface cluttering.
Interestingly, some users interpreted the central text literally as a book and tried to
flip its pages to move through the text. All of them immediately grasped the meaning
of color codes used to differentiate characters’ lines. However, someone was puzzled
when dialogs spanned beyond the currently visible section of text and possibly only
the lines of one snapped characters appeared, especially if this happened the first time
users snapped cards to the page.
5.2
Semi-structured interview
The most interesting and rich findings resulted from semi-structured interviews, that
were carried out immediately after the user studies with the tabletop and involved both
participants at the same time. Several dimensions of the interaction paradigm and of
the interface were assessed during these interviews: first of all, whether the paradigm
was understandable and self-revealing; then, whether it helped users in discovering
and managing complex information, and whether the interface actually succeeded in
exploiting tabletop capabilities; finally, whether the overall design fostered collaboration.
In general, users agree on the fact that the interaction paradigm is pretty simple (one
of them even stated that it was “much simpler than expected”) and that most of the
functionalities can be discovered and understood after a few attempts. Particularly in
the case of users not acquainted with touch-screen devices, however, it was evident
39
that the GUI mental model is very strong and often conditions the way in which users
perceive new interactive environments, up to the point of hampering the interaction
itself. For instance, the very first action tried by some users to interact with the system
was double-tapping on a card, as mentioned above; some users also asked for explicit
“trashcans” in which cards could be disposed, or for more explicit cues about object
affordances (such as “visible scrollbars” or “little arrows”).
It is possible that as familiarity with similar devices increases, such mental model will
get more flexible; however, it seems that this is an issue which should be addressed
when designing for public spaces, at least in this phase in which interactive tabletops
are still not so common. Some of the more technically expert users even suggest that
some explicit instructions about usage should be placed near the tabletop so as to explain how interaction can take place (“they do not need to be long, as users are not
likely to read them, and I reckon it’s a ugly solution, but it might help unacquainted
users to overcome their initial fears”). I would like to add that, from the observations
drawn from these user studies, I got the impression that users can have two different
approaches to tabletops: some of them are familiar if not fluent with technologies and
thus not intimidated by them, and so they are not afraid of getting their hands on the
tabletop (“at last, you enter a museum and you can touch something! I’m fed up of all
those signs saying that you can’t touch this, you can’t touch that, and the glass display
cases. . . ”); some others perceive technology as something likely to crash or to make
them feel inadequate or dumb, and are thus rather reluctant to experiment. Therefore,
I considered it as a positive result when one of the “non-technical” users stated that
touch-mediated interaction with the text (“and with the characters”!) is more direct
and engaging as it “removes the barriers” created by the traditional mouse and keyboard. The same user also stated that such a system can contribute to “renovating the
image of the Commedia and making it closer to new generations”.
Users widely appreciated that functionalities are revealed with discovery, rather than
being all laid out at once. They say that this engages users, makes them curious and
pushes them to keep interacting with the system in order to find out more about its capabilities (“you get curious and want to know more about what it can do”). Moreover,
some users believe that one of the strengths of such a system is that it allows browsing
the text in unconventional ways, for instance by following the dialogs of a character
or the occurrences of a specific group of them, rather than through the traditional, sequential way of reading (“it allows for a stratification of information and for multiple
levels of detail”).
40
The majority of users states that the interface favors the organization of knowledge:
characters can be clustered according to several features, or they can be contextualized easily and with fast access to collateral information. Therefore, it is frequently
pointed out that another one of the main strengths of the system is its capability of
helping users not getting lost within the complexity of both the text and its context,
but rather focusing on the details they deem relevant. In particular, one of the users (a
law student) thinks that a similar system which allowed to browse the civil code would
be very useful in her field, as the latter is another vast and complex text where crosstopic connections are difficult to maintain (“I always have to group articles according
to their topic by hand. It is easy to forget something, and at the least producing the
schemes and searching them is very time-consuming. If I could browse the code with
a similar application, it would be much clearer”).
Users also appreciated the possibility of discovering less-known characters and of getting information about their background; they find this feature to be engaging and
attractive of users’ curiosity (“I find this Tesifone and then ask myself, who is Tesifone?
And I want to know more about it”; “I might realize that some character, or some
group of characters, speaks in more than one canto. I had not considered this aspect
before”). Interestingly, a few users state that the interface makes it easier to approach
a traditionally difficult text such as the Commedia because the text itself almost fades
in the background (“it becomes of secondary importance”), while the characters gain
a prominent position.
Technical users stated that the look-and-feel of the interface is “thoughtfully laid out”:
spatial sections serving different purposes can be clearly identified (with the possible
exception of the dropping area, as seen in previous section). Non-technical users stated
that the overall layout is unobtrusive and allows to focus on relevant details; some of
them believe that this is another element that facilitates the approach to the text, as
the interface looks “less intimidating” even though the tabletop might be unfamiliar.
Some users state that the overall color scheme attracts attention while not distracting
from the content of the application, and that it fits with the Commedia being an antique writing; some others argue that the colors are too soft, dark and unattractive. In
general, however, users agree that the use of images and colors, together with physical
gestures, helps persistence of learned information, eases recall and facilitates making associations and focusing on the parts that are most relevant to users at a certain
moment (“usually you have the text, which is already difficult in itself, and then it is
overwhelmed by all those notes, and you don’t want to read all of them, you are only
interested in some”). Furthermore, some users propose that a similar color code should
be used also to help identifying which characters belong to each category (“you might
put colored shapes both on the folder [the selector] and on the cards that are in it”).
41
In conclusion, let us consider the collaborative aspect of the design. One of the users
correctly points out that “there is no intrinsic need in the system for more than one
user”: he also adds that the only possible social aspect is due to the attempt of understanding how the system works. On the contrary, his partner argues that collaboration
is strongly afforded by the tabletop device and that collaborative discovery is more satisfying and “rewarding” than the individual one. Such latter observation is confirmed
by all of the “non-technical” users, who say that the tabletop itself strongly promotes
sharing and collaborative learning even though the software does not force them: users
are in fact “all at the same level”, without any of them being dominant as it would happen in a traditional personal computer setting. Moreover, one of them states that being
the Commedia a “neutral topic”, it does not inhibit communication even among casual
users who do not know each other, as it would often happen in a public setting, but
rather provides some hints about starting a conversation.
5.3
Attrak-Diff2 questionnaire
A more quantitative evaluation resulted from the administration of the Attrak-Diff2
questionnaire to all the participants to the user study. As explained in [15], this questionnaire tries to evaluate and compare the hedonic and pragmatic qualities of interactive products, thus trying to assess independently beauty and practical usability.
The questionnaire consists of several pairs of words representing opposite extremes;
the user can choose from seven possible gradations between such extremes. Pairs of
words are grouped into those concerning hedonic qualities (separating the two aspects
of stimulation and identity) and those concerning pragmatic qualities.
The Attrak-Diff2 questionnaire was administered as an Italian translation obtained
from its English version, as all participants in the study were Italian speakers and their
knowledge of English was in some cases not sufficient to ensure their understanding
of the questions. As suggested in [14], HQI, HQS and PQ scores were computed by
averaging the respective item values per participant; table 5.1 presents such results. In
table 5.2 below, further aggregated data obtained by averaging the scores over all the
participants are also shown to provide a more synthetical representation of results.
42
Table 5.1: HQI, HQS and PQ scores averaged per participant.
Participant
1
2
3
4
5
6
7
8
HQI
5.86
5.14
7.00
6.14
5.00
5.23
5.43
5.14
HQS
6.29
4.86
6.71
6.00
6.29
4.57
6.43
4.43
PQ
5.71
4.43
5.86
6.14
5.14
5.71
5.71
4.86
Beauty Goodness
7
6
6
6
7
7
7
7
5
6
5
6
6
7
6
6
Table 5.2: Aggregate values for HQI, HQS and PQ scores.
HQI
5.62
HQS PQ
5.70 5.45
Beauty Goodness
6.12
6.38
Following the interpretation suggested in [14], it appears that aggregate scores are
overall satisfactory from all points of view (recall that the higher the score, which can
range from 1 to 7, the more positive the evaluation for that quality). Users perceive a
good “capability of communicating identity to others” (HQI score) and a good degree
of “perceived novelty, stimulation and challenge” (HQS score); moreover, they also
perceive a good degree of usability (PQ score). This appears to be an encouraging
result. It might be worth investigating whether proposing a more polished application
prototype could affect the scores, in particular that one concerning pragmatic qualities,
and how.
43
Chapter 6
Conclusions and future work
This thesis has addressed the design of a proximity-based interaction paradigm for
browsing complex information which could build on the intrinsic peculiarities of interactive tabletops; this design has subsequently been evaluated with a user study carried
out on a prototypical application aimed at a public setting and presenting the relations
between characters in Dante’s Inferno. As seen in the previous chapter, user evaluations reported encouraging results which are summarized in the following.
User studies confirm that, after a brief initial phase of discovery, the interaction paradigm
is well understood and accepted. It is also confirmed that exploiting the intrinsic features of tabletops (spatiality, collaboration affordance and direct-touch manipulation)
favors the organization of notions, especially in case of a vast and complex knowledge
base. Categorization becomes in fact not only mental, but also spatial: furthermore,
involving gestures reinforces previously gained knowledge, as once again structuring
is not only mental but also involves physical movement.
This prerogative of spatiality, together with the low barriers for use of tabletops, may
favor the integration of such devices in several settings, both public and business, as
suggested by users themselves in section 5.2. Schools, or didactical settings in a broad
sense, might exploit such capabilities to reinforce learning, or to facilitate the connection of notions. Libraries and museums might profit from interactive tabletops by developing applications (such as the prototype presented here or as those cited in section
2.4) that highlight contextual or relational information about the exhibits. Spatiality
might very well be exploited also to analyze medical or business data, where relations
can easily be lost in the overwhelming amount of information.
44
User studies have also confirmed that the designed interface captures attention and
engages users, enticing them to continue interacting with the system so as to discover
all of its capabilities; they have also underlined the importance of carefully designing
such interface so as to further lower barriers for the use of tabletops.
Moreover, it appears that the social aspect of interaction emerges even though it is
not enforced by the design itself: this provides flexibility in the use of the system and
broadens the number of scenarios in which it can be applied. On the one hand in fact,
users can browse information also on their own, without forcing them to collaborate
if they are not willing to or forbidding them to use the application in case they do not
have companions; on the other hand, social interaction afforded by tabletops has been
demonstrated to take place all the same.
These findings sum up to a positive and encouraging evaluation of the proposed interaction paradigm for information browsing. Here follow some suggestions for further
improvement and extension:
• following users’ suggestions and considerations made in section 5.2 about this
transitory phase in which touch-enabled device are not yet familiar to everybody,
some additional cues about how to operate the system could be added, for example as a demonstrative video to be displayed on standby mode or as balloons
to be proposed in response to the first touches issued by some user.
• the prototype itself could be refined, mainly by having an expert adding more
background information about characters: this would allow to investigate further
how selectors are perceived and thus to perform a more thorough user study.
• a different target platform could influence the design. For instance, Mitsubishi’s
Diamond Touch [4], with its capability of detecting who issued each touch, could
allow the introduction of collaborative gestures, making the design more collaborative in nature.
• as hinted above, the capability of the interaction paradigm to highlight associations among data could be applied also to other contexts, i.e. to complex and
rather large knowledge bases. The required structuring of data can be described
in the common XML format: therefore, it can be realized also by non-IT people,
as it happened in the presented case study about Dante.
45
• the interface could be enhanced with audio, opening even further scenarios of
application: let us think, for instance, of the exploration of the musical production of classical composers.
• finally, in the proposed interaction paradigm space is physical, but manipulated
objects are still virtual. Implementing tag recognition could bring proximitybased interaction to a further level, thus integrating virtual and “real” space.
46
Bibliography
[1] Exhibition dedicated to the examination of the social networks of the Bauhaus
movement. http://vimeo.com/5333614.
[2] mæve installation website.
http://portal.mace-project.eu/
maeve/installation.php.
[3] Microsoft Surface website.
en/us/default.aspx.
[4] Mitsubishi’s diamond
DiamondTouch/.
http://www.microsoft.com/surface/
touch.
http://www.merl.com/areas/
[5] The Natural User Interface group. http://nuigroup.com/go/lite/.
[6] PixelSense technology. http://www.microsoft.com/surface/en/
us/pixelsense.aspx.
[7] A. Cappelletti, G. Gelmini, F. Pianesi, F. Rossi, and M. Zancanaro. Enforcing
cooperative storytelling: First studies. In Proceedings of the IEEE International
Conference on Advanced Learning Technologies, pages 281–285, Washington,
DC, USA, 2004. IEEE Computer Society.
[8] A. Cappelli, M. N. Catarsi, P. Michelassi, L. Moretti, M. Baglioni, F. Turini, and
M. Tavoni. Knowledge mining and discovery for searching in literary texts. In
Proceedings of the Third International Conference on Language Resources and
Evaluation, 2002.
[9] A. Cappelli, M. Coscia, F. Giannotti, D. Pedreschi, and S. Rinzivillo. The social
network of dante’s inferno. Leonardo, 44:246–247, June 2011.
[10] R. Fleck, Y. Rogers, N. Yuill, P. Marshall, A. Carr, J. Rick, and V. Bonnett.
Actions speak loudly with words: unpacking collaboration around the table. In
Proceedings of the ACM International Conference on Interactive Tabletops and
Surfaces, ITS ’09, pages 189–196, New York, NY, USA, 2009. ACM.
47
[11] D. Furniss, A. Blandford, and P. Curzon. Confessions from a grounded theory
phd: experiences and lessons learnt. In Proceedings of the 2011 annual conference on Human factors in computing systems, CHI ’11, pages 113–122, New
York, NY, USA, 2011. ACM.
[12] S. Gabrielli, S. Bellutti, A. Jameson, C. Leonardi, and M. Zancanaro. A singleuser tabletop card game system for older persons: General lessons learned from
an in-situ study, pages 85 –88. 2008.
[13] C. L. Z. Gress, M. Fior, A. F. Hadwin, and P. H. Winne. Measurement and
assessment in computer-supported collaborative learning. Comput. Hum. Behav.,
26:806–814, September 2010.
[14] M. Hassenzahl. The interplay of beauty, goodness, and usability in interactive
products. Hum.-Comput. Interact., 19(4):319–349, Dec. 2008.
[15] M. Hassenzahl, M. Burmester, and F. Koller. AttrakDiff: Ein Fragebogen zur
Messung wahrgenommener hedonischer und pragmatischer Qualität. In Mensch
& Computer 2003: Interaktion in Bewegung, pages 187–196, Stuttgart, Germany,
2003. B. G. Teubner.
[16] M. Hassenzahl and A. Monk. The Inference of Perceived Usability From Beauty.
Human-Computer Interaction, 25(3):235–260, 2010.
[17] K. Höök. User-centred design and evaluation of affective interfaces, pages 127–
160. Kluwer Academic Publishers, Norwell, MA, USA, 2004.
[18] S. Houde and C. Hill. What do prototypes prototype ? Current, 2:367381, 1997.
[19] P. Isenberg, D. Fisher, M. Ringel, M. Kori, and I. Mary. An exploratory study
of co-located collaborative visual analytics around a tabletop display. October,
pages 179–186, 2010.
[20] P. Isenberg, U. Hinrichs, M. Hancock, M. Tobiasz, and S. Carpendale. Information visualization on interactive tabletops in work vs. public settings. In Proc.
CoVIS 2009, 2009. Appeared in the Technical Reports series of the Department
of Media Informatics of the Ludwig-Maximilians-University of Munich, Germany in 2010.
[21] D. A. Keim, F. Mansmann, J. Schneidewind, J. Thomas, and H. Ziegler. Visual
data mining. chapter Visual Analytics: Scope and Challenges, pages 76–90.
Springer-Verlag, Berlin, Heidelberg, 2008.
48
[22] C. Leonardi, A. Albertini, F. Pianesi, and M. Zancanaro. An exploratory study
of a touch-based gestural interface for elderly. In Proceedings of the 6th Nordic
Conference on Human-Computer Interaction: Extending Boundaries, NordiCHI
’10, pages 845–850, New York, NY, USA, 2010. ACM.
[23] M. R. Morris. Designing tabletop groupware. In Adjunct Proceedings of the 18th
annual ACM Symposium on User Interface Software and Technology, 2005.
[24] M. R. Morris, A. Huang, A. Paepcke, and T. Winograd. Cooperative gestures:
multi-user gestural interactions for co-located groupware. In Proceedings of the
SIGCHI conference on Human Factors in computing systems, CHI ’06, pages
1201–1210, New York, NY, USA, 2006. ACM.
[25] M. R. Morris, J. O. Wobbrock, and A. D. Wilson. Understanding users’ preferences for surface gestures. In Proceedings of Graphics Interface 2010, GI
’10, pages 261–268, Toronto, Ont., Canada, Canada, 2010. Canadian Information Processing Society.
[26] T. Nagel, L. Pschetz, M. Stefaner, M. Halkia, and B. Müller. m&#230;ve — an
interactive tabletop installation for exploring background information in exhibitions. In Proceedings of the 13th International Conference on Human-Computer
Interaction. Part III: Ubiquitous and Intelligent Interaction, pages 483–491,
Berlin, Heidelberg, 2009. Springer-Verlag.
[27] D. Norman. The design of everyday things. Basic Books, 1988.
[28] A. M. Piper and J. D. Hollan. Tabletop displays for small group study: affordances of paper and digital materials. In Proceedings of the 27th international
conference on Human factors in computing systems, CHI ’09, pages 1227–1236,
New York, NY, USA, 2009. ACM.
[29] J. Ramey, T. Boren, E. Cuddihy, J. Dumas, Z. Guan, M. J. van den Haak, and
M. D. T. De Jong. Does think aloud work?: how do we know? In CHI ’06
extended abstracts on Human factors in computing systems, CHI EA ’06, pages
45–48, New York, NY, USA, 2006. ACM.
[30] Y. Rogers and S. Lindley. Collaborating around vertical and horizontal large
interactive displays: which way is best? Interacting with Computers, 16(6):1133
– 1152, 2004.
[31] Y. Rogers, H. Sharp, and J. Preece. Interaction Design: Beyond HumanComputer Interaction. John Wiley and Sons Ltd, 2002.
49
[32] K. Ryall, C. Forlines, C. Shen, M. R. Morris, and K. Everitt. Experiences with
and observations of direct-touch tabletops. In Proceedings of the First IEEE
International Workshop on Horizontal Interactive Human-Computer Systems,
pages 89–96, Washington, DC, USA, 2006. IEEE Computer Society.
[33] S. D. Scott, K. D. Grant, and R. L. Mandryk. System guidelines for co-located,
collaborative work on a tabletop display. In Proceedings of the eighth conference
on European Conference on Computer Supported Cooperative Work, pages 159–
178, Norwell, MA, USA, 2003. Kluwer Academic Publishers.
[34] O. Stock, M. Zancanaro, C. Koren, C. Rocchi, Z. Eisikovits, D. Goren-bar,
D. Tomasini, and P. T. Weiss. A co-located interface for narration to support
reconciliation in a conflict: initial results from jewish and palestinian youth. In
Proceedings of the twenty-sixth annual SIGCHI conference on Human factors
in computing systems, CHI ’08, pages 1583–1592, New York, NY, USA, 2008.
ACM.
[35] D. Wigdor and D. Wixon. Brave NUI World: Designing Natural User Interfaces
for Touch and Gesture. Morgan Kaufmann, 2011.
50