Chapter 5: Realizing a Metadata Framework 185 We are also designing more advanced harvesters to extract informa- tion directly from the binaries. One harvester, still in research, tries to recognize different objects from images, such as faces, airplanes, or birds. Other advanced harvesters may perform signal processing on music to recognize the genre, type, or even artist, even if there is no embedded metadata available. These harvesters usually consume con- siderable processing power and therefore the battery may soon run out. To avoid these situations, the Harvester Manager also uses context information to launch advanced harvesters while the device is being charged. Since the Harvester Manager accepts new harvesters as plug-ins, it is possible to dynamically add new harvesters as soon as new content types are born or when new advanced harvesting algorithms are developed. 5.7.5 Context Engine Context Engine (CE) is a component enabling building context-aware applications by providing a unifi ed access to the context information. Context Engine is a part of our metadata framework, but it is also an independent component that was developed before we began devel- oping the metadata framework. CE runs on a mobile device and handles storing and distributing of all context information in an event- based manner. An application can subscribe to the context informa- tion, and eventually receive notifi cations from the CE whenever there are changes in the environment (Figure 5-9). Every application can either produce or consume context informa- tion. Context producers provide new context information, such as location and nearby Bluetooth devices, to the CE, while the context Figure 5-9. The components of Context Engine.
Personal Content Experience Page 208 Page 210