Chapter 5: Realizing a Metadata Framework 187 data. Context data has the current value of the context, and the meta- data describes the context. A context object can store the current temperature, for instance, and the metadata states from where the data was obtained, when it was last updated, and how accurate the context information is. Context Engine can have one or more Script Engines that can make decisions based on context information to create new more meaningful context information. For example, if the temperature is +25°C and the luminance value is high, we can conclude that it is a warm day. This reduces the traffi c between the applications and the CE, as applications do not need to query each context data separately. Furthermore, some applications need several context objects to be at certain values before they react. If all of the conditions can be checked in the engine, the separate context values do not need to be sent, only the resulting abstract context. Not all context information is created inside the terminal. For instance, weather, whereabouts of friends, or even location, can be provided by external sources. All external context sources use Context Exchange Protocol (CEP) to exchange context related information with Context Engine. CEP is used in open source Multiuser Publishing Envi- ronment tool and the specifi cation of CEP is freely available from 34 MUPE site. 5.7.5.1 Context Terminology Unfortunately, context awareness is still a relatively new area. As a result, there are not yet clear and fi xed meanings for all terms. There- fore, the defi nitions here are not necessarily the same as elsewhere, although we keep the terms fairly generic. Context Object is a basic unit of context information. It has a seman- tic meaning defi ned by some ontology and a range of values. Context Engine itself does not care about semantic meanings, but obviously applications using context objects attach meaning to it. All Context Objects in the Context Engine have a type (or sometimes a name is used instead of the type) and a source. As far as CE is con- cerned, both are plain strings that uniquely identify the object. Types are defi ned in context ontology, thereby declaring the semantic meaning of the object. Context Engine treats the type as a path from the root to leaf node in a tree that is defi ned by the ontology. Each arc between nodes is separated by a “:” sign. Subscriptions to types are considered as path prefi xes, so events are generated for all types 34 http://www.mupe.net

Personal Content Experience - Page 211 Personal Content Experience Page 210 Page 212