<!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>A Classification Framework for Storage and Retrieval of Context</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>B.I.J. Siljee</string-name>
          <email>b.i.j.siljee@cs.rug.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>I.E. Bosloper</string-name>
          <email>i.e.bosloper@cs.rug.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>J.A.G. Nijhuis</string-name>
          <email>j.a.g.nijhuis@cs.rug.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Groningen, Department of Computing Science PO</institution>
          <addr-line>Box 800, 9700 AV Groningen</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>An increasingly important requirement for mobile and pervasive systems is the capability to adapt at runtime to a changing context; they must be context-aware. Much current work in this field focuses on application-specific solutions and ad-hoc approaches, and the lack of conceptual models for the design of context-aware systems hinders the development of more general and complex systems. In this paper we present a classification framework for the storage and retrieval of context, which supports the development of contextaware systems. We demonstrate the usefulness of the framework by modeling a number of context-aware systems.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Small networked devices like Personal Digital Assistants (PDAs) and mobile phones
are rapidly becoming more common in every day living. They are cheaper, smaller,
more powerful and more ubiquitous than before. The fast changing environment of
these devices – combined with the increasing need for more intelligent and
autonomous behavior – requires software that can adapt to changes in its environment. This
is what we call context-aware systems: systems that can keep track of their context
and change according to context changes.</p>
      <p>
        The specific context of a system depends on its application domain. Schilit [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
divides context into three categories:
• Computing context: available CPU time and memory, network connectivity,
communication costs and bandwidth, nearby resources such as printers,
displays and workstations.
• User context: user’s profile, user’s location, and people nearby.
• Physical context: lighting, noise levels, traffic conditions, and temperature.
Chen [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] adds a fourth category:
• Time context: the time of day, and the day, week, month, and season of the
year.
      </p>
      <p>A controlled and simple way to implement system changes is to stop, update and
restart the entire system. However, this is not always desirable or even possible.
Multiple reasons for modifying a system while it remains running are:
• Mobile: Access to a system may be restricted, for instance when systems are ‘in
the field’. In this case systems cannot be updated through offline methods.
• Critical: Mission-critical systems need to remain running; they cannot be
stopped and restarted.
• Extensible: Some systems are capable of integrating third-party software at
runtime. This allows for functionality not available at release or startup time. An
example is internet browsers that must integrate a plug-in to display a movie
inpage.
• Comfort: Changing a system without restarting does not block users, and
therefore increases usability.</p>
      <p>We define systems that change at runtime, i.e. without stopping, as dynamic systems.</p>
      <p>To further increase usability, effort is focused on the ability of a system to
selfdetect when and what to change, and to make this change autonomously. These
selfadaptive systems measure the degree in which they satisfy their requirements runtime;
the variation in these measurements is usually due to a changing context.</p>
      <p>Based on the above, we conclude that automatic dynamic systems, i.e. systems that
automatically change at runtime, need to be context-aware. Furthermore, the
environment of mobile devices changes rapidly. Not only the environment of such a
device itself changes, but mobile devices may also move out of the environment they
were originally designed for, thus facing new environments. Dynamic, context-aware
systems should be able to adapt runtime to these unforeseen context changes as well.</p>
      <p>
        A software architecture provides a global perspective on the software system in
question. Architecture-based design of software systems provides major benefits [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
as it shifts the focus away from implementation details towards a more abstract level.
However, most research on context-aware systems focuses on ad-hoc solutions at the
implementation level, as designers lack abstractions to reason about context-aware
systems [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This hinders the reuse of design paradigms and ideas.
      </p>
      <p>The contribution of this paper is an architectural classification framework of the
abstractions that designers can use for the development of context storage and
retrieval in an application-independent fashion. The framework gives an overview and
description of the different possibilities of context storage and retrieval, thereby
providing designers with the possible choices and consequently simplifying design
decisions. We show the usefulness of this framework with two cases in which we design
context-aware systems.</p>
      <p>The remainder of the paper is organized as follows. In the next section we present
the classification framework for context storage and retrieval. Subsequently, we
present the two cases, followed by related work. Finally, the paper is concluded.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Context Storage and Retrieval Classification Framework</title>
      <p>
        The concept of context-awareness in systems can be divided into three separate
phases (see also Figure 1):
1. Monitoring of the environment
2. Interpretation of the monitoring data through the context model
3. Adaptation of the system to a changed context
Probes monitor the environment and output raw data. This monitoring data needs to
be interpreted before it has a meaning useful to the system; without this meaning the
monitoring data rarely holds the context information the system needs. The
interpretation is usually done through a context model, which translates the monitoring data into
context information. The context information is then used to reconfigure the system.
This division is common for most application-specific context-aware systems, for
example in GPS car navigation systems (e.g. Hertz [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and Navman [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]), in mobile
handheld devices enhanced with sensors (e.g. the stick-e notes [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]), or in power
saving applications (e.g. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]).
      </p>
      <p>Environment
monitoring</p>
      <p>
        We present a classification framework for the storage of the context model and the
retrieval of the context information from the context model. For the monitoring of the
environment an excellent framework is given by Dey [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. For the adaptation of the
system to changed context we refer to [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], as this falls outside the scope if this paper.
      </p>
      <sec id="sec-2-1">
        <title>Context model storage</title>
        <p>The context model is used to add context meaning to the raw monitoring data, and is
thus a necessary element for most context-aware systems. Several options exist for the
storage of the context model.</p>
        <p>
          Degree of distribution:
• Central: the context model is stored at one central location, e.g. as one database
as in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], or as one Hidden Markov Model as in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. In order to retrieve the
current context information, the monitoring data from one or more probes is
combined with the centrally stored context model.
• Distributed: the context model is stored at multiple sites, which can be
networked locations. We distinguish two cases:
1. Each location has an identical context model. This is useful for
faulttolerance and speed of context information retrieval: as the context model can
be located near or inside the different systems that need it, the systems can
retrieve their context information faster.
2. Each location has a different part of the context model, and the context
models from several locations must be combined for the complete context model.
        </p>
        <p>
          An example is CoolAgent of HP [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], where the context model is distributed
among different agents.
        </p>
        <p>Location relative to the system:
• Extrinsic: the context model is stored at a different location than the system
itself; it is a service for context information. This way, systems are dependent on
the service to retrieve their context information. Many location-based
contextaware systems use an extrinsic service, as, for instance, a traffic jam information
service.</p>
        <p>Such extrinsic context information services are useful when the context model is
space-consuming and it is not possible to locate the context model within the
system, for example in small, handheld devices. Extrinsic context model
storage is also useful when the context model needs to be updated transactional and
all the different devices must have access to the new context information at the
same time. However, systems are dependent on the service for their context
information, which introduces an extra reliability risk.
• Intrinsic: the context model is stored inside the system itself. This is useful for
small context models, if the context model is different for each system, or they
may even be necessary if the systems cannot always reach a context service. An
example of the latter may occur in a battle situation, in which it is likely that
such a context service will at some point become unavailable due to attacks.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Context information retrieval</title>
        <p>After the context model adds meaning to the raw monitoring data, the resulting
context information is used by the system. Different aspects in the process of retrieving
the context information from the context model are as follows:</p>
        <p>Initiative:
• Context-push: the system receives its context information without needing to
send a request first every time it is needed. This is typical for, for instance, GPS
car navigation systems.
• Context-pull: the system explicitly requests the current context information, for
example, through service requests when the context model is extrinsic, or via a
function call when the context model is intrinsic.</p>
        <p>Timing:
• Event-driven: systems only get their context information when some event
occurs. This is usually the case when context information is discrete. An example
of this is a context change caused by a person walking into a different room, or a
mobile phone moving into a different cell. A non-discrete example is of a
running program that has the available system memory as its context. When a
second program is started that uses a lot of system memory, less memory is
available for the running program. This is the event on which it responds by using
less memory-intensive, but slower, versions of its components.
• Periodic: at certain scheduled points in time the context information is retrieved
or received. This is suitable for continuous context information.
History:
• Absolute: context information is taken at absolute points; previous context
information is not used. GPS navigation systems, for instance, only consider the
current location.
• Relative: the difference of the context information over time is important.</p>
        <p>Therefore the context information history must be stored and must be possible
to retrieve. This may be more space and time consuming.</p>
        <p>Information presentation:
• Explicit: The raw monitoring data is the context information; no context model
is needed for interpretation. The raw data presented to the system explicitly
states the context information and the system directly uses this data as-it-is.
• Implicit: The system infers the context information from its input data by using
a context model.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Dynamism of Context Models</title>
        <p>Not always every possible environment of a system can be foreseen at system
development time. The environment of a route planner for example includes highways.
When new highways are built after deployment of the route planner, the route planner
does not show the shorter route that is now possible. These unforeseen changes can
result in a context model that no longer interprets the monitoring data accurately.
Different degrees of dynamic adaptation capabilities of a context model are:
• Static: the context model never changes. This means that the same monitoring
data always results in the same context information.
• Updatable: it is possible to update the context model.
• Dynamic: the environment changes over time, and the context model
continuously adapts to these changes at runtime, i.e. it is dynamic. For instance, context
models consisting of adaptive neural networks keep on learning during
operation.
Context</p>
        <p>Context retrieval
Context model
storage
Dynamism of context
models</p>
        <p>Degree of distribution
Location relative to system
Initiative
Timing
History
Information presentation
Static
Updatable
Dynamic</p>
        <p>Central
Distributed
Extrinsic
Intrinsic
Context-push
Context-pull
Event-driven
Periodic
Absolute
Relative
Explicit
Implicit</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Context-aware systems</title>
      <p>In this section we demonstrate how to use the classification framework presented
above. We describe two cases of context-aware systems, and for each case we give
the corresponding architecture in terms of the framework.</p>
      <sec id="sec-3-1">
        <title>3.1 Tourist Navigation System</title>
      </sec>
      <sec id="sec-3-2">
        <title>Situation</title>
        <p>A local government wants to rent handheld devices with city maps to tourists,
enabling tourists to find their way to the city’s tourist attractions. The handheld device
contains a map of the city, an accurate location sensor, and a digital compass. The
tourist simply selects the desired destination, and the handheld device displays
directions to get there from wherever the tourist is located, keeping the directions accurate
while the tourist is moving.</p>
        <p>Furthermore, the city is expanding rapidly, attractions can be closed, walking
routes blocked; this would all result in continuously inaccurate directions from the
handheld devices. Therefore it would be desirable to update the handheld devices
regularly.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Architecture</title>
        <p>The architecture of such a system is given in Figure 3. The system consists of a
probe that continuously feeds sensor data to a route component. The route component
contains a map component that holds the context model: the city map. The context
information is a combination of the current location and the navigation instructions, and
is continuously sent to the viewer component. Retrieval of the system’s context can
therefore be classified as a periodic context-push. The viewer component displays the
route on the display of the handheld device. The context model is stored only in the
map component, which lies inside the system, making it a central and intrinsic context
model. The context information results implicitly from the monitoring data, as the
tourist’s current location and the route to the destination are based on the city map.</p>
        <p>To update the context model, only the map component needs to be updated. The
probe, the route calculating program and the viewer do not need to be changed.
Explicitly locating the context model as the city map simplifies the updating process.</p>
        <p>Viewer</p>
        <p>System</p>
        <p>Context
information</p>
        <p>Route</p>
        <p>Probe</p>
        <p>Monitoring</p>
        <p>data
Map</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.2 Museum Tour Guide</title>
      </sec>
      <sec id="sec-3-5">
        <title>Situation</title>
        <p>
          A museum offers its visitors small handheld devices that automatically display
information about the exhibits exposed in the room the visitor walks around in ([
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]
[
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]). These devices are very small and do not contain much capacity for data storage,
so they cannot store all the information about all the exhibits present in the museum.
Furthermore, the museum frequently changes the location of the exhibits among the
different rooms, adding new exhibits and removing others. Therefore each exhibit
provides information about itself upon request.
        </p>
      </sec>
      <sec id="sec-3-6">
        <title>Architecture</title>
        <p>The system architecture is shown in Figure 4. Each exhibit presents its information
explicitly to the handheld device when the latter enters the room. The handheld
devices emit a signal, and upon reception of this signal by the exhibit the context
information is sent back. The information about the exhibits is directly displayed on the
device by the viewer component.</p>
        <p>The context information is stored externally: not in the handheld device, but with
the exhibits. The context information is also distributed over the different exhibits, as
each exhibit only contains information about itself. After a request for information
(the signal from the device) the exhibits explicitly present their information; no
context model is needed to interpret the exhibit information. Furthermore, this system
performs a context-pull based on the event of entering a room. As the context
information is explicitly presented by the exhibits, no context model is needed. Therefore
nothing needs to be adapted when an exhibit is moved from one room to the other.
When a visitor with a handheld enters the new room, the context information from the
exhibit is automatically sent again.</p>
        <p>System
Viewer</p>
        <p>context information
Exhibit</p>
        <p>Exhibit</p>
        <p>Exhibit</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Related Work</title>
      <p>
        In 1994 Schilit [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] describes four classes of context-aware applications along two
dimensions: whether the task at hand is getting information or doing a command, and
whether it is effected manually or automatically.
      </p>
      <p>
        Pascoe [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] proposes a taxonomy of features for context-aware systems, which
includes contextual sensing, contextual adaptation, contextual resource discovery and
contextual augmentation (the ability to associate digital data with a user’s context).
This taxonomy divides the process of retrieving context in several steps, but does not
give an overview of the options for each step.
      </p>
      <p>
        Similarly, Dey [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] also presents a taxonomy of features that a context-aware
system might support: presentation of information and services to a user, automatic
execution of a service, and tagging of context to information for later retrieval.
      </p>
      <p>
        Chen [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] divides context-aware systems into two categories: an active
contextaware system automatically adapts to discovered context by changing the system’s
behavior; a passive context-aware system presents the new or updated context to an
interested user or makes the context persistent for the user to retrieve later. Chen
furthermore distinguishes between a symbolic location model (representing location as
abstract models) and a geometric location model (representing location as
coordinates). Different data structures for the expression and exchanging of context
information include key-value pairs, tagged encoding, object-oriented models, and
logicbased models. Finally, Chen divides possible context-aware architectures in
centralized and distributed.
      </p>
      <p>
        Sun [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] gives three main methods to obtain context information: explicit query,
polling, and event-driven.
      </p>
      <p>
        However, most research on context-awareness has focused on creating reference
architectures for specific application domains. Examples of these architectures are the
Context Toolkit [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the Stick-e Notes [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and HP’s CoolAgent [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Most of these
architectures contain elements for the storage and the retrieval of context information,
and often the implementation of the elements differ between different architectures.
These differences served as a basis for the classification framework presented in this
paper.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions</title>
      <p>
        Context-awareness is a necessary feature of automatic dynamic systems that need to
adapt to context changes. Many current context-aware systems are
applicationspecific, and are often developed in an ad-hoc fashion. However, architectural
abstractions are needed to build large and complex context-aware systems, because not
explicitly modeling context-awareness can result in unnecessary complex
implementations. We divided the concept of context-awareness into three phases: 1)
environment monitoring, 2) interpretation of the monitoring data through the context model,
and 3) adaptation of the system to a changed context. Architectural abstractions exist
for the first and for the third phase, see for example Dey [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] for the first phase and
Oreizy [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for the third phase. However, to our knowledge no architectural
abstractions exist for phase two: the interpretation of monitoring data through a context
model. In this paper we presented these abstractions in a classification framework for
the storage of the context model and the retrieval of the context information. This
framework supports the development of context-aware systems by offering an
overview of the possible choices a designer has. We demonstrated the use of the
classification framework by modeling two context-aware systems.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Acknowledgements</title>
      <p>This research has been sponsored by ConIPF (Configuration in Industrial Product
Families), under contract no. IST-2001-34438. The ConIPF project aims to define and
validate methodologies for product derivation that are practicable in industrial
applications.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>B.</given-names>
            <surname>Schilit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Adams</surname>
          </string-name>
          , R. Want, “
          <article-title>Context-aware computing applications”</article-title>
          ,
          <source>Proceedings of IEEE Workshop on Mobile Computing Systems and Applications</source>
          , pp.
          <fpage>85</fpage>
          -
          <lpage>90</lpage>
          ,
          <string-name>
            <surname>Santa</surname>
            <given-names>Cruz</given-names>
          </string-name>
          , California, December,
          <year>1994</year>
          , IEEE Computer Society Press.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>G.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kotz</surname>
          </string-name>
          , “
          <article-title>A Survey of Context-Aware Mobile Computing Research”</article-title>
          ,
          <source>Technical Report TR2000-381</source>
          , Dept. of Computer Science, Dartmouth College, November,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Shaw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          ,
          <article-title>Software Architecture: Perspectives on an emerging discipline</article-title>
          , Prentice Hall,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.K.</given-names>
            <surname>Dey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Salber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.D.</given-names>
            <surname>Abowd</surname>
          </string-name>
          , “
          <article-title>A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications”, Anchor article of a special issue on context-aware computing in the Human-Computer Interaction (HCI) Journal</article-title>
          , Volume
          <volume>16</volume>
          (
          <issue>2-4</issue>
          ), pp.
          <fpage>97</fpage>
          -
          <lpage>166</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.J.</given-names>
            <surname>Brown</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.D.</given-names>
            <surname>Bovey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          , “
          <article-title>Context-Aware Applications: from the Laboratory to the Marketplace”</article-title>
          ,
          <source>IEEE Personal Communications</source>
          , Volume
          <volume>4</volume>
          (
          <issue>5</issue>
          ), pp.
          <fpage>58</fpage>
          -
          <lpage>64</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Hertz</surname>
            ,
            <given-names>NeverLost</given-names>
          </string-name>
          , Web page available at: http://hertzneverlost.com.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Navman</given-names>
            <surname>Europe</surname>
          </string-name>
          , Web page available at: http://www.navman-europe.com.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>O.</given-names>
            <surname>Cakmakci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Coutaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Van Laerhoven</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Gellersen</surname>
          </string-name>
          , “
          <article-title>Context Awareness in Systems with Limited Resources”</article-title>
          ,
          <source>Artificial Intelligence in Mobile Systems (AIMS)</source>
          ,
          <source>ECAI</source>
          <year>2002</year>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>29</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>P.</given-names>
            <surname>Oreizy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gorlick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Taylor</surname>
          </string-name>
          , D. Heimbigner, G. Johnson,
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Quilici</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rosenblum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Wolf</surname>
          </string-name>
          ,
          <article-title>"An Architecture-Based Approach to Self-Adaptive Software," IEEE Intelligent Systems</article-title>
          , Volume
          <volume>14</volume>
          (
          <issue>3</issue>
          ), pp.
          <fpage>54</fpage>
          -
          <lpage>62</lpage>
          , May/June,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Harter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hopper</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Steggles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ward</surname>
          </string-name>
          , P. Webster, “
          <article-title>The Anatomy of a ContextAware Application”</article-title>
          ,
          <string-name>
            <surname>Wireless</surname>
            <given-names>Networks</given-names>
          </string-name>
          , Vol.
          <volume>8</volume>
          (
          <issue>2-3</issue>
          ), pp.
          <fpage>187</fpage>
          -
          <lpage>197</lpage>
          , February,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Yonezawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Clarkson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Yasumura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mase</surname>
          </string-name>
          ,
          <article-title>"Context-aware Sensor-doll as a Music Expression Device"</article-title>
          ,
          <source>CHI2001 Proceedings Extended Abstracts</source>
          , pp.
          <fpage>307</fpage>
          -
          <lpage>308</lpage>
          ,
          <string-name>
            <surname>ACM</surname>
            <given-names>SIGCHI</given-names>
          </string-name>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>H.</given-names>
            <surname>Chen</surname>
          </string-name>
          , S. Tolia, “
          <article-title>Steps towards creating a context-aware agent system”</article-title>
          ,
          <source>TR-HPL-2001- 231</source>
          ,
          <string-name>
            <given-names>HP</given-names>
            <surname>Labs</surname>
          </string-name>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>B.B.</given-names>
            <surname>Bederson</surname>
          </string-name>
          , “
          <article-title>Audio augmented reality: A prototype automated tour guide”</article-title>
          ,
          <source>Proceedings of the CHI'95 Conference on Human Factors in Computing Systems</source>
          , pp.
          <fpage>210</fpage>
          -
          <lpage>211</lpage>
          , New York, NY, ACM Press,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Fels</surname>
          </string-name>
          et al.,
          <article-title>"Progress of C-MAP: A context-aware mobile assistant"</article-title>
          ,
          <source>Proceedings of AAAI 1998 Spring Symposium on Intelligent Environments, Technical Report SS-98-02</source>
          , pp.
          <fpage>60</fpage>
          -
          <lpage>67</lpage>
          , March,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Pascoe</surname>
          </string-name>
          , “
          <article-title>Adding Generic Contextual Capabilities to Wearable Computers”</article-title>
          ,
          <source>Proceedings of the 2nd International Symposium on Wearable Computers</source>
          , pp.
          <fpage>92</fpage>
          -
          <lpage>99</lpage>
          , Pittsburgh, Pennsylvania, October,
          <year>1998</year>
          , IEEE Computer Science Press.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sun</surname>
          </string-name>
          , J. Sauvola, “
          <article-title>Towards a Conceptual Model for Context-Aware Adaptive Services”</article-title>
          ,
          <source>4th International Conference on Parallel and Distributed Computing, Applications and Technologies</source>
          , pp.
          <fpage>90</fpage>
          -
          <lpage>94</lpage>
          , Chengdu, China,
          <year>August</year>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>