Chapter 2: Stick-e Notes: a Metaphor for Context-Aware Applications
2.1 Overview of the Stick-e Note Application Framework
2.1.2 The Stick-e Note
We have described how the framework represents context information, how it captures it, and how it makes it accessible. Now we describe how context and content are brought together to form a stick-e note via the StickeNote class. This class consists
of only a single text field with which to specify the content because, as was mentioned earlier, content can be represented as a URL, which the client application is responsible for interpreting. The context part of the class is a more complicated matter. It is defined by what we call a trigger condition, i.e. the context under which the stick-e note should be invoked. The trigger condition consists of a number of trigger contexts that can contain any number of context elements of the same general type. A stick-e note’s trigger condition may consist of many such trigger contexts, allowing stick-e notes to be attached to more than one type of context element. For example, in creating a ‘go home’ message that should be triggered if the location is the computing laboratory, the date is December 24th, and it is after 11pm.
The automatic delivery of stick-e notes through triggering is the main interest of our research. However, other work by Brown [Brown and Jones 2001 - #17] investigates other methods of retrieving information via context.
A stick-e note is triggered when at least one context element in all of the trigger contexts is met, i.e. the context elements within a trigger context are logically ORed together, and the trigger contexts within a trigger condition are logically ANDed together. Figure 4 illustrates these logical relationships between trigger contexts and their context elements. The horizontal groupings in the figure represent the separate trigger contexts that comprise the trigger condition, and its individual context elements. Using the example supplied in the figure, the stick-e note will trigger if any of the
location conditions are met at the same time as any of the with conditions.
If a particular trigger context contains no context elements, such as Temperature in the figure, then it will not be used in determining the success of a triggering condition as the stick-e note is considered as having not been attached to any temperature. Should a stick-e note have no context elements or trigger contexts at all within its trigger condition then it will simply not trigger because it has not been attached to anything
(perhaps the stick-e note’s content has been defined but it has not been attached to a context yet).
Office S109a Coffee Lounge Canteen
David Peter or or or Temperature Trigger Context With Trigger Context Location Trigger Context and and
Figure 4. Example of the logical relationships within a trigger condition.
It is likely that sets of stick-e notes will be developed that relate to a similar subject, e.g. a set of stick-e notes developed on the archaeology of Zanzibar. A facility for representing these groupings of stick-e notes, known as families, is provided in the framework, thus allowing the user to organise a collection of stick-e notes into a more meaningful form than one huge pool of disparate notes. However, the concept of families is not convenient in all cases, especially for transient stick-e notes that are not stored for long, e.g. electronic post-it notes. Support for these transient stick-e notes is provided by a universal family into which all stick-e notes without pre-assigned families can be placed. Stick-e notes may also belong to more than one family – the families can be thought of as indices onto a global set of stick-e notes.
In effect families (implemented by a class called SeStore) act as a form of index onto a
group of logically related stick-e notes. The references to the stick-e notes that a family contains can also be annotated with a trigger-check-ready status attribute which can be set to yes if the stick-e note should be considered by the triggering process and no if it should be ignored by the triggering process. The latter case is useful, for example, when developing a set of stick-e notes; during which time the developer may wish to deactivate stick-e notes that are currently in production. The assignation of the status attributes and sequence to references within the family rather than within individual
Chapter 2: Stick-e Notes - a Metaphor for Context-Aware Applications
stick-e notes is a logical choice if re-use of stick-e notes within different families is considered. That is, a stick-e note may be used in more than one family and may appear in different sequences and have a different status in each one; modelling the status or sequence as part of the stick-e note would prevent such re-use.
To ascertain whether a particular stick-e note should trigger in the current context, a client can invoke the Trigger() method of the StickeNote object. The stick-e note
will then compare its various trigger contexts with the current context elements retrieved from the SeEnvironment object. If they match within given parameters then
the stick-e note will indicate that it should trigger. Note that some other party must invoke the trigger checking of a stick-e note: it is not an autonomous process.