Article Preview
TopIntroduction
Mobile computing has attracted an intensive research attention and is nowadays everywhere. Indeed, important progress has been performed thanks to the popularity and technological advances of mobile devices and wireless networks. So, we now consider applications where users continuously access data of interest independently of the specific communication technology used (e.g., 3G, WiFi), the type of network (infrastructure-based vs. ad hoc), the access model (push, pull, or hybrid) (Delot, Ilarri, Thilliez, Vargas-Solar, & Lecomte 2011), the data providers (powerful data servers, peers, or simple sensors with limited capabilities), the volatility of the data of interest (e.g., access to relatively static data stored on databases vs. highly-dynamic data fed by a Data Stream Management System (Golab & Özsu, 2003) or retrieved by sensors on the fly), and even the mobility of the users and the data sources (e.g., classical mobile users with a smartphone vs. drivers in a vehicular ad hoc network (Cenerario, Delot, & Ilarri, 2011). In general, scenarios with dynamic data (e.g., location data or other data provided by sensors) are quite frequent in this context.
Abstracting users from the heterogeneity of the underlying data and providing them with more accurate and understandable results is crucial, and Semantic Web technologies could facilitate undertaking this challenge. They can help the development of mobile computing applications, as they facilitate understanding the meaning of data and the meaning of the user requests. As an example, the problem of processing continuous location-dependent queries has been extensively studied (Ilarri, Mena, & Illarramendi, 2010). However, most existing systems do not support a flexible way of formulating queries.
Whereas the use of ontologies (Gruber, 1995) and Description Logics (DLs) (Baader, Calvanese, McGuinness, Nardi, & Patel-Schneider, 2003) could help in this sense, they are not suitable for situations where there are changes in the property values. For instance, the GPS position of a mobile device is subject to constant changes. These changes in the knowledge can require to reclassify the full ontology before reasoning with it. For example, if the definition of the class of available emergency vehicles depends on their location, the constant changes in their positions require to reclassify the ontology continuously. However, this is not acceptable in applications where the changes in the data are a common situation, as this may dramatically decrease the performance of the system.
Apart from mobile scenarios, where the location is potentially continuously changing, there is indeed an important number of applications that require dealing with data streams, such as intrusion detection in computer networks, monitoring applications using sensor data, or online analysis of stock prices (Cugola & Margara, 2012). Indeed, attributes that could change frequently are very common in many environments (e.g., availability of a taxi cab, occupants of a vehicle, etc.).
In this paper, we give a step forward in the direction of performing reasoning with continuously changing data by proposing an efficient approach to process continuous queries over semantic data streams. Specifically, we present QueryGen, a Knowledge Management system which is able to deal with data that are continuously changing. QueryGen is not an ontology reasoner, but combines the benefits of DL reasoners and databases to manage the dynamicity of the knowledge, making it possible to retrieve the instances that are relevant to a given query in a continuous way.
The main features of our proposal are: