<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Criteria, Challenges and Opportunities for Gesture Programming Languages</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lode Hoste</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Beat Signer Web</string-name>
          <email>bsignerg@vub.ac.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Information Systems Engineering Lab</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Vrije Universiteit Brussel Pleinlaan 2</institution>
          ,
          <addr-line>1050 Brussels</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <fpage>22</fpage>
      <lpage>29</lpage>
      <abstract>
        <p>An increasing number of today's consumer devices such as mobile phones or tablet computers are equipped with various sensors. The extraction of useful information such as gestures from sensor-generated data based on mainstream imperative languages is a notoriously difficult task. Over the last few years, a number of domain-specific programming languages have been proposed to ease the development of gesture detection. Most of these languages have adopted a declarative approach allowing programmers to describe their gestures rather than having to manually maintain a history of event data and intermediate gesture results. While these declarative languages represent a clear advancement in gesture detection, a number of issues are still unresolved. In this paper we present relevant criteria for gesture detection and provide an initial classification of existing solutions based on these criteria in order to foster a discussion and identify opportunities for future gesture programming languages.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>With the increasing interest in multi-touch surfaces (e.g. Sony
Tablet, Microsoft Surface or Apple iPad), controller-free
sensors (e.g. Leap Motion, Microsoft Kinect or Intel’s
Perceptual SDK) and numerous sensing appliances (e.g. Seeeduino
Films and Nike+ Fuel), developers are facing major
challenges in integrating these modalities into common
applications. Existing mainstream imperative programming
languages cannot cope with user interaction requirements due to
the inversion of control where the execution flow is defined
by input events rather than by the program, the high
programming effort for maintaining an event history and the difficulty
of expressing complex patterns.</p>
      <p>EGMI 2014, 1st International Workshop on Engineering Gestures for Multimodal
Interfaces, June 17 2014, Rome, Italy.</p>
      <p>Copyright © 2014 for the individual papers by the papers’ authors. Copying permitted
only for private and academic purposes. This volume is published and copyrighted by
its editors.
http://ceur-ws.org/Vol-1190/.</p>
      <p>
        For example, commercial multi-touch hardware has evolved
from simple two-finger support to multi-user tracking with up
to 60 fingers1. Similarly, commercial depth sensors such as
the Microsoft Kinect were introduced in 2010 and supported
the tracking of 20 skeletal joints (i.e. tracking arms and limbs
in 3D space). Nowadays, numerous depth sensors such as the
Leap sensors or the DepthSense cameras by SoftKinetic also
provide short-range finger tracking. Recently, the Kinect for
Windows supports facial expressions and the Kinect 2
supports heart beat and energy level tracking. This rapid
evolution of novel input modalities continues with announcements
such as the Myo electromyography gesture armband [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] and
tablet computers with integrated depth sensors, fingerprint
scanning and eye tracking.
      </p>
      <p>In this paper, we consider a gesture as a movement of the
hands, face or other parts of the body in time. Due to the high
implementation complexity, most gesture recognition
solutions rely on machine learning algorithms to extract
gestural information from sensors. However, the costs of
applying machine learning algorithms are not to be underestimated.
The capture and annotation of training and test data requires
substantial resources. Further, the tweaking of the correct
learning parameters and analysis for overfitting require some
expert knowledge. Last but not least, one cannot decisively
observe and control what has actually been learned.
Therefore, it is desired to have the possibility to program gestures
and to ease the programming of gestural interaction. We
argue that research in software engineering abstractions is of
utmost importance for gesture computing.</p>
      <p>
        In software engineering, a problem can be divided into its
accidental and essential complexity [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Accidental complexity
relates to the difficulties a programmer faces due to the choice
of software engineering tools and can be reduced by
selecting or developing better tools. On the other hand, essential
complexity is caused by the characteristics of the problem to
be solved and cannot be reduced. The goal of gesture
programming languages is to reduce the accidental complexity
as much as possible. In this paper, we define a number of
criteria to gain an overview about the focus of existing gesture
programming languages and to identify open challenges to be
further discussed and investigated.
13M Multi-Touch Display C4667PW
      </p>
    </sec>
    <sec id="sec-2">
      <title>MOTIVATION AND RELATED WORK</title>
      <p>
        Gesture programming languages are designed to support
developers in specifying their gestural interaction requirements
more easily than with general purpose programming
languages. A domain-specific language might help to reduce
the repetitive boilerplate that cannot be removed in existing
languages as described by Van Cutsem2. General purpose
programming languages such as Java sometimes require an
excessive amount of constructs to express a developer’s
intention which makes them hard to read and maintain. Van
Cutsem argues that languages can shape our thought, for
instance when a gesture can be declaratively described by its
requirements rather than through an imperative
implementation with manual state management. A gesture programming
language can also be seen as a simplifier where, for example,
multiple inheritance might not be helpful to describe gestural
interaction. Finally, domain-specific languages can be used as
a law enforcer. Some gesture languages, such as Proton [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ],
disallow a specific sequence of events simply because it
overlaps with another gesture definition. It further enables the
inference of properties that help domain-specific algorithms to
obtain better classification results or reduced execution time.
Midas [
        <xref ref-type="bibr" rid="ref22 ref7">7, 22</xref>
        ] by Hoste et al., the Gesture Description
Language (GDL) by Khandkar et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], GeFormt by
Kammer et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and the Gesture Description Language (GDL)
by Echtler et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] form a first generation of declarative
languages that allow programmers to easily describe multi-touch
gestures rather than having to imperatively program the
gestures. This fundamental change in the development of
gestures moved large parts of the accidental complexity—such as
the manual maintenance of intermediate results and the
extension of highly entangled imperative code—to the processing
engine.
      </p>
      <p>With these existing solutions, gestures are described in a
domain-specific language as a sequence or simultaneous
occurrences of events from one or multiple fingers. The
modularisation and outsourcing of the event matching process
paved the way for the rapid development of more complex
multi-touch gestures. With the advent of novel hardware
such as the Microsoft Kinect sensor with a similar or even
higher level of complexity, domain-specific solutions quickly
became a critical component for supporting advanced
gestural interaction. The definition of complex gestures involves
a number of concerns that have to be addressed. The goal of
this paper is to enumerate these criteria for gesture
programming languages and to provide an overview how existing
approaches focus on different of these criteria.</p>
    </sec>
    <sec id="sec-3">
      <title>CRITERIA</title>
      <p>We define a number of criteria which can shape (1) the choice
of a particular framework, (2) the implementation of the
gesture and (3) novel approaches to solve open issues in
gesture programming languages. These criteria were compiled
based on various approaches that we encountered over the
last few years, also including the domains of machine
learning or template matching which are out of the scope of this
paper. We aligned the terminology, such as gesture spotting
2http://soft.vub.ac.be/ tvcutsem/invokedynamic/node/11
and segmentation, and performed an indicative evaluation of
nine existing gesture languages as shown in Figure 1. For
each individual criterion of these nice approaches we provide
a score ranging from 0 to 5 together with a short
explanation which can be found in the online data set. A score of 1
means that the approach could theoretically support the
feature but it was not discussed in the literature. A score of 2
indicates that there is some initial support but with a lack
of additional constructs that would make it useful. Finally,
a score in the range of 3-5 provides an indication about the
completeness and extensiveness regarding a particular
criterion. Our data set, an up-to-date discussion as well as
some arguments for the indicative scoring for each criterion
of the different approaches is available at http://soft.vub.ac.
be/ lhoste/research/criteria/images/img-data.js. We tried to
cluster the approaches based on the most up-to-date
information. However, some of the criteria could only be
evaluated subjectively and might therefore be adjusted later based
on discussions during the workshop. An interactive
visualisation of the criteria for each of the approaches can be
accessed via http://soft.vub.ac.be/ lhoste/research/criteria.
Note that the goal of this assessment was to identify general
trends rather than to draw a conclusive categorisation for each
approach.</p>
    </sec>
    <sec id="sec-4">
      <title>Software Engineering and Processing Engine</title>
      <p>The following criteria have an effect on the software
engineering properties of the gesture implementation.
Furthermore, these criteria might require the corresponding features
to be implemented by the processing engine.</p>
      <sec id="sec-4-1">
        <title>Modularisation</title>
        <p>By modularising gesture definitions we can reduce the effort
to add an extra gesture. In many existing approaches the
entanglement of gesture definitions requires developers to have
a deep knowledge about already implemented gestures. This
is a clear violation of the separation of concerns principle,
one of the main principles in software engineering which
dictates that different modules of code should have as little
overlapping functionality as possible. Therefore, in modular
approaches, each gesture specification is written in its own
separate context (i.e. separate function, rule or definition).</p>
      </sec>
      <sec id="sec-4-2">
        <title>Composition</title>
        <p>Composition allows programmers to abstract low-level
complexity by building complex gestures from simpler building
blocks. For instance, the definition of a double tap gesture
can be based on the composition of two tap gestures with a
defined maximum time and space interval between them. A
tap gesture can then be defined by a touch down event shortly
followed by a touch up event and with minimal spatial
movement in between. Composition is supported by approaches
when a developer can reuse multiple modular specifications
to define more complex gestures without much further effort.</p>
      </sec>
      <sec id="sec-4-3">
        <title>Customisation</title>
        <p>
          Customisation is concerned with the effort a developer faces
to modify a gesture definition in order that it can be used in
a different context. How easy is it for example to adapt the
existing definition of a gesture when an extra condition is
required or the order of events should be changed? For
graphical programming toolkits, the customisation aspect is
broadened to how easy it is to modify the automatically generated
code and whether this is possible at all. Note that in many
machine learning approaches customisation is limited due to
the lack of a decent external representation [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-4">
        <title>Readability</title>
        <p>
          Kammer et al. [
          <xref ref-type="bibr" rid="ref12 ref13">13, 12</xref>
          ] identified that gesture definitions are
more readable when understandable keywords are used. They
present a statistical evaluation of the readability of various
gesture languages which has been conducted with a number
of students in a class setting. In contrast to the
readability, they further define complexity as the number of syntactic
rules that need to be followed for a correct gesture
description, including for example the number of brackets, colons
or semicolons. Languages with a larger number of syntactic
rules are perceived to be more complex. However, it should
be noted that the complexity of a language as defined by
Kammer et al. is different from the level of support to form
complex gestures and we opted to include their definition
under the readability criterion.
        </p>
      </sec>
      <sec id="sec-4-5">
        <title>Negation</title>
        <p>Negation is a feature that allows developers to express a
context that should not be true in a particular gesture definition.
Many approaches partially support this feature by requiring a
strict sequence of events, implying that no other events should
happen in between. However, it is still crucial to be able to
describe explicit negation for some scenarios such as that there
should be no other finger in the spatial neighbourhood or a
finger should not have moved up before the start of a gesture.
Other approaches try to use a garbage state in their gesture
model to reduce false positives. This garbage state is
similar to silence models in speech processing and captures
nongestures by “stealing” partial gesture state and resetting the
recognition process.</p>
      </sec>
      <sec id="sec-4-6">
        <title>Online Gestures</title>
        <p>Some gestures such as a pinch gesture for zooming require
feedback while the gesture is being performed. These
socalled online gestures can be supported in a framework by
allowing small online gesture definitions or by providing
advanced constructs that offer a callback mechanism with a
percentage of the progress of the larger gesture. Note that small
online gesture definitions are linked with the segmentation
criterion which defines that gestures can form part of a
continuous event stream without an explicit begin and end
condition.</p>
      </sec>
      <sec id="sec-4-7">
        <title>Offline Gestures</title>
        <p>Offline gestures are executed when the gesture is completely
finished and typically represent a single command. These
gestures are easier to support in gesture programming
languages as they need to pass the result to the application once.
Offline gestures also increase the robustness due to the ability
to validate the entire gesture. The number of future events
that can change the correctness of the gesture is limited when
compared to online gestures.</p>
      </sec>
      <sec id="sec-4-8">
        <title>Partially Overlapping Gestures</title>
        <p>Several conditions of a gesture definition can be partially
or fully contained in another gesture definition. This might
be intentional (e.g. if composition is not supported nor
preferred) or unintentional (e.g. if two different gestures start
with the same movement). Keeping track of multiple partial
matches is a complex mechanism that is supported by some
approaches, intentionally blocked by others (e.g. Proton) or
ignored by some approaches.</p>
      </sec>
      <sec id="sec-4-9">
        <title>Segmentation</title>
        <p>
          A stream of sensor input events might not contain explicit
hints about the start and end of a gesture. The
segmentation concern (also called gesture spotting) gains importance
given the trend towards the continuous capturing and
freeair interaction such as the Kinect sensor and Z-touch [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ],
where a single event stream can contain many potential start
events. The difficulty of gesture segmentation manifests
itself when one cannot know beforehand which potential start
events should be used until a middle or even an end
candidate event is found to form the decisive gesture trajectory. It
is possible that potential begin and end events can still be
replaced by better future events. For instance, how does one
decide when a flick right gesture (in free air) starts or ends
without any knowledge about the future? This generates a lot
of gesture candidates and increases the computational
complexity. Some approaches tackle this issue by using a
velocity heuristic with a slack variable (i.e. a global constant
defined by the developer) or by applying an efficient
incremental computing engine. However most language-based
approaches are lacking this functionality. Many solutions make
use of a garbage gesture model to increase the accuracy of the
gesture segmentation process.
        </p>
      </sec>
      <sec id="sec-4-10">
        <title>Event Expiration</title>
        <p>The expiration of input events is required to keep the memory
and processing complexity within certain limits. The
manual maintenance of events is a complex task and most
frameworks offer at least a simple heuristic to automatically expire
old events. In multi-touch frameworks, a frequently used
approach is to keep track of events from the first touch down
event to the last touch up of any finger. This might introduce
some issues when dealing with multiple users if there is
always at least one active finger touching the table. Another
approach is to use a timeout parameter, effectively creating
a sliding window solution. An advantage of this approach is
that the maximum memory usage is predefined, however a
slack value is required. A static analysis of the gesture
definitions could help to avoid the need for such a static value.</p>
      </sec>
      <sec id="sec-4-11">
        <title>Concurrent Interaction</title>
        <p>
          In order to allow concurrent interaction, one has to keep track
of multiple partial instances of a gesture recognition process.
For instance, multiple fingers, hands, limbs or users can
perform the same gesture at the same time. To separate these
instances, the framework can offer constructs or native
support for concurrent gesture processing. In some scenarios, it
is hard to decide which touch events belong to which hand or
user. For example, in Proton the screen can be split in half
to support some two player games. A better method is to set
a maximum bounding box of the gesture [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] or to define the
spatial properties of each gesture condition. The use of
GUIspecific contextual information can also serve as a separation
mechanism. Nevertheless, it is not always possible to know
in advance which combination of fingers will form a gesture,
leading to similar challenges as discussed for the
segmentation criterion where multiple gesture candidates need to be
tracked.
        </p>
      </sec>
      <sec id="sec-4-12">
        <title>Portability, Serialisation and Embeddability</title>
        <p>Concerns such as portability, serialisation and embeddability
form the platform independence of an approach. Portability
is defined by how easy it is to run the framework on different
platforms. Some approaches are tightly interwoven with the
host language which limits portability and the transfer of a
gesture definition over the network. This transportation can
be used to exchange gesture sets between users or even to
offload the gesture recognition process to a dedicated server
with more processing power. The exchange requires a form
of serialisation of the gesture definitions which is usually
already present in domain-specific languages. The
embeddability has to do with the way how the approach can be used. Is it
necessary to have a daemon process or can the abstractions be
delivered as a library? Another question is whether it is
possible to use the abstractions in a different language or whether
this requires a reimplementation.</p>
      </sec>
      <sec id="sec-4-13">
        <title>Reliability</title>
        <p>
          The dynamic nature of user input streams implies the
possibility of an abundance of information in a short period of
time. A framework might offer a maximum computational
boundary for a given setting [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. Without such a boundary,
users might trigger a denial of service when many complex
interactions have to be processed at the same time.
Additionally, low-level functionality should be encapsulated without
providing leaky language abstractions that could form
potential security issues.
        </p>
      </sec>
      <sec id="sec-4-14">
        <title>Graphical User Interface Symbiosis</title>
        <p>
          The integration of graphical user interface (GUI) components
removes the need for a single entry point of gesture callbacks
on the application level. With contextual information and
GUI-specific gesture conditions the complexity is reduced.
For instance, a scroll gesture can only happen when both
fingers are inside the GUI region that supports scrolling [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. This
further aids the gesture disambiguation process and thus
increases the gesture recognition quality. Another use case is
when a tiny GUI object needs to be rescaled or rotated. The
gesture can be defined as such that one finger should be on
top of the GUI component while the other two fingers are
executing a pinch or rotate gesture in the neighbourhood.
        </p>
      </sec>
      <sec id="sec-4-15">
        <title>Activation Policy</title>
        <p>
          Whenever a gesture is recognised, an action can be executed.
In some cases the developer wants to provide a more detailed
activation policy such as trigger only once or trigger when
entering and leaving a pose. Another example is the sticky
bit [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] option that activates the gesture for a particular GUI
object. A shoot-and-continue policy [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] denotes the
execution of a complete gesture followed by an online gesture
activation. The latter can be used for a lasso gesture where at
least one complete circular movement is required and
afterwards each incremental part (e.g. per quarter) causes a gesture
activation.
        </p>
      </sec>
      <sec id="sec-4-16">
        <title>Dynamic Binding</title>
        <p>Dynamic binding is a feature that allows developers to define
a variable without a concrete value. For instance, the x
location of an event A should be between 10 and 50 but should
be equal to the x location of an event B. At runtime, a value
of 20 for the x location of event A will therefore require an
event B with the same value of 20. This is particularly
useful to correlate different events if the specification of concrete
values is not feasible.</p>
      </sec>
      <sec id="sec-4-17">
        <title>Runtime Definitions</title>
        <p>Refining gesture parameters or outsourcing gesture
definitions to gesture services requires a form of runtime
modification support by the framework. The refinement can be
instantiated by an automated algorithm (e.g. an optimisation
heuristic) by the developer (during a debugging session) or
by the user to provide their preferences.</p>
      </sec>
      <sec id="sec-4-18">
        <title>Scalability in Terms of Performance</title>
        <p>
          The primary goal of gesture languages is to provide an
abstraction level which helps developers to express complex
relations between input events. However, with multimodal
setups, input continuously enters the system and the user
expects the system to immediately react to their gestures.
Therefore, performance and the scalability when having many
gesture definitions is important. Some approaches, such as
Midas, exploit the language constructs to form an optimised
direct acyclic graph based on the Rete algorithm [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. This
generates a network of the gesture conditions, allows the
computational sharing between them and keeps track of
partial matches without further developer effort. In recent
extensions, Midas has been parallelised and benchmarked with up
to 64 cores [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] and then distributed such that multiple
machines can share the workload [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. Other approaches such as
Proton and GDL by Echtler et al. rely on finite state machines.
However, it is unclear how these approaches can be used with
continuous sensor input where segmentation is a major issue.
EventHurdle [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] tackles this problem by using relative
positions between the definitions but might miss some gestures
due to the non-exhaustive search [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-19">
        <title>Scalability in Terms of Complexity</title>
        <p>The modularity of gestures allows for a much better
scalability in terms of complexity. When adding an extra gesture, no
or minimal knowledge about existing definitions is required.
However, when multiple gestures are recognised in the same
pool of events, the developer needs to check whether they
can co-exist (e.g. performed by different users) or are
conflicting (i.e. deciding between rotation, scaling or both). A
lot of work remains to be done to disambiguate gestures. For
example, how do we cope with the setting of priorities or
disambiguation rules between gestures when they are detected
at a different timestamp? How can we cope with these
disambiguation issues when there are many gesture definitions?
Furthermore, it is unclear how we need to deal with many
variants of a similar gesture in order that the correct one is
used during the composition of a complex gesture.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Gesture Disambiguation</title>
      <p>When multiple gesture candidates are detected from the same
event source, the developer needs a way to discriminate
between them. However, this is not a simple task due to the lack
of detail in sensor information, unknown future events and
the uncertainty of the composition of the gesture.</p>
      <sec id="sec-5-1">
        <title>Identification and Grouping</title>
        <p>
          The identification problem is related to the fact that sensor
input is not always providing enough details to disambiguate
a scenario. Echtler et al. [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] demonstrate that two fingers
from different hands cannot be distinguished from two
fingers of the same hand on a multi-touch table due to the lack
of shadowing information. Furthermore, when a finger is
lifted from the table and put down again, there is no easy way
to verify whether it is the same finger. Therefore, a double
tap gesture cannot easily be distinguished from a two finger
roll. Similar issues exist with other types of sensors such as
when a user leaves the viewing angle of a sensor and later
enters again. Multimodal fusion helps addressing the
identification problem. The grouping problem is potentially more
complex to solve. For instance, when multiple people are
dancing in pairs, it is sometimes hard to see who is dancing
with whom. Therefore the system needs to keep track of
alternative combinations for a longer time period to group the
individuals. Many combinations of multi-touch gestures are
possible when fingers are located near each other.
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>Prioritisation and Enabling</title>
        <p>
          The annotation of gestures with different priority levels is a
first form of prioritisation which can have an impact on the
gesture recognition accuracy. However, it requires
knowledge about existing gestures and if there are many gestures it
might not be possible to maintain a one-dimensional priority
schema. Nacenta et al. [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] demonstrate that we should not
distinguish between a scale and rotate gesture on the
frameby-frame level but by using specialised prioritisation rules
such as magnitude filtering or visual handles. A developer
can further decide to enable or disable certain gestures based
on the application context or other information.
        </p>
      </sec>
      <sec id="sec-5-3">
        <title>Future Events</title>
        <p>One of the major issues with gesture disambiguation is that
information in the near future can lead to a completely
different interpretation of a gesture. A gesture definition can, for
instance, fully overlap with a larger, higher prioritised
gesture. At a given point in time, it is difficult to decide whether
the application should be informed that a particular gesture
has been detected or whether we wait for a small time period.
If future events show that the larger gesture does not match,
users might perceive the execution of the smaller gesture as
unresponsive. Late contextual information might also
influence the fusion process of primitive events that are still in the
running to form part of more complex gestures. The question
is whether these fused events should be updated to reflect the
new information and how a framework can support this.</p>
      </sec>
      <sec id="sec-5-4">
        <title>Uncertainty</title>
        <p>Noise is an important parameter when dealing with gestural
interaction. The jittering of multi-touch locations or limb
positions might invalidate intended gestures or unintentionally
activate other gestures. To analyse gestures based on
imprecise primitive events, a form of uncertainty is required. This
might also percolate to higher level gestures (e.g. when two
uncertain subgestures are being composed). The downside is
that this introduces more complexity for the developer.</p>
      </sec>
      <sec id="sec-5-5">
        <title>Verification and User Profiling</title>
        <p>Whenever a gesture candidate is found, it might be verified
using an extra gesture classifier. An efficient segmentation
approach may, for example, be combined with a more
elaborate classification process to verify whether a detected
recognition is adequate. Verification can also be used to further
separate critical gestures (e.g. file deletion) from simple
gestures (e.g. scaling). Note that couples of classifiers (i.e.
ensembles) are frequently used in the machine learning domain.
In order to further increase the gesture recognition accuracy,
a developer can offer a form of user profiling for gestures
that are known to cause confusion. Either a gesture is
specified too precisely for a broader audience or it is specified too
loosely for a particular user. This influences the recognition
results and accidental activations. Therefore, the profiling of
users by tracking undo operations or multiple similar
invocations could lead to an adaptation of the gesture definition
for that particular user. User profiling is valuable to improve
recognition rates but it might also be interesting to exploit it
for context-sensitive cases. Future work is needed to offer
profiling as a language feature.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Gesture Specification</title>
      <p>The description of a gesture requires a number of primitive
statements such as spatial and temporal relations between
multiple events as described in the following.</p>
      <sec id="sec-6-1">
        <title>Spatial Specification</title>
        <p>
          We define the spatial specification of a gesture as the
primitive travelled path to which it has to adhere. The path can
be formed by sequential or parallel conditions (expressed by
using temporal constructs) where events are constrained in a
spatial dimension such as 10 &lt; event1:x &lt; 50. The use of
relative spatial operators (e.g. event1:x + 30 &gt; event2:x as
used in [
          <xref ref-type="bibr" rid="ref15 ref8">8, 15</xref>
          ]) also seem useful to process non-segmented
sensor information. Note that approximation is required to
support the variability of a gesture execution.
        </p>
      </sec>
      <sec id="sec-6-2">
        <title>Temporal Specification</title>
        <p>Gestures can be described in multiple conditions. However,
these conditions cannot always be listed in a sequential order.
Therefore, most gesture languages allow the developer to
express explicit temporal relations between the conditions. An
example of such a temporal relation is that two events should
(or should not) happen within a certain time period.</p>
      </sec>
      <sec id="sec-6-3">
        <title>Other Spatio-temporal Features</title>
        <p>
          Many frameworks offer additional features to describe a
gesture. For instance, Kammer et al. [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] use atomic blocks to
specify a gesture. These atomic blocks are preprocessors such
as direction (e.g. north or southwest) that abstract all
lowlevel details from the developer. They can also rely on a
template engine to offer more complex atomic building blocks.
This integration is a form of composition and is an efficient
way to describe gestures. Kinematic features can be used
to filter gestures based on motion vectors, translation,
divergence, curl or deformation. Khandkar et al. [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] offer a closed
loop feature to describe that the beginning and end event of a
gesture should be approximately at the same location.
        </p>
      </sec>
      <sec id="sec-6-4">
        <title>Scale and Rotation Invariance</title>
        <p>Scale invariance deals with the recognition of a single gesture
trajectory regardless of its scale. Similarly, rotation
invariance is concerned with the rotation. Most approaches offer
this feature by rescaling and rotating the trajectory to a
standard predefined size and centroid. However, a major
limitation is that scale and rotation invariance requires
segmentation and therefore does not work well for online gestures.</p>
      </sec>
      <sec id="sec-6-5">
        <title>Debug Tooling</title>
        <p>
          In order to debug gestures, developers usually apply
prerecorded positive and negative gesture sets to see whether the
given definition is compatible with the recorded data. Gesture
debugging tools have received little attention in research and
are typically limited to the testing of accuracy percentages.
It might be interesting to explore more advanced debugging
support such as notifying the developer of closely related
gesture trajectories (e.g. gesture a is missed by x units [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]).
        </p>
      </sec>
      <sec id="sec-6-6">
        <title>Editor Tooling</title>
        <p>
          Gesture development can be carried out in a code-compatible
graphical manner such as done with tablatures [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ],
hurdles [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] or spatially [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. When dealing with 3D input events
from a Kinect, a graphical representation is valuable to get to
the correct spatial coordinates.
        </p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>DISCUSSION</title>
      <p>We can identify some general trends with regard to open
issues and underrepresented criteria in existing work.
Figure 2 reveals that some criteria such as (1) modularisation and
(7) offline gestures are well supported by most approaches
and are important to provide a minimal ability to program
gestures in a structured manner. Commonly used multi-touch
gestures such as pinch and rotate are (6) online gestures
supported by most frameworks. However, additional work can
be done to streamline the implementation of online gestures
by providing (2) composition support, a deeper (14) GUI
integration and more advanced (16) activation policies. We
believe that these challenges can be resolved with additional
engineering effort in existing systems.</p>
      <p>However, we see that more challenging issues such as (9)
segmentation, (19) scalability in terms of complexity or dealing
with (22) future events are poorly or not at all supported in
existing approaches. (9) Segmentation is crucial to deal with
continuous streams of information where no hints are given
by the sensor with regard to potential start and end
conditions. The recent trend towards near-touch sensors and
skeletal tracking algorithms makes the segmentation concern of
crucial importance.</p>
      <p>With the adoption of the discussed frameworks there is an
increasing demand to deal with (19) scalability in terms of
complexity. It is currently rather difficult to get an overview
on how many gestures work together. For instance, when a
two-finger swipe needs to be implemented by composing two
Midas
GDL-K
GeForMT
GDL-E
Proton
GestureAgents
EventHurdle
GestIT
ICO
30
20
10
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 0
Figure 2. A stacked bar chart of the summed values for each criterion
primitive swipes. However, more than one primitive swipe
variation might exist (long/short, fast/slow) and choosing the
correct one without introducing conflicts is challenging. A
way to deal with the issue is to provide test data but this is
work intensive. There might be software engineering-based
abstractions that could improve this situation.</p>
      <p>Information coming from (22) events in the near future can
lead to a completely different interpretation of a gesture.
Especially in a multimodal context where context or clarifying
information comes from additional sensors. An active
gesture might fully overlap with a larger and higher prioritised
gesture or be part of a composition that might or might not
succeed. In other cases the gesture should not be triggered at
all due (late) context data. There are currently no adequate
abstractions helping developers to deal with these concerns.
Finally, we would like to highlight that (23) uncertainty and
(24) user profiling abstractions are also lacking. Dealing with
uncertainty is currently completely hidden from the
programmer. Nevertheless, a gesture might be better neglected when
composing from two or more uncertain subgestures.
Additionally, when a user consistently undoes an operation
executed by a particular gesture, the gesture might require some
adjustments. This can be checked by profiling users and by
offering several resolutions strategies.</p>
    </sec>
    <sec id="sec-8">
      <title>CONCLUSION</title>
      <p>Gesture programming languages allow developers to more
easily express their interaction patterns. When designing such
a language, a number of concerns need to be addressed. Our
goal was to categorise and explicitly expose these design
decisions to provide a better understanding and foster a
discussion about challenges, opportunities and future directions for
gesture programming languages. We observed a number of
underrepresented concerns in existing work and highlighted
challenges for future gesture programming languages.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Brooks</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jr.</surname>
            ,
            <given-names>F. P.</given-names>
          </string-name>
          <string-name>
            <surname>No Silver</surname>
          </string-name>
          <article-title>Bullet: Essence and Accidents of Software Engineering</article-title>
          .
          <source>IEEE Computer 20, 4 (April</source>
          <year>1987</year>
          ),
          <fpage>10</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Echtler</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Butz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>GISpL: Gestures Made Easy</article-title>
          .
          <source>In Proceedings of TEI</source>
          <year>2012</year>
          , 6th International Conference on Tangible, Embedded and Embodied
          <string-name>
            <surname>Interaction</surname>
          </string-name>
          (Kingston, Canada,
          <year>February 2012</year>
          ),
          <fpage>233</fpage>
          -
          <lpage>240</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Echtler</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huber</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Klinker</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <article-title>Shadow Tracking on Multi-Touch Tables</article-title>
          .
          <source>In Proceedings of AVI</source>
          <year>2008</year>
          , 9th International Working Conference on
          <article-title>Advanced Visual Interfaces (Napoli</article-title>
          , Italy, May
          <year>2008</year>
          ),
          <fpage>388</fpage>
          -
          <lpage>391</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Echtler</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klinker</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Butz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Towards</surname>
          </string-name>
          <article-title>a Unified Gesture Description Language</article-title>
          .
          <source>In Proceedings of HC</source>
          <year>2010</year>
          , 13th International Conference on Humans and
          <string-name>
            <surname>Computers (Aizu-Wakamatsu</surname>
          </string-name>
          , Japan,
          <year>December 2010</year>
          ),
          <fpage>177</fpage>
          -
          <lpage>182</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Forgy</surname>
            ,
            <given-names>C. L.</given-names>
          </string-name>
          <string-name>
            <surname>Rete</surname>
          </string-name>
          :
          <article-title>A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem</article-title>
          .
          <source>Artificial Intelligence</source>
          <volume>19</volume>
          ,
          <issue>1</issue>
          (
          <year>1982</year>
          ),
          <fpage>17</fpage>
          -
          <lpage>37</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Hamon</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palanque</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deleris</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Barboni</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>Formal Description of Multi-Touch Interactions</article-title>
          .
          <source>In Proceedings of EICS</source>
          <year>2013</year>
          , 5th International Symposium on Engineering Interactive Computing Systems (London, UK,
          <year>June 2013</year>
          ),
          <fpage>207</fpage>
          -
          <lpage>216</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Hoste</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <article-title>Software Engineering Abstractions for the Multi-Touch Revolution</article-title>
          .
          <source>In Proceedings of ICSE</source>
          <year>2010</year>
          , 32nd International Conference on Software Engineering (Cape Town, South Africa, May
          <year>2010</year>
          ),
          <fpage>509</fpage>
          -
          <lpage>510</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hoste</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Rooms</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Signer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <article-title>Declarative Gesture Spotting Using Inferred and Refined Control Points</article-title>
          .
          <source>In Proceedings of ICPRAM</source>
          <year>2013</year>
          ,
          <article-title>2nd International Conference on Pattern Recognition Applications and Methods (Barcelona, Spain</article-title>
          ,
          <year>February 2013</year>
          ),
          <fpage>144</fpage>
          -
          <lpage>150</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hoste</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Signer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Water</surname>
            Ball
            <given-names>Z</given-names>
          </string-name>
          :
          <article-title>An Augmented Fighting Game Using Water as Tactile Feedback</article-title>
          .
          <source>In Proceedings of TEI</source>
          <year>2014</year>
          , 8th International Conference on Tangible, Embedded and Embodied
          <string-name>
            <surname>Interaction</surname>
          </string-name>
          (Munich, Germany,
          <year>February 2014</year>
          ),
          <fpage>173</fpage>
          -
          <lpage>176</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Julia</surname>
            ,
            <given-names>C. F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Earnshaw</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Jorda</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>GestureAgents: An Agent-based Framework for Concurrent Multi-Task Multi-User Interaction</article-title>
          .
          <source>In Proceedings of TEI</source>
          <year>2013</year>
          , 7th International Conference on Tangible,
          <article-title>Embedded and Embodied Interaction (Barcelona, Spain</article-title>
          ,
          <year>February 2013</year>
          ),
          <fpage>207</fpage>
          -
          <lpage>214</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Kadous</surname>
            ,
            <given-names>M. W.</given-names>
          </string-name>
          <article-title>Learning Comprehensible Descriptions of Multivariate Time Series</article-title>
          .
          <source>In Proceedings of ICML 1999, 16th International Conference on Machine Learning (Bled</source>
          , Slovenia,
          <year>June 1999</year>
          ),
          <fpage>454</fpage>
          -
          <lpage>463</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kammer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Formalisierung gestischer Interaktion fu¨r Multitouch-Systeme</article-title>
          .
          <source>PhD thesis</source>
          , Technische Universita¨
          <source>t Dresden</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kammer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wojdziak</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keck</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Groh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Taranko</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Towards</surname>
          </string-name>
          <article-title>a Formalization of Multi-Touch Gestures</article-title>
          .
          <source>In Proceedings of ITS</source>
          <year>2010</year>
          ,
          <article-title>5th International Conference on Interactive Tabletops and Surfaces (Saarbru¨cken</article-title>
          , Germany,
          <year>November 2010</year>
          ),
          <fpage>49</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Khandkar</surname>
            ,
            <given-names>S. H.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Maurer</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <article-title>A Domain Specific Language to Define Gestures for Multi-Touch Applications</article-title>
          .
          <source>In Proceedings of DSM</source>
          <year>2010</year>
          , 10th Workshop on Domain-Specific
          <string-name>
            <surname>Modeling</surname>
          </string-name>
          (Reno/Tahoe, USA,
          <year>October 2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kim</surname>
          </string-name>
          , J.-W., and
          <string-name>
            <surname>Nam</surname>
          </string-name>
          , T.-J. EventHurdle: Supporting Designers'
          <article-title>Exploratory Interaction Prototyping with Gesture-based Sensors</article-title>
          .
          <source>In Proceedings of CHI</source>
          <year>2013</year>
          ,
          <source>31th ACM Conference on Human Factors in Computing Systems</source>
          (Paris, France,
          <year>April 2013</year>
          ),
          <fpage>267</fpage>
          -
          <lpage>276</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kin</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hartmann</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>DeRose</surname>
          </string-name>
          , T., and
          <string-name>
            <surname>Agrawala</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Proton: Multitouch Gestures as Regular Expressions</article-title>
          .
          <source>In Proceedings of CHI</source>
          <year>2012</year>
          ,
          <article-title>30th ACM Conference on Human Factors in Computing Systems (Austin, Texas</article-title>
          , USA,
          <year>November 2012</year>
          ),
          <fpage>2885</fpage>
          -
          <lpage>2894</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Long</surname>
            <given-names>Jr</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A. C.</given-names>
            ,
            <surname>Landay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            , and
            <surname>Rowe</surname>
          </string-name>
          ,
          <string-name>
            <surname>L. A.</surname>
          </string-name>
          <article-title>Implications for a Gesture Design Tool</article-title>
          .
          <source>In Proceedings of CHI</source>
          <year>1999</year>
          ,
          <article-title>17th ACM Conference on Human Factors in Computing Systems (Pittsburgh</article-title>
          , USA,
          <year>1999</year>
          ),
          <fpage>40</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Marquardt</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kiemer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ledo</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boring</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Greenberg</surname>
            ,
            <given-names>S. Designing</given-names>
          </string-name>
          <article-title>User-</article-title>
          ,
          <string-name>
            <surname>Hand-</surname>
          </string-name>
          , and
          <article-title>Handpart-Aware Tabletop Interactions with the TouchID Toolkit</article-title>
          .
          <source>Tech. Rep. 2011-1004-16</source>
          , Department of Computer Science, University of Calgary, Calgary, Canada,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Marr</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Renaux</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoste</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>De Meuter</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <article-title>Parallel Gesture Recognition with Soft Real-Time Guarantees</article-title>
          .
          <source>Science of Computer Programming (February</source>
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Nacenta</surname>
            ,
            <given-names>M. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudisch</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benko</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>Wilson</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>Separability of Spatial Manipulations in Multi-touch Interfaces</article-title>
          .
          <source>In Proceedings of GI</source>
          <year>2009</year>
          ,
          <article-title>35th Graphics Interface Conference (Kelowna</article-title>
          , Canada, May
          <year>2009</year>
          ),
          <fpage>175</fpage>
          -
          <lpage>182</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Nuwer</surname>
            ,
            <given-names>R. Armband</given-names>
          </string-name>
          <string-name>
            <surname>Adds</surname>
          </string-name>
          <article-title>a Twitch to Gesture Control</article-title>
          .
          <source>New Scientist</source>
          <volume>217</volume>
          ,
          <issue>2906</issue>
          (March
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Scholliers</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoste</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Signer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>De Meuter</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <article-title>Midas: A Declarative Multi-Touch Interaction Framework</article-title>
          .
          <source>In Proceedings of TEI</source>
          <year>2011</year>
          , 5th International Conference on Tangible, Embedded and Embodied
          <string-name>
            <surname>Interaction</surname>
          </string-name>
          (Funchal, Portugal,
          <year>January 2011</year>
          ),
          <fpage>49</fpage>
          -
          <lpage>56</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Spano</surname>
            ,
            <given-names>L. D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cisternino</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Paterno`,
          <string-name>
            <given-names>F.</given-names>
            , and
            <surname>Fenu</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>GestIT: A Declarative and Compositional Framework for Multiplatform Gesture Definition</article-title>
          .
          <source>In Proceedings of EICS</source>
          <year>2013</year>
          , 5th International Symposium on Engineering Interactive Computing Systems (London, UK,
          <year>June 2013</year>
          ),
          <fpage>187</fpage>
          -
          <lpage>196</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Swalens</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Renaux</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoste</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marr</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>De Meuter</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Cloud</surname>
            <given-names>PARTE</given-names>
          </string-name>
          :
          <article-title>Elastic Complex Event Processing based on Mobile Actors</article-title>
          .
          <source>In Proceedings of AGERE! 2013, 3rd International Workshop on Programming based on Actors</source>
          , Agents, and
          <string-name>
            <surname>Decentralized Control</surname>
          </string-name>
          (Indianapolis, USA,
          <year>October 2013</year>
          ),
          <fpage>3</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Takeoka</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miyaki</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Rekimoto</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Z-Touch</surname>
          </string-name>
          :
          <article-title>An Infrastructure for 3D Gesture Interaction in the Proximity of Tabletop Surfaces</article-title>
          .
          <source>In Proceedings of ITS</source>
          <year>2010</year>
          ,
          <article-title>5th International Conference on Interactive Tabletops and Surfaces (Saarbru¨cken</article-title>
          , Germany,
          <year>November 2010</year>
          ),
          <fpage>91</fpage>
          -
          <lpage>94</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>