Management of the SCOUT Environment Layer
General information on SCOUT (can be skipped):
The term "Mobile Web" is typically used when users employ their mobile device (e.g., smart phone, PDA) and a dedicated mobile browser (e.g., Skyfire, Opera Mini) to access the web. Although the Mobile Web makes websites accessible anywhere and anytime, the interface limitations of mobile devices (e.g., small screen, limited input capabilities) still hinder the widespread mobile use of the web. Furthermore, in a mobile setting (e.g., driving, walking, sightseeing), users are often unable or reluctant to spend large amounts of time locating the information and services that they need at that particular moment and time. For instance, when you are walking around in your free time and want to view a visited monument’s history, or find out what items a nearby shop sells, you do not want to constantly "google" for the necessary information. It is important that mobile users can get the information or services at the time and place that they need it, with minimal effort.
The SCOUT framework allows the development of context-aware, mobile applications that provide information (and services) to the user at the time and place they require it. For this purpose, SCOUT uses so-called detection techniques to locate information related to physical entities (people, places and things) in the user’s surroundings. For instance, by using miniscule, inexpensive transponders (e.g., RFID tags) to tag objects with references to associated online data sources (e.g., online shop catalog, FOAF profile), mobile devices with built-in detectors (e.g., RFID readers) can easily obtain online data related to their surroundings. Furthermore, existing online Semantic Web services such as LinkedGeoData can be employed to obtain a list of physical entities in the user’s vicinity (based on his GPS position), together with extensive information on the entities. Based on the detected entities and their online information, SCOUT constructs and maintains an abstract view on the user’s environment called the Environment Model. Applications can query this model to obtain information on any part of the user’s environment, to determine which information is useful to the user at that time: for instance, a nearby shop is selling products in which the user is interested, or historical information on nearby monuments in case of a tourist setting. Behind the scenes, the online information sources are accessed to obtain the necessary information. The power of SCOUT lies in the fact that it relies on existing, online semantic data that can be linked to the user’s physical environment in various ways (e.g., using RFID tags, or online services), and therefore does not require specialized, proprietary data providers to be setup. Furthermore, it runs on the user’s mobile device itself, and thus no expensive middleware (i.e., intermediary servers) needs to be installed.
Mobile computing has become a huge research domain with numerous applications in real-life, as powerful mobile computing devices (e.g., smartphones, PDAs) together with ubiquitous mobile connectivity (e.g., 3G, WiFi) have become commonplace. The SCOUT framework builds upon this mobile revolution, and allows mobile applications to be fine-tuned to the user’s mobile context in a flexible and scalable way. A lot of research has already been put in this framework, resulting in a powerful, efficient system that can be used for a variety of purposes, or extended to increase its usefulness and performance. Below, you can find several research thesis topics related to the SCOUT framework. As SCOUT runs on the Android platform, any of the thesis topics involve development for this mobile platform (however, no previous knowledge on Android development is required).
The most interesting and challenging part of the SCOUT framework is without a doubt the Environment Layer (see webpage on SCOUT), which is responsible for the management of the data and enabling client applications to query any piece of the user's physical environment. The Environment Model provides a query-able view over the user's environment, and transparently integrates all the data retrieved from encountered data sources. Implementing this model is quite a challenge, as on one hand, all data needs to be available to resolve application queries, but on the other hand, mobile devices do not have the capabilities to simply download and store all detected information. For this reason, SCOUT currently supports two important optimization techniques to realize the Environment Model: (1) a query analysis technique, which analyzes application queries and the data in encountered data sources to identify relevant sources for a given query, and (2) a caching mechanism which selectively stores popular data sources and query results locally. The Environment Model is thus a partially materialized, partly virtual view on the user's environment. There are various aspects of the Environment Model that can be the subject of a thesis.
As mentioned above, environment data should be cached locally for later use. In this setting, either the sources themselves can be stored, or query results can be cached for later re-use (see (2) above). A basic source and query result caching system already exists, and can be built upon to develop more advanced caching strategies. For instance, the currently developed source caching strategies each have their own drawbacks, which can be mitigated by constructing a hybrid caching approach. Furthermore, the current query result caching system could be extended to allow for dynamic re-arrangement of the cached query results. For instance, cached query results can be combined into one cached resultset (e.g., all women with dogs + all women with cats => all women) if it means less data will be duplicated (e.g., duplicates are women with cats _and_ dogs). Inversely, the same resultset can be divided into several result sets, so less filtering will need to occur if there is not an exact match with a posed query. Therefore a trade-off needs to be made between the amount of data to be stored, and performance loss by applying filtering. The cached query results should also be updated whenever new data sources are encountered. This needs to be done in an efficient way, as many data sources will be encountered in a mobile setting.
Also note that, until now, we have only considered indexing and caching "encountered" data sources, meaning the user has already encountered the physical entity (e.g., person, place or thing) associated with the data source. However, when the user is taking a certain route through the city, or visiting a place known beforehand, non-encountered sources associated with entities in those regions should also be cached, to increase query performance. For this purpose, data sources can be fetched and cached pro-actively, depending on the user’s future plans, detected movement patterns, etc. Finally, the aforementioned cache strategies (i.e., query caches and encountered/non-encountered source caches) should all be incorporated into a general caching system, as both types have their advantages and disadvantages in certain situations. How these cache types would cooperate (e.g., to share common data) and how they would be managed (e.g., assigning priority and storage space depending on the situation) still needs to be investigated.
- Programming for Android
- Learning about caching strategies, pre-fetching
- Learning Semantic Web technology