Nowadays people are exposed to huge amounts of information that are generated continuously; the ever-increasing use of mobile devices and their pervasiveness enable users to receive and create new contents almost anywhere. Currently, Location-Based Services (LBSs) are very popular, as they offer users customized information taking into account their current location. However, whereas users have access to a wide variety of information, current mobile apps, Web pages, and LBSs are designed for specific scenarios and goals. So, the information about the context they manage is not explicitly represented but embedded in their code. Moreover, developing services ad hoc for specific purposes leads to the fact that there exist thousands of them (even with the same purpose), and therefore it is difficult to choose the most suitable one. Therefore, currently it is a challenge to provide a common framework that allows to manage knowledge obtained from data sent by heterogeneous moving objects (textual data, multimedia data, sensor data, etc.). In addition, the challenge is even greater considering situations where the system must adapt itself to contexts where the knowledge changes dynamically and in which moving objects can use different underlying wireless technologies and positioning systems.
We propose the system SHERLOCK, which offers a common framework with new functionalities for LBSs. As its namesake, the well-known Arthur Conan Doyle's character, SHERLOCK uses abductive and deductive reasoning to infer information to answer user information requests (e.g., by providing interesting LBSs). Our system searches and shares up-to-date knowledge from nearby devices to relieve the user from knowing and managing such knowledge directly. Besides, the system guides the user in the process of selecting the service that best fits his/her needs in the given context. Finally, SHERLOCK processes user requests continuously to provide up-to-date answers in heterogeneous and dynamic contexts. Ontology reasoning and alignment methods are used to represent and manage, in a distributed way, the knowledge that describes moving and static objects (e.g., persons, vehicles, etc.) and interesting areas in a scenario. Moreover, the system uses mobile agent technology to carry the processing tasks wherever necessary in the dynamic underlying networks at any time.