A Review of the Role of Sensors in Mobile Context-Aware Recommendation Systems

Recommendation systems are specialized in offering suggestions about specific items of different types (e.g., books, movies, restaurants, and hotels) that could be interesting for the user. They have attracted considerable research attention due to their benefits and also their commercial interest. Particularly, in recent years, the concept of context-aware recommendation system has appeared to emphasize the importance of considering the context of the situations in which the user is involved in order to provide more accurate recommendations. The detection of the context requires the use of sensors of different types, which measure different context variables. Despite the relevant role played by sensors in the development of context-aware recommendation systems, sensors and recommendation approaches are two fields usually studied independently. In this paper, we provide a survey on the use of sensors for recommendation systems. Our contribution can be seen from a double perspective. On the one hand, we overview existing techniques used to detect context factors that could be relevant for recommendation. On the other hand, we illustrate the interest of sensors by considering different recommendation use cases and scenarios.


Introduction
The so-called recommendation systems or recommender systems are systems specialized in providing recommendations of interest to users.Typical recommendation systems provide suggestions about films to watch, books to read, products to buy, restaurants, and so forth.Recommendation systems have attracted intensive research attention due to their interest in both e-commerce sites (recommending relevant products to users to increase the benefits and also the customer satisfaction) and information systems in general (providing useful information according to the needs of the users).
Traditional recommendation systems consider a static set of potential items (elements that can be recommended) and try to recommend relevant items to the users.However, recent approaches have highlighted the importance of considering the context of the situation in which the recommendation process takes place, in order to offer more relevant and precise recommendations.This has given rise to the appearance of context-aware recommendation systems (CARS).These systems can take into account a variety of context factors that may have an impact on the relevance of an item (i.e., make the item more or less relevant), such as, for example, the location of the user, his/her mood, and the activity that he/she is performing.
To determine the context of a recommendation situation, different types of sensors can be used.These sensors can continuously monitor the environment of the user and modify the previously proposed recommendations dynamically and/or automatically trigger new recommendations upon the detection of specific events.However, despite the interest and the importance of the use of sensors in the context of recommendation systems, to the authors' knowledge, there is no in-depth study that relates the fields of sensors and recommendation systems.
In this paper, we present a survey of the state of the art on the use of sensors in recommendation scenarios.We review existing techniques for context detection and different recommendation scenarios and projects that illustrate their use.We have selected an extensive set of papers to try to ensure suitable representativeness of different techniques and use cases.Besides, we have made sure that popular wellreferenced papers significantly related to the topic of our survey are included.
Figure 1 provides an overview of the topics covered in the paper (numbers in brackets indicate specific sections).The structure of the rest of this paper is as follows.In Section 2, we describe the technological context of this survey, including background information on recommendation systems, context-aware recommendations, and sensors.In Section 3, we focus on the problem of context detection and study existing methods for the identification of different context factors.In Section 4, we describe different recommendation use cases that illustrate the use and interest of context detection.In Section 5, we present some perspectives and open issues.Finally, we conclude the paper with Section 6.

Technological Context
In this section, we present the technological context of this survey.First, in Section 2.1, we introduce the concept of recommendation system.Then, in Section 2.2, we consider the application of the idea of context-awareness to recommendation systems.Finally, in Section 2.3, we present an overview of the different types of sensors that can be considered.

Recommendation Systems.
Users are frequently overloaded with potential choices regarding aspects such as which book to read next, which film to watch, which research papers to study, and which restaurant could be a good choice for dinner.Recommendation systems or recommender systems (RS) [1][2][3][4] come to the rescue and aim at automatically suggesting relevant items to users.For that purpose, they usually try to estimate the rating (e.g., a numeric score in the range from one to five or simply a "like"/"dislike" characterization) that the user would provide for a specific item; then, depending on the rating estimated, the item is recommended to the user or not (e.g., an item is recommended if the estimated numeric score exceeds a given threshold).Traditional recommendation approaches are usually based on either collaborative filtering or content-based recommendations [2]: (i) Collaborative filtering approaches exploit the collaboration among several entities (e.g., users) in order to decide appropriate recommendations.For example, user-based collaborative filtering relies on the assumption that a user will very probably like items that other similar users have liked in the past.On the other hand, item-based collaborative filtering considers that a rating for an item can be estimated based on the ratings that the user provided for similar items in the past.These approaches obviously require the definition of an appropriate similarity measure (or, inversely, a distance metric) between users and between items, respectively.(ii) Content-based approaches suggest relevant items based on the contents of the items (represented as sets of features or attributes), which are compared with a user profile that represents the preferences of the user.
A number of techniques for the different recommendation approaches have been proposed.Moreover, different adjustments can be applied to try to solve some problems exhibited by the traditional approaches [5].As an example, a typical challenge is the cold start problem [6], which underlies, for example, the difficulty of recommending items that have not yet been rated; other typical problems are those of spam vulnerability and high dimensionality.Besides, the exclusive use of a single recommendation approach is not always appropriate.Thus, content-based approaches can only be applied when items are well described by using a set of features.Furthermore, offering varied items could be problematic (due to the risk of overspecialization, items different from others that the users liked in the past are hardly recommended to them).Similarly, collaborative filtering has, for example, difficulties in dealing with the sparsity of ratings (items rated by very few users are hardly recommended) and with the potential lack of similar users.To overcome these difficulties, hybrid recommendation systems are proposed as a better solution [2].
Finally, it is interesting to highlight that, from the point of view of the recommendation model, it is possible to distinguish between pull-based recommendations and pushbased recommendations.On the one hand, a pull-based recommendation model is a reactive approach that implies suggesting items to a user when the user has explicitly requested recommendations of a certain type of item.On the other hand, a push-based recommendation model is a proactive approach that implicitly recommends relevant items to a user without any explicit request from the user; the recommendation in this case could be triggered by some external event or by an action performed by the user.

Context-Aware Recommendation Systems.
Traditional recommendation approaches face accuracy problems in some cases where elements related to the context are relevant in order to decide appropriate recommendations.For example, the weather conditions should play a key role when deciding whether open-air or indoor activities should be recommended.As another example, recommending to a walking user a restaurant that is located too far away may be inappropriate, even if the recommendation system estimates that the user will appreciate that restaurant.Thus, the relevance of an item depends on the context, which notably involves spatiotemporal criteria (e.g., see [7]) but may also include other context factors.
The study presented in [8] defines the context for a specific application scenario as "any information that can be used to characterize the situation of an entity," where an entity could be "a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves."Other definitions of context have been introduced in works such as [9,10].The work presented in [11] emphasizes the fact that the context is part of a process and not just a state.In [12], the context of use is considered to be composed of three dimensions: the end users, the hardware and software computing platform the user has to interact with, and the physical environment of the interaction.The meaning of "context-aware" was defined in [13] by indicating that "a system is context-aware if it uses context to provide relevant information and/or services to the user, where relevancy depends on the user's task."The work presented in [14] highlights such adaptation of the properties of a system to improve the user interaction, called adaptability when it is initiated by the user and adaptivity/adaptiveness when it is initiated by the system.How to model context has been studied in papers such as [15].The work presented in [16] focuses on the study of the contexts present in mobile urban environments, as opposed to indoor contexts.Due to the relevance of context information, context-aware computing has aroused significant research attention [17][18][19][20][21][22].A popular example of context-aware computing is the services that adapt the information provided to the user according to his/her location, called Location-Based Services (LBSs) [23][24][25][26][27].
With the rise of ubiquitous computing, some works have addressed the problem of handling its impact on the recommendation process.For example, a context-aware collaborative filtering system is presented in [28], which tries to recommend appropriate items for the current context based on what other similar users have done in similar contexts.The concept of context-aware recommendation system (CARS) [29][30][31] has been presented to denote approaches that explore this new research avenue.A pioneer proposal for CARS is [29].In order to improve the recommendations by exploiting contextual information, the classical 2D paradigm ( ×  space) is extended to a multidimensional recommendation model that offers recommendations based on multiple dimensions ( ×  × C space).Three different context-aware recommendation paradigms are introduced [30,32]: (1) prefiltering, where the contextual information is used to filter the dataset before applying traditional recommendation algorithms; (2) postfiltering, where the contextual information is initially ignored and the ratings are predicted using any conventional 2D recommendation system, adjusting as a last step the resulting set of recommendations for each user by using contextual information; and (3) contextual modeling, where the context information is used directly in the modeling technique.As another example, in [33], a graphbased framework is proposed to model and incorporate contextual information into the recommendation process.
Moreover, the concept of mobile CARS or context-aware mobile recommendations [34] can be used to emphasize the relation with mobile computing and ubiquitous systems: mobile users are continuously moving and the context can change very dynamically due to actions performed by the user and/or external events.Thus, the mobility is a key aspect that leads to dynamic contexts, rather than static contexts that could be assumed immutable during the recommendation process.The term UbiCARS has been proposed in [35], highlighting the combination of the characteristics of both ubiquitous systems and CARS.According to [36], additional research is needed to bridge the gap between the fields of mobile computing and recommendation systems.
In these highly dynamic scenarios, proactive (i.e., pushbased) recommendation approaches [37] are particularly interesting.Besides, due to the need of capturing the continuous changes in the environment, sensors play a key role to enable the management and exploitation of the available context data.
International Journal of Distributed Sensor Networks 2.3.Sensors.Sensors of different types are the key elements that allow the detection of context elements that can later be exploited by context-aware recommendation systems.Traditional sensors are physical or hardware sensors, which capture certain raw data from the environment.However, we can also consider the existence of virtual or software sensors [38], which provide higher-level observations usually obtained by fusing the measurements of several sensors (e.g., a location obtained by combining different positioning mechanisms).Moreover, social sensors [39] provide data based on the social media, such as social networks (e.g., Facebook, Foursquare, and Flickr), blogs, or microblogs (e.g., Twitter); as an example, the proposal in [40] exploits microblogs to detect events in the vicinity.As another example, we can consider the user's calendar as a sensor [41].Finally, it is possible to consider even the existence of human sensors, as they can directly provide interesting data using their own senses or managing other sensors in specific ways; so, humans can provide volunteered geographic information (VGI) [42] or participate in spatial crowdsourcing [43] tasks.
Users with their mobile devices have become an important source of sensor data [44][45][46], as it is possible to exploit the sensors available in existing smartphones: inertial sensors, compass, GPS, microphone, camera, proximity sensors, ambient light sensors, accelerometers, gyroscope, and so forth.The term collaborative sensing, mobile crowdsensing, or participatory sensing implies the cooperative use of sensors in order to obtain an overall and more complete perspective of the environment [45,47].The use of collaborative sensing for urban transportation is explored in [48].
Along this survey, we will mention different types of sensors that are considered particularly useful for contextaware recommendation systems.

Context Detection
The survey proposed in [34] contains a wide variety of references presenting context-aware recommendation systems for mobile environments.In that review of the state of the art, the authors discuss how the contextual information is collected, with the use of sensors (e.g., GPS, accelerometer, microphone, temperature sensor, and pressure sensor) being an essential element for context detection.
In the following, we start in Section 3.1 by illustrating some typical contextual data that can be of interest for context-aware recommendation systems.Then, we analyze existing techniques proposed to detect different context elements by using sensors.Firstly, in Section 3.2, we overview existing geopositioning techniques.Secondly, in Section 3.3, we present techniques used for the detection of the transportation means used by a mobile user.Thirdly, in Section 3.4, we focus on the detection of the user's mood.Fourthly, in Section 3.5, we tackle the detection of events in transportation.Finally, Section 3.6 is devoted to the identification of the activity that a user is performing.It should be noted that sometimes the measurements of several sensors are combined to obtain the value of a context factor of interest; for example, the approach presented in [49] estimates the orientation of a mobile device based on data collected by its accelerometer, magnetometer, and gyroscope.

Examples of Context Data for CARS.
An interesting review about context-aware recommendation systems is presented in [50,51].The context is characterized by features such as the physical conditions (e.g., lighting, traffic conditions, temperature, weather, and noise levels), computing (e.g., hardware, software, and network), location, time, user features (e.g., interests, goals), social relations (e.g., friends, neighbors, and coworkers), and activity (e.g., tasks, objectives, and actions).Several mechanisms to obtain the contextual information needed are mentioned: explicit sources (the information is entered by the user manually); implicit sources (i.e., data obtained from observations of the user behavior); inference (e.g., data obtained by using statistical or data mining methods); location context (often sensed by using positioning mechanisms such as GPS and Wi-Fi location sensors or by using explicit methods that require scanning RFID tags); computing context, captured implicitly by the mobile device; time context, which can be entered either explicitly if it refers to the time available for a user activity or implicitly by checking the device's internal clock; physical conditions, typically captured implicitly from the environment (e.g., in the case of the noise level sensed by using a microphone); activity context, by using explicit procedures of user interactions, such as manual text input; user context, such as the user's interests that can be obtained, for example, through user interactions with the system; and social relations context, which can be represented either explicitly by a group structure or implicitly by capturing data from the recommendation systems.
As another illustrative example of the type of context data that could be considered, it is interesting to mention the data collected from an Android mobile application called South Tyrol Suggests (STS) (https://play.google.com/store/apps/details?id=it.unibz.sts.android), which provides context-aware suggestions for accommodations, attractions, events, and restaurants in South Tyrol.Contexts in the dataset available at http://students.depaul.edu/∼yzheng8/datasets/Data STS.zip are composed of 14 context dimensions: transport way (walking, bicycle, car, and public), weekday (weekday, weekend), mood (happy, sad, active, and lazy), companion (alone, friends, family, girlfriend, and children), time available (half day, one day, and more than one day), knowledge of the surroundings (new to area, returning visitor, and citizen), travel goal (visiting friends, business, religion, healthcare, social event, education, landscape, fun, and activity/sport), distance to the item (far away, nearby), budget (budget traveler, price for quality, high spender, and free), crowdedness of the POI (crowded, not crowded, and empty), season (spring, summer, autumn, and winter), temperature (burning, hot, warm, cool, cold, and freezing), time of the day (morning, noon, afternoon, evening, and night), and weather (clear sky, sunny, cloudy, rainy, thunderstorm, and snowing).

Geolocalization. The use of the Global Positioning System
(GPS) [52,53] is now widespread and many mobile devices have a GPS receiver (e.g., current so-called smartphones).With GPS or analogous satellite-based techniques (such as the upcoming European Galileo [54]), it is possible to capture the location of a mobile device with good accuracy.
Nowadays, GPS sensors are available in many different devices, from vehicles to smart cellphones.However, these sensors do not offer good signal readings (or no signal at all) within buildings, as they need a clear satellite view.Nevertheless, there exist other sensor-based techniques that allow positioning a device in those cases in which GPS is not a valid solution.For instance, anchor/beacon techniques provide global coordinates (even in indoor locations) by placing some predefined reference nodes in the environment (with known GPS coordinates) and then estimating the global coordinates of other nodes by exchanging messages [55,56].Interesting surveys on indoor positioning methods can be found in [57,58].Even in outdoor scenarios, less precise positioning techniques (e.g., network-based positioning [59]) can be applied if a GPS receiver is not available or if the device is in an area with less than four satellites in view or even simply to try to avoid the energy consumption of the GPS receiver.
The location of a mobile device is a key context factor that can be exploited by the so-called location-based recommender systems (e.g., [60][61][62][63][64]).An example is the work by Savage et al. [64], in which the authors present a recommendation system that uses different information sources, including the user's location, to obtain proper recommendations.The location is calculated by using the user device's sensors as well as using the user's social network profiles.Another interesting approach with a similar spirit is [63], which exploits location-based information (gathered from the user's mobile device), among other types of information, and then uses a Bayesian network-based model to infer suitable item recommendations.As a final example, the Location-Aware Recommendation System (LARS) [62] uses location-based ratings to provide recommendations.Some other works focus on the side effects of the use of sensors to locate the user's position.One of these side effects is the privacy concerns that emerged from the automatic geopositioning of users/devices.A novel and remarkable study of the state of the art on this topic is presented in [65].

Detection of the Transportation Means.
Several techniques have been proposed to identify the transportation means (private car, bus, taxi, train, walking, etc.) employed by a user at a certain moment.From the description provided along this section, we can see how the problem of automatic detection of the transportation means has spurred significant research interest, as the transportation mode represents an important contextual element.Although the use of GPS receivers can provide a higher accuracy and finer-grained transportation detection, the use of other types of sensors (accelerometer, wireless signal strength, and barometer) has also been proposed to either reduce the power consumption or avoid relying on more sophisticated sensors.
Table 1 shows a summary of the types of sensors and methods used for the detection of the transportation mode.In the table, acc stands for accelerometers, bar means barometers, mag indicates magnetometers, and gyro means gyroscopes; regarding the methods applied (data mining/classification algorithms [66]), ANN is a standard abbreviation used for artificial neural networks, BL represents a boosted logistics classifier, HMM is a standard abbreviation used for Hidden Markov Models, HieMM means Hierarchical Markov Models, DT means decision trees, EM denotes an Expectation-Maximization algorithm, Bayes represents a Bayesian classifier (Naive Bayes and/or a Bayesian network), RF denotes Random Forest, SVM is a standard abbreviation used for Support Vector Machines [67], and CRF is a standard abbreviation used for Conditional Random Field.

Wireless-Based Detection of the Transportation Means.
The approach presented in [68] infers the type of movement (walking, traveling in a motor car, or remaining in a fixed location) by monitoring the fluctuation of the signal strength levels of GSM (Global System for Mobile Communications) in the current serving and neighboring cells.The classification model proposed is based on the use of an artificial neural network.The authors present an initial experimental evaluation that suggests that these signals may be stable enough for classification in an urban environment.Also based on GSM, three possible mobility states are considered in [69]: stationary, walking, or driving.That work uses a twostage classification scheme: the first stage tries to determine whether the user is moving or not, and the second stage (applied if the user is considered to be moving) attempts to infer whether the user is walking or driving.A boosted logistics classifier [70] is proposed for both stages.
The LOCADIO (Location from rADIO) system [71] is able to detect whether the user is still or moving, along with his/her expected location, by using information from the Wi-Fi signal strengths and based on a two-state HMM.The approach in [72] combines information about the visibility and signal strength of GSM cell towers and Wi-Fi beacons in order to distinguish between pedestrian movement and vehicle movement by using a decision tree.

GPS-Based Detection of the Transportation Means.
The approach presented in [74] (which extends a previous conference paper presented in [73]) exploits GPS data and information about the available streets or footpaths to detect one of the following transportation modes: bus, foot, car, and building.Different speed patterns are expected for each of the modes: walking velocity for the foot mode and high and low speeds for the bus and car modes.The "building" mode is a special case representing the loss of the GPS signal, which leads to the assumption that the user is located inside a building (not moving).The proposal is based on the use of a Hierarchical Markov Model.Three levels are considered in the hierarchical activity model: (1) the novelty model (the user is either behaving normally, in a way that is consistent with previous patterns, or doing something new), (2) the person's next goal (e.g., the workplace) and the user's current trip segment, and (3) the transportation mode level.This work extends a previous approach by the authors [75], where X ANN [69] X BL [71] X HMM [72] X X DT [73,74] X HieMM, EM [75] X HMM, EM [76] X Bayes, DT, RF, and ANN [77][78][79] X DT, SVM, Bayes, and CRF [80] X SVM [81] X Speed-based algorithm [82] X HMM, AdaBoost [83,84] X X SVM [85,86] X X DT, HMM [87] X Height-based algorithm [88] X X X SVM a nonhierarchical model is proposed; as [75] does not use the concept of significant location, it cannot predict the highlevel goal of a person, and therefore the model is not so accurate.
The approach presented in [76] uses exclusively information about the GPS location of the mobile user (provided by his/her smartphone) and knowledge about the underlying transportation network in order to infer the transportation means.Several classification algorithms are used to determine the transportation means: Bayesian network, decision tree, Random Forest, Naïve Bayes, and Multilayer Perceptron.The authors report in their experiments an accuracy exceeding 93.5% with the best classification method (Random Forest), which implies an improvement of 17% over an approach that only uses GPS information (average speed, average acceleration, average heading change, and average GPS position accuracy) and an improvement of 9% over [73,74].The approach is able to distinguish between different transportation modes such as car, bus, aboveground train, walking, bike, and stationary.
An approach to detect the transportation mode from raw GPS data is proposed in [79], based on a point-based segmentation method, an inference model, and a postprocessing algorithm based on conditional probability.Different inference techniques are evaluated: decision trees, SVM, Bayesian networks, and CRF [89].The segmentation method implies finding change points by detecting walk segments from a trip.The postprocessing mechanism attempts to increase the accuracy of the transportation prediction by computing conditional probabilities, as the probability of a transportation mode for segment  depends on the transportation mode for segment −1.The previous method is later improved in [77,78] by incorporating feature selection and a graph-based postprocessing mechanism (extending the nongraph-based postprocessing mechanism described in [79]).Regarding the selection of features, the authors conclude that features such as the heading change rate, the velocity change rate, and the stop rate are more robust and informative than the traditional speed and acceleration features.
Finally, SVMs are also used, along with GPS data, in the proposal presented in [80], which considers a classification problem with the following transportation modes: car, walk, cycle, underground, train, and bus.

Other Sensor-Based Approaches for the Detection of the Transportation Means.
As using the GPS receiver consumes a significant amount of battery, other proposals try to benefit from lower-power sensors such as the smartphone's accelerometer.Thus, for example, Google provides an accelerometer-based context detection algorithm [81] that belongs to the Google Play API.It runs at low power and can distinguish between four different transportation modes: idle, walking, vehicle, and cycling.
The proposal in [82] also exploits the accelerometer.It advocates a three-stage hierarchical classification framework by decomposing the problem of transportation mode detection into subtasks, which go from a coarse-grained classification (a kinematic motion classifier distinguishes between pedestrian movement and other modalities) towards a fine-grained distinction of the transportation modality (a stationary classifier that determines whether the user is stationary or in a motorized transport and a motorized classifier that distinguishes among bus, train, metro, tram, and car).The classification approach is based on the use of HMM and adaptive boosting (AdaBoost).
There are also approaches that combine the use of GPS and the accelerometer, such as the Future Urban Mobility Survey (FMS) application [83,84], which applies SVM to detect one of these transportation modes: walking, car, bus, subway, bicycle, or motorbike.Another approach that exploits the GPS receiver and an accelerometer is presented in [85,86].This classification approach is based on a decision X [103,104] X tree followed by a first-order discrete HMM, and it is able to detect (with more than 90% accuracy) whether the user is stationary, walking, running, biking, or moving in a motorized transport.
A proposal for transportation mode detection using only a smartphone's barometer at low sampling rate is presented in [87].The authors distinguish among three possible states: idle, walking, and vehicle.The advantage of this approach is that it can distinguish with good accuracy those different states while consuming a small amount of energy.
Finally, in [88], the authors propose the use of a sensor hub configured with three motion sensors: an accelerometer, a gyroscope, and a magnetometer.SVMs are used for classification.It is shown how this proposal can minimize the power consumption while maintaining a high accuracy in detecting the following transportation modes: motorcycle, car, bus, metro, and high-speed rail (HSR).

Mood Detection.
In the field of affective computing (AC), much of the existing research is related to the problem of emotion (or mood) detection [105,106].Table 2 shows a summary of some types of sensors used for the detection of emotions.In the table, cam means cameras/video, sound represents sound sensors/microphones, phys means physiological sensors (measuring the heart rate, blood pressure, respiration, etc.), acc stands for accelerometers, IS means inertial sensors (e.g., accelerometers, inertial gyroscopes), PS means pressure sensors, Mob represents different types of mobile phone or tablet sensors (this may include its accelerometer, GPS, and microphone), BP means behavioral patterns (e.g., patterns related to the usage of mobile apps or email history patterns), and txt means the interpretation of text messages (sentiment analysis).
The survey presented in [107] is an example of the interest in affective computing and contains a wide variety of main emotion theories and emotion detection systems.In that survey, the proposals analyzed make use of different sensors to determine the emotions.For example, we can consider a video camera and microphone sensors [90]; physiological sensors, like the use of electromyography (EMG) to measure facial muscle tension, photoplethysmograph to determine the blood volume pressure (BVP), skin conductance to determine the electrodermal activity (EDA), and the hall effect respiration sensor [92,93]; pressure-sensitive mice that contains force-sensitive resistors; wireless Bluetooth skin conductance sensors able to sense skin conductance signals; and pressure sensors for capturing the user posture on a seat to detect frustration [95].Furthermore, there exist some interesting works on facial expression sensing, by using conductance bracelets, pressure mice, and posture analysis [108].
Along the same lines, the authors of [91] use biosignal sensors for emotion recognition.Specifically, they use the EMG sensor at the zygomaticus major muscle to detect the smiles and laugh, the EDA sensor for determining the anger emotion, and the BVP sensor to capture cardiac activity patterns when the user presents strong emotions.
In [97], the authors study how to capture the emotion automatically from arm movements for music retrieval in mobile devices.To sense the arm motion, they use 3D inertial sensors embedded in a wireless handheld device.According to the authors, this is comparable to the motion-capture technology available in smartphones.
In order to collect physiological and emotional data in everyday life, an extensive study is carried out in [109].Participants in the study used during five days a system set containing wireless galvanic skin response (GSR) sensors, heart rate (HR) meters, and activity sensors, as well as a mobile phone.A similar goal is pursued regarding the framework MoodMiner [98]; to obtain the mood in the daily life of a person, MoodMiner only uses internal mobile phone sensors, such as its accelerometer, sound, GPS, and light sensors.
A physiological sensor attached to the user's body is used in [94] to try to detect and transmit the user's emotions through an online chat.The authors indicate that it is difficult to capture valence information (the type of emotion) from physiological sensors, and therefore they propose a combined solution: using a manually specified animation tag to determine the valence information and exploiting physiological data to detect the intensity of the emotion.
State-of-the-art methodologies related to the problem of emotion detection are discussed in [96].Moreover, the authors proposed a system that detects several emotional states (e.g., neutral, stressed, and excited) based on the sitting position of the user, by using an accelerometer sensor embedded in the mobile device.
A mobile application called Face2Mus, which streams music from online radio stations based on the users' emotions, is proposed in [100].The emotion is inferred by applying emotion recognition algorithms applied to the user's facial images, which are captured by using the mobile device's camera.Another image-based system for emotion recognition is presented in [99], which identifies human emotions based on full-body skeletal movements captured by using video-based sensor technology.Besides image-based techniques, sound-based approaches can also be applied.So, in a music environment, [101] proposed a system for emotion detection (e.g., excited, angry, happy, sad, calm, sleepy, bored, annoyed, or tender) from live piano audio.

International Journal of Distributed Sensor Networks
Whereas all the previous techniques use different types of physical sensors, the MoodScope system [102] tries to determine the mood of a user based on the way he/she uses his/her smartphone.Specifically, it exploits communication history patterns (phone calls, text messages, and email) and activity records (patterns in the browsing history, application usage, and location history) by applying supervised machine learning techniques.
It is also possible to directly use social sensors to try to infer the mood of the user.For instance, in [103], emotions are captured from user textual interaction, through chat analysis or the processing of other dialog messages.Along the same lines, the authors of [104] study the relation between natural language and affective information.They propose a formal model for the understanding of the emotions contained in text messages.This idea is useful for chat applications, since the user may have an empathic response automatically.Techniques used for sentiment analysis or opinion mining [110,111], which are natural language processing techniques, which support inferring the attitude of a user when he/she writes a certain text (e.g., positive, negative, or neutral), could also be used as a basis to detect the overall mood of a user.

Event Detection in Transportation.
A wide number of sensors, both fixed on the roads and carried by vehicles, can provide interesting information for context-aware recommendation in the context of transportation.Table 3 shows a summary of some types of sensors typically used.In the table, LD stands for loop detectors, cam means cameras/image sensors/stereo sensors, mag indicates magnetometers, ES indicates environmental sensors, beac indicates wireless beacons, SS represents social sensors, and HS indicates human sensors.Besides, we denote by Rd the cases where the sensors are on the roads and Vh the cases where they are on the vehicles.

Fixed Sensors on the Roads.
Typical sensors available on the roads are those aimed at capturing traffic information (speed or traffic density), such as single and double loop detectors [112][113][114] or traffic surveillance cameras [115][116][117].Usually, centralized approaches are used: the obtained information is transmitted to a Traffic Management Center (TMC).
An alternative approach for traffic monitoring is presented in [118], which is based on the use of wireless sensor networks: sensor nodes located at road intersections capture traffic information and transfer it to an access point using radio communications.Regarding the specific type of sensor used, a magnetometer is embedded in each sensor node, which detects distortions of the Earth's field caused by large ferrous objects (e.g., vehicles).The approach based on wireless sensors with a magnetometer is argued to imply less cost and intrusion (other types of sensors may disrupt traffic during installation and maintenance).
As another example of the use of magnetometers, we can mention the work presented in [119], which proposes placing sensor nodes equipped with magnetic sensors every few meters along both sides of a road.These sensor nodes form an ad hoc network to exchange information about cars moving along the roads (detected by the magnometers).The goal is to keep a consistent and up-to-date view of local road-state information (relative positions and speeds of the vehicles), communicating this information to the vehicles to allow them to detect dangerous situations.
The use of wireless sensor networks for traffic monitoring is also proposed in works such as [120], which emphasizes that thanks to the collaboration of numerous devices it is possible to ensure a proper analysis of a vehicular traffic situation.The authors present an algorithm that, based on the values provided by magnetic sensors on the ground, activate and deactivate cameras dynamically depending on the real monitoring needs in a given area.Studies such as [121] highlight the interest of wireless sensor networks to obtain information concerning the condition of roads and the state of traffic.
Besides magnetometers, other traffic measurement approaches can be considered.Thus, [122] uses image sensors and is able to measure the speeds of vehicles on up to four lanes simultaneously.Similarly, vision sensors are also used in [123], which presents and evaluates three different algorithms for speed estimation.
It should be noticed that although traffic monitoring is a key application of road sensors, fixed sensors could also detect and monitor other interesting situations.For example, fixed sensors on parking spots can provide information about their status; a popular example is SFPark in San Francisco [124].

Sensors Embedded in Vehicles.
Vehicles can also carry a variety of sensors that can be used to measure a wide range of environmental values, such as the humidity and the presence of obstacles or hazards on the roads.Indeed, according to [125], "today's luxury cars have more than 100 sensors per vehicle."We can distinguish three main uses of sensors aboard vehicles: traffic monitoring, cooperative surveillance and monitoring, and event detection.
Firstly, regarding traffic monitoring, it should be noted that using a fixed infrastructure of sensors is usually expensive and nonflexible (they cannot move once installed) and offers limited coverage (e.g., see [126,127]).Therefore, other alternatives propose the use of vehicles as mobile sensors (e.g., [126,[128][129][130]).So-called probe vehicles (e.g., taxis and buses) could collect traffic data in a city by periodically reporting their speed and location to a central server for later aggregation [126].Different types of sensors can be used by the vehicles to obtain the relevant information (e.g., see [131]).Besides probe vehicles, floating cars (e.g., patrol cars) can also be mobile sensors [128], with the additional advantage that the path of these floating vehicles could potentially be adjusted according to the traffic monitoring requirements.
Besides traditional centralized mobile traffic sensing approaches, which use cellular communications, other alternatives imply the use of VANETs (Vehicular Ad Hoc Networks) [140,141], which imply the use of ad hoc and shortrange wireless communications dynamically.As an example, in [130], vehicles in urban areas exploit the beacons received from other neighboring vehicles and digital maps to estimate the traffic density in their neighborhood.A fixed support infrastructure could also be used as a complement to these approaches, as in the case of the V2X-D architecture [132], which combines vehicle-to-vehicle (V2V) and vehicle-toinfrastructure (V2I) communications to estimate the traffic density, based on the number of beacons received by vehicles and fixed support nodes on the roads and information extracted from digital road maps.Besides traditional hardware sensors, social sensors (specifically, social media feeds) could also be used to provide more accurate traffic information (e.g., see [133,134,142]).Secondly, concerning cooperative surveillance and monitoring, different types of sensors on the vehicles could be used to monitor the environment.For example, we can consider the use of cameras to capture images that could be relevant in a crime investigation or chemical detection sensors to detect poisonous substances in the environment [135].Several proposals have highlighted the interest of using VANETs for environment monitoring (e.g., [136][137][138]), assuming that vehicles are equipped with the needed sensors.As an example, the Gotcha system [137] exploits taxi cabs as collectors of environmental data (e.g., concentrations of CO 2 , ozone, etc.); the sensing module aboard cars includes the following sensors: a GPS receiver, a temperature sensor, a humidity sensor, a barometer, a 3-axis accelerometer, a 3-axis gyroscope, a 3-axis magnetometer, a CO sensor, a CO 2 sensor, an O 3 sensor, and a PM (Particulate Matter) 2.5 sensor.The proposal presented in [143] tries to estimate the conditions of the road surface by using acceleration sensors located in vehicles belonging to the public transport system.The exchange of multimedia information captured by vehicles (e.g., traffic videos or images) [144,145] is another example of cooperative surveillance.
Finally, different types of sensors can be used to detect specific events that may be of interest for drivers or for their safety.For example, the lack of vigilance of a driver can be detected with oculometers.A slippery road could be detected by using optical sensors, cameras, and also more sophisticated approaches exploiting cooperative sensing among different vehicles (e.g., see [146]).Crash sensors located in different areas of the car can detect collisions and deploy the air bag if necessary.Furthermore, a variety of sensors can be used to detect obstacles on the road [147]; for example, [148] uses stereo sensors, but other approaches are based on the use of radar or sonar sensors.Assuming that the vehicle is equipped with a smartphone, smartphone-based techniques can be applied to automatically detect parking and unparking events without user intervention (e.g., see [149][150][151][152][153]); in other approaches, the vehicles act as mobile sensors with the capability to detect parking spaces (e.g., see [154,155]), for example, thanks to the use of ultrasonic sensors.Finally, the driver as a human sensor can also play a key role to signal events of interest, such as available parking spaces (e.g., see [139] or parking-assistance applications such as Google's Open Spot, which is no longer available).Interesting reviews on automotive sensors are presented in [156][157][158].
3.6.Activity Detection.In this section, we overview some methods that have been proposed to detect the activity that the user is performing.Table 4 shows a summary of the methods.In the table, acc stands for accelerometers, gyro means gyroscopes, sound represents sound sensors/microphones, cam means cameras, press indicates tape-on/pressure sensors, mag indicates magnetometers, grav denotes gravity sensors, and phys means physiological sensors (heart rate, respiration, etc.); regarding the methods applied, Gauss means Gaussian membership functions, Bayes represents a Bayesian classifier, DT means decision trees, SSL represents sound source localization algorithms, RMM is a standard abbreviation used for Relational Markov Models,  2 means decision trees and decision tables, and kM means k-medoids.
In [159], the authors study how to improve the activity recognition by modifying the hardware, the recognition method, and the position of wearable sensors.The proposed method detects unit motions (sitting and standing) and several types of walking behavior (walking on the ground, going up a stairway, or going down a stairway).An accelerometer and gyroscope are used to measure the acceleration and angle of the user's waist, and a digital compass allows determining the four azimuth headings (N, E, S, and W).X Bayes [161] X DT [162] X ANN [163] X SSL [164] X Bayes [165] X RMM [166] X HMM [167] X In [160], the activity performed by the user is identified by using several acceleration sensors distributed over his/her body.Several types of activities are considered: sitting, standing, walking, writing on a whiteboard, typing on a keyboard, and shaking hands.A Bayesian classifier is used to classify the acceleration data into different classes.A total of twelve threedimensional accelerometers are used by the authors in their experimental evaluation.
Five biaxial accelerometers worn on different parts of the body are used in [161] to detect physical activities by using decision tree classifiers.Twenty different types of home activities are considered, including walking, sitting and relaxing, standing still, watching TV, reading, working on a computer, eating or drinking, climbing stairs, and vacuuming.
A single X-Y accelerometer kept in a trouser pocket and neural networks are used in [162] to detect the activity of the user.The different types of activities considered are walking, running, sitting, walking upstairs, walking downstairs, and standing.According to the experimental evaluation performed by the authors, even with a single accelerometer it is possible to infer the activity of the user with a good accuracy (85-90%).
A sound source localization (SSL) system in a real-life home setting collects sounds produced at home (e.g, sounds from cooking, dining, and conversation environments) and localizes them [163].Therefore, it could potentially support the recognition of specific activities at home and summarize the habits of users by using additional input from sensors like a camera or a speaker identification system.A Sound Event Map is developed to help the homeowner to know what happened in his/her house from the sound events.
A set of tape-on sensors (state-change sensors) is used in [164] to obtain information about the use of objects at home (doors, drawers, toilets, showers, electronic appliances, etc.) in order to detect the activities performed.Naive Bayesian classifiers are then used to detect activities such as preparing breakfast, preparing lunch, preparing a beverage, bathing, dressing, doing laundry, grooming, dressing, and going out to work, to cite some examples.
A framework for sensor-based activity recognition is proposed in [165] based on RMM.The framework estimates the labels of activities (e.g., AtHome, AtWork, Shopping, DiningOut, Visiting, and Others) given a sequence of GPS locations visited by a person.As future work, the authors proposed two possible improvements: integrating information from other wearable sensors (e.g., microphones or accelerometers) and estimating a person's indoor activities from RFID (Radio Frequency Identification) sensor data.This proposal is extended in [166] with the purpose of enhancing the scope and accuracy of the activity recognition, by efficiently exploiting global features such as statistics related to the number of times a certain activity occurs.In that previous work [165,166], the aim of the authors is to develop a probabilistic temporal model that can extract high-level activities from sequences of GPS readings by using generative models such as HMM.In [167], the authors investigate the applicability of the discriminative model CRF for GPS-based activity recognition.
Another remarkable work is [168], in which some methods to classify everyday activities are presented.Specifically, the authors studied the way to recognize activities and the careful selection of sensors useful for that purpose, analyzing the kind of signal processing and classification necessary.They collected realistic context data from many different sensors (accelerometers, physiological sensors, etc.) and used different classifiers (based on decision trees and artificial neural networks) to discriminate among seven target classes: lying, sitting/standing, walking, Nordic walking, running, rowing, and cycling.The work presented in [169] pursues a similar aim, distinguishing different activities: slow, normal, and rush walking, running, standing, and sitting.In this case, the activity recognition is achieved through mobile phone sensors (acceleration, gravity, linear acceleration, magnetometer, and gyroscope) without interfering in the user's lifestyle; different classifiers (Naive Bayes, decision table, and decision tree) are considered and evaluated.
The recognition of physical activities and sports practiced is the focus of the study presented in [170], given that it can help to promote a healthy lifestyle.Specifically, the authors use 3D accelerometers on the hip and wrist and GPS data.For activity detection, they use a hybrid classifier including artificial neural networks and a tree structure.The following are some examples of the activities considered: lying down, sitting, standing, walking, running, cycling with an exercise bike/with a regular bike, and playing football.
An approach based on neural networks to estimate hospital workers' activities (e.g., clinical case assessment, patient care, personal activities, classes and certification, preparation, information management, tracking, and coordination) by using contextual information (e.g., the physical location, time of each action, artifacts used, and the people with whom users collaborate) is presented in [173].To capture the contextual information, the authors propose several methods and technologies ranging from the use of simple sensors (e.g., RFID tags) to complex systems that combine information from different sources.Neural networks are used to estimate the activity performed by the user.The use of RFID for activity detection is also considered in other proposals, such as [174].
The proposal in [171] develops a smartphone-based human-activity recognition approach.By using only three sensors commonly available on smartphones (the accelerometer sensor, the pressure sensor, and the microphone), it is able to recognize 15 different types of activities with high accuracy: walking, walking on a treadmill, running, running on a treadmill, going upstairs, going downstairs, riding an elevator up, riding an elevator down, hopping, riding a bike, being idle (sitting/standing), watching TV, vacuuming, driving a car, and riding a bus.To achieve its goal, it uses SVM and applies techniques to optimize the use of energy and provide fast responses.Another approach that also exploits sensors available on mobile phones (particularly, the accelerometer) and SVM, along with a k-medoids clustering method, is presented in [172].
To conclude this section, it is also interesting to mention proposals that apply data fusion techniques to manage the uncertainty associated with the measurements performed by multiple sensors in a smart home [175,176].The goal is to be able to more precisely determine the activity performed.As an example, [175] relies on the Dempster-Shafer theory of evidence and the Equally Weighted Sum operator to reach consensus and take into account all the multidimensional information available (provided by sensors measuring light, sound, contact, and motion).

Recommendation Use Cases
In this section, we illustrate the key role played by sensors, as detectors of different context elements (as described in Section 3), in a number of relevant recommendation use case scenarios (see Table 5 for a brief summary of some illustrative approaches).We start in Section 4.1 with the scenario of tourism.Then, e-health is the focus of Section 4.2.We consider e-learning in Section 4.3.We continue with recommendations in the context of transportation in Section 4.4.We tackle mobile shopping and product recommendation in Section 4.5.The problem of recommending applications and services in mobile computing is the subject of Section 4.6.The recommendation of documents in digital libraries is briefly considered in Section 4.7.Finally, we conclude with some references to other use cases in Section 4.8.

Tourism.
We can find in the literature a wide range of approaches presenting recommendation systems that use information collected from sensors to obtain suitable recommendations in tourism domains.A good example is the work presented in [177,178], where the use of infrastructures of wireless sensor networks (WSNs) around tourist spots is proposed to offer mobile users a suitable and affordable means for exchanging tourist information and ratings about Points of Interest (POIs) via their mobile devices.With this information, it is possible to personalize recommendation for users by using a collaborative filtering approach, resulting in an accurate tourist guide for the user.
Another interesting approach is illustrated by the COM-PASS mobile tourism application [179], which is able to suggest tourist activities based on the current context.This context is assessed by positioning the user through the available sensors in the mobile device (GPS receiver).Then, this location is used as a hard constraint when considering which activities fit better the user preferences.A similar work is presented in [180], where the authors put forward a method to issue tourist recommendations based on the users' GPS coordinates and textual comments attached to various locations.The authors use data mining techniques over available location features and activity-activity correlations from geographical databases and the web.Similarly, the Cyberguide project [181] presents a method to generate tourist recommendations based on the user's current location (collected by any means) combined with the history of past locations.
Following the same trend, some approaches attempt to recommend tourist guides from location information tagged by users using their mobile devices.For instance, in [182], the authors present an interactive trip planning system based on geotagged photos.This information is then used to suggest customized travel route plans according to the users' preferences.Geographical information is used along with other features such as the time when the visit takes place, the weather conditions, and textual travel logs.Similar approaches are used in [183][184][185][186][187], also using the user's location-based information to deliver recommended tourist activities.
A system that offers location-aware recommendations for personalized point-to-point paths is presented in [211].The system outputs intermediate points in order to define the path to follow.Analogously, a location-based recommendation system that includes a mobile 3D GIS (Geographic Information System) architecture allowing the users to visualize

Use case Overview
Tourism A variety of methods have been proposed to recommend locations (interesting places) and activities to tourists.As an example, we could highlight the COMPASS application [179], the Cyberguide project [181], and the approach presented in [180].Interesting surveys on context-aware systems and recommendations in tourism can be found in [188,189].

E-health
Efforts have been invested in developing systems for caring for patients and promoting healthy lifestyles.
These systems can provide relevant information, advice, recommended activities, or personalized healthcare services.For example, we can highlight the MOPET system [190] and the middleware for pervasive elderly home care presented in [191].Other interesting studies include [176] and a survey on ambient assisted living tools for older adults [192].

E-learning
Improving the learning process by using systems that recommend appropriate educative material, activities, contents, courses, and even other student peers is a topic that has also attracted significant research attention.Examples of interesting systems are TenseITS [193] and the ontology-based approach presented in [194].Relevant surveys on recommendation systems for learning are presented in [195,196].

Transport
Driver-assistance systems attempt to improve the comfort and safety of drivers by offering them appropriate recommendations.The interest of recommending appropriate context-dependent driving routes is emphasized in [197].The development of systems that recommend suitable parking spaces is also another hot topic, where we can highlight techniques such as [198], which guides drivers towards areas with a good probability of finding a parking spot, and other approaches to avoid competition, analyzed in [199].Finally, information about different types of events [200,201] can be provided to the drivers.

Shopping
This case covers the recommendation of products to mobile users.As an example, the SMMART system [202] can be highlighted.

Mobile apps
It has been suggested that mobile apps and services should be recommended based on the locations of the users that liked or used those applications.As relevant examples, the proposal in [203] and the AppJoy system [204] can be mentioned.

Digital libraries
The recommendation of suitable materials in digital libraries is another interesting topic.As interesting examples of recommendation systems for digital libraries, we could highlight [205,206].Research challenges are analyzed in [207].

Others
Music recommendation [208], recommendation systems for bank customers [209], and task recommenders [210], among others, are other examples of recommendation use cases.
the outcomes of the recommendation processes in 3D maps is presented in [212].Another relevant application is the one presented in [213], which describes a system to filter out tourist information delivered to the user based on the combination of an Event-Based System (EBS) and a Location-Based Service (LBS) for mobile environments.
Along the same lines, but with a different flavor, the proposal in [214] uses information collected by users' sensors to identify different locations.The information gathered focuses on human mobility (e.g., GPS sensors, check-in or access sensors, and movement sensors) along with some predefined POIs in a certain city.With this information, a framework called DRoF ("Discovers Regions of different Functions") is able to discover regions of different functional activities in the city, such as educational areas, leisure locations, or business districts.This outcome might be used, for example, to allow a recommendation system to filter out some activities taking place in a nonconvenient area or those that are far enough to be taken into account.
In [215], the authors present a context-aware recommendation system for mobile devices incorporating different types of information collected by sensors, namely, the user's location, trajectory, and speed (while the user is driving), in order to assess recommendations about POIs.From all the potential POIs, the recommendation system filters out POIs according to the contextual information and then passes them to a traditional hybrid recommendation system that returns the recommended POIs according to the user's preferences.
It is also interesting to mention the approach presented in [216] in which, besides the typical location-based data, other contextual factors, such as the weather, time, social media sentiment, and user preferences, are used in order to offer more accurate recommendations.
Another contextual-aware approach is iTravel [217], a context-aware recommendation system for the mobile tourism domain in which users can detect other tourists around in the same area.Moreover, it also provides an onthe-fly infrastructure allowing information exchange (messages, photos, location, etc.).This peer-to-peer information exchange makes the recommendation process more dynamic and can adapt better to possible changes in the environment.
The work presented in [218] describes a methodology for context-aware recommendation systems which explicitly requests users to estimate the influence of different contextual factors (weather, season, location, etc.) affecting the user rating on a tourism activity.
The context-aware recommendation system proposed in [64], called I'm feeling LoCo, recommends places to visit to mobile users.With this purpose, the system considers the user profile and the places nearby.The preferences of a user are inferred automatically, by considering the context information related to the places visited by the user (e.g., tags and categories associated with the places).Moreover, the nearby constraints are applied taking into account the user's current mode of transportation (e.g., driving a car, riding a bicycle, or walking), which is obtained from the accelerometer signal and the GPS speed data.Before applying these constraints, the mode of transportation is transformed into a user activity (e.g., biking, walking, or driving) by using classification techniques (e.g., decision trees).
The context-aware mobile recommendation system VISIT [216] hybridizes approaches of collaborative filtering and content-based filtering with contextual information (e.g., location, time, weather, social media sentiment, and personalization).The location is sensed by using GPS, GSM, and Wi-Fi, while the weather conditions are obtained from the World Weather Online API (http://www.worldweatheronline.com/api/).Moreover, sentiment analysis is applied on Twitter messages in real time to determine the current "mood" of each touristic attraction (e.g., positive, negative, or neutral).A user's description (such as his/her age, gender, relationship status, and number of children) is captured from social network data, which is particularly relevant when no information about the user's previous history is available.
Magitti [219] is an activity-based context-aware mobile recommendation system.It infers the user's activity (e.g., eating, shopping, seeing, doing, or reading) based on context information (e.g., current time, location, weather, and store hours) and patterns of the user behavior (e.g., places visited, web browsing, and communications with friends).Based on that, it then suggests relevant recommendations about nearby venues (e.g., stores, restaurants, parks, and movies) in an urban environment.Machine learning techniques are used to predict the interests of the user.
The authors of [220] describe a context-aware recommendation framework to suggest POIs (e.g., restaurants, bars, and shops), train schedules, and touristic information to the users, by identifying the user's current context (e.g., weather, location, urbanization level, movement, company, available time, battery level, physical activity, and proximity) from several sensors (e.g., accelerometer, GPS, proximity sensor, and cell ID) embedded into mobile devices.Some approaches focus on a specific type of POI; for example, a restaurant recommender for tourists in the city of Taipei is presented in [221].
A context-aware recommendation model for indoor museums is presented in [222].Context in this case is a compilation of data sensed inside the museum, along with statistics about the visitors.Data mining techniques are used to filter this information and provide new visitors with more accurate suggestions.
Interesting surveys on context-aware systems and recommendations in tourism can be found in [188,189].

Ambient Assisted Living and Pervasive
Health.Some efforts have been done towards the use of context information to improve the living conditions and lifestyle, usually based on the use of a variety of sensors and wireless sensor networks [223].A clear example of this is compiled in [191], where a middleware for pervasive elderly home care is presented.As explained in [176], which presents a laboratory used to train elderly people to handle interfaces for assisted living and to evaluate the usability and suitability of those interfaces, a variety of sensors can be used for ambient intelligence in assisted living; these include ambient sensors, position tracking technologies (such as RFID tags), intelligent household appliances (e.g., cups that notify drinking activities), and vital data monitoring devices, among others.A survey on ambient assisted living tools for older adults is presented in [192].
One of the main problems in the healthcare domain is the automatic personalization of relevant information (or healthcare services) to patients based on the changing context (e.g., lifestyle, heart rate, surrounding situations, activity, and current position) [224].Consequently, the hybridization of research fields, such as context-aware computing, recommendation systems, and ubiquitous computing, plays an important role.Different efforts have been carried out in this direction.
An example is the MOPET system [190] which is a wearable system that provides motivation to perform certain activities (e.g., increase or reduce the jogging speed and different types of exercises) and provides safety and health advice in outdoor environments, based on the current context.The system exploits real-time kinematic information from sensors (e.g., the 3D accelerometer and GPS) to determine the heart rate and position of the user.
An architecture for a mobile and personalized information service in a hospital scenario, called MobiDay, is proposed in [225].It provides personalized context-dependent messages about the disease or the current task of the patient, so improving the communication between the medical staff and the patient.The system employs recommendation techniques for the generation of personalized messages (e.g., the next activity of the patient is blood test), by using contextual information (e.g., the patient's position, his/her current activity, and the user's previous message historical record).The patient's location is obtained by using RFID techniques.
Another interesting work is Motivate [226], a contextaware mobile recommendation system that promotes a healthy lifestyle.It recommends different kinds of useful advice to the user (e.g., take a break, walk/cycle to a park, and go to a museum), by considering the location of the user, the activities in the user's agenda (e.g., go to work, work, have lunch, go home, have dinner, and busy), the time (e.g., the start and end time of an activity), and the weather (e.g., bad, fair, and good) as context parameters.The location of the user is determined by using a GPS receiver.The system also exploits a database that contains geographic information concerning green places (e.g., parks, lakes, and forests) provided by OpenStreetMap (https://www.openstreetmap.org/),as well as some other interesting places, such as shopping centers, markets, cinemas, and museums.Finally, the weather conditions are obtained from the website of Weather Underground (http://www.wunderground.com/),labeling it as bad International Journal of Distributed Sensor Networks (e.g., if it is rainy or chilly), fair (e.g., if it is cloudy), or good (e.g., if it is sunny).
Another architecture to provide personalized healthcare services has been proposed in [224].Domain ontologies are used to model the static context (e.g., user profile, preferences) as well as the dynamic context (e.g., blood pressure, temperature).Sensors are typically employed forming a Body Sensor Network (BSN), such as in the case of heart rate monitors, oximeters (to measure the blood oxygen level), spirometers (to measure the amount of air inspired and expired by the lungs), and accelerometers and gyroscopes (to measure movements).Furthermore, wireless sensor networks are used to obtain environmental data (e.g., the temperature) to measure physical parameters of a person.
As a final example, MusicalHeart [227] is a biofeedbackbased context-aware music recommendation system for smartphones.It recommends songs to help the user maintain a target heart rate, by using the history of his/her heart's response, the activity level, the desired heart rate, and his/her social collaboration.In order to monitor the heart rate and the activity level of the user while listening to music, a microphone-based wearable sensing platform, called Septimu, is developed.

E-Learning.
The use of recommendation systems in the context of e-learning has also attracted significant research attention.Indeed, for example, an experimental study that shows that incorporating context-awareness in ubiquitous learning systems has a positive effect on the learning effectiveness can be found in [228].The proposal in [229], which presents a UML-based modeling extension to represent relationships between context and learning activities, emphasizes the key role played by the learner's context in designing an appropriate learning process.According to [196], rather than just recommending learning resources that other users with similar interests have used, the recommendation must also respect the actual learning situation of the learner, including his/her learning history, environment, timing, and accessible resources.
An example of context-aware recommendation system for learning is MOBIlearn [230].It carries out context-aware recommendations of content, questions, and communication with other learners by considering the proximity between learners and the question chosen (by the learner) from a predefined list.In order to identify the nearest object, an ultrasound positioning system is used.
Another example is the TANGO system for vocabulary learning, which is described in [231].It detects the objects around the learner by using RFID tags and provides the learner with suitable educational information for that context.
TenseITS [193] is a mobile intelligent language learning environment for Chinese learners of English.The system considers the user's current context (e.g., the location, the available study time, and the current noise level at that location) to recommend learning resources.An example with the same flavor is presented in [232], in which the authors propose to use activity recognition technology to provide learners with contextual information related to an outdoor learning environment.
For context-aware e-learning, an ontology-based semantic recommendation approach is proposed in [194].During the recommendation process, the system considers the knowledge represented in ontologies about the learner, the content, and the domain learned.The ontology related to the learner's knowledge represents the user context information about the current location, the available learning time, the knowledge about a subject, the learning goal, the learning style, and the learning interests.
PERKAM [233] recommends educational materials and peer learners who are nearby, by using RFID to detect the learner's environmental objects and his/her location.The system also allows the learners to share knowledge, interact, collaborate, exchange individual experiences, and visualize the objects that surround the learner, the learning resources space, and the distance to possible helping peers.
CALS [234] is a learning system that recommends appropriate learning activities (e.g., formal assessments, review activities, and work discussions) on a mobile device.It is able to detect the current context and adapt the learning activities according to the learning style of the student.The contextual information is obtained from the scheduled events database (e.g., the time available for learning) and from two sensors (the GPS and a microphone, to detect the location and noise level, resp.).
The PALLAS [235] system recommends language learning resources based on the context; for example, if the learner is studying a certain language and architecture, the system could recommend resources related to appropriate buildings in the vicinity.It uses static parameters to build a profile of the learner (e.g., age, skill level, native language, interests, and courses taken) and contextual environment parameters (e.g., location, time, date, and mobile device used by the learner).
In [236], the work is focused on the automatic extraction of contextualized user profile data in Web 2.0 resourcesharing platforms for e-learning.In order to provide contextsensitive recommendations, the authors propose to identify interesting topics from social metadata provided by the community of users.This approach is an example of a system that infers the context of activities from the user's interactions with tools and resources.
The study presented in [237] analyzes the roles of contextawareness and adaptation in mobile learning.Several context dimensions are considered: the identity of the learner, the spatiotemporal dimension (location and time), the facility's dimension (computers and mobile devices available, communication networks, and sensors), the activity's dimension, the learner's dimension (emotional state, background), and the community's dimension (the social aspects of learning).
It should be noted that whereas most recommendation systems for e-learning focus on recommending educative materials and/or activities, other elements can also be recommended.For example, [238] presents a framework to recommend suitable peers based on three dimensions: the knowledge potential, the social proximity, and the technical contexts.As another example, [239] uses ontologies and semantic techniques to recommend courses that could help users to cover their competency gaps.
Several other examples of recommendation systems for elearning could be mentioned, but it is not the purpose of this section to provide an exhaustive description of the work in this area.The interested reader can find a survey on recommendation systems for Technology Enhanced Learning (TEL) in [195], with a critical view of the actual implementation of the systems, centered on the particularities of this application domain and on a discussion of evaluation perspectives and future challenges.Another interesting survey on recommendation systems for learning is presented in [196].

Transportation.
In this section, we review some proposals that recommend to drivers different types of items that are relevant in the context of transportation.First, we analyze some proposals that recommend navigation paths.Then, we focus on the recommendation of parking spaces.Finally, we consider other types of recommendations that are interesting in transportation.

Recommendation of Navigation Paths.
A classical application in the context of transportation is to recommend appropriate routes to drivers.By optimizing the routes followed by the drivers, not only the travel times but also the fuel consumption and pollution can be reduced.Ideally, route recommendation approaches should take into account the preferences of the driver when computing appropriate routes (e.g., to select, among the candidate paths, the fastest path or simply a path that the driver will find pleasant).Other criteria could also be included in the optimization problem.For example, the proposal in [240] considers also the presence of critical services such as hospitals and schools, in order to avoid congestion on the road segments affecting those services.The provided recommendations should obviously try to avoid traffic congestion and distribute the drivers in order to avoid congestion rerouting problems (the path recommendations can actually cause congestion if the same routes are recommended to many drivers) [241,242].Moreover, rather than just computing a path once before the trip starts, approaches that dynamically recompute the optimal path, by taking into account external events, are preferred.
Some approaches are based on the use of a central server that acts as traffic management system, collecting traffic information and then providing path recommendations to drivers (e.g., [241,243]).However, centralized approaches where the optimal path is computed in a central server are subject to some disadvantages, as the server becomes a single point of failure and besides usually those approaches have difficulties keeping the central database updated with real-time data [244].To solve these problems, distributed approaches have also been proposed (e.g., [244,245]), which avoid the bottleneck of a centralized site by distributing the estimation of optimal paths to the vehicles themselves and/or to fixed nodes such as RSUs (Road Side Units).As an example, a distributed approach that recommends paths that minimize both the traveling time and the distance is proposed in [244], assuming that an RSU is available at each intersection.
The PROCAB (Probabilistically Reasoning from Observed Context-Aware Behavior) method presented in [197] can be used to learn appropriate context-dependent driving routes from taxi drivers (considered as expert users with good knowledge of the existing alternative navigation paths).
Finally, it is interesting to mention that some proposals focus on offering specific simple driving recommendations to drivers, rather than whole routes.For example, the approach presented in [246] can recommend to a driver to keep a larger security distance to the predecessor vehicle, with the goal of globally avoiding traffic jams.

Recommendation of Parking Spaces.
Parking is a hard problem that implies a significant amount of inconveniences (time wasted, fuel consumption and pollution, and traffic congestion).Therefore, several projects and applications focus on the problem of recommending suitable parking spaces to drivers that are searching for parking.Ideally, a parking space recommendation system should exhibit the following features [247]: (i) Consideration of the overall purpose of the trip and not just parking as an isolated activity.Thus, we should expect it to be integrated with the GPS-based navigation system, and the final target location should be considered to select a suitable parking space.Moreover, the recommendation should be multimodalityaware, as a car may need to be parked near an intermediate point to visit within a longer trajectory.
(ii) Adaptation to dynamic context changes.It should exploit available real-time information that could signal the existence of specific events that may affect the recommendation process (e.g., a soccer match depleting the parking space resources in the area) and other constraints (e.g., time-based parking restrictions).
(iii) Support of different methods to detect available parking spaces, such as fixed magnetic sensors on the road, crowdsourcing information directly provided by drivers, and sensors in the cars.
(iv) Recommendation of different types of parking spaces, including on-street/curbside parking, private parking spaces and garages, and home parking spaces (offered for rental by the owners during specific time periods).
Unfortunately, to the authors' knowledge, such a general recommendation system for parking spaces has yet to be developed.Usually, what we find in the literature are proposals for specific scenarios and/or types of parking spaces.
When recommending suitable parking spaces to a driver, different elements could be considered.For example, the recommendation system could try to minimize the walking distance from the parking space to the final destination, the time needed to reach the parking space, its cost (in case it is not free), or the friendliness of the area surrounding the parking spot.These could be seen as soft constraints whose International Journal of Distributed Sensor Networks relative importance may depend on the preferences of the driver.Moreover, we could also have hard constraints, such as the size of the parking space (if the vehicle to be parked is large).Nevertheless, it is interesting to highlight that a soft constraint such as the interest of minimizing the time needed to reach the parking space is not only a matter of preferences: the larger this amount of time, the higher the probability that the parking space is occupied in the meanwhile by another vehicle.The reason is that parking spaces represent scarce resources subject to competition, which means that they can have very limited spatiotemporal relevance.
A recommendation system for parking spaces should take the competition among drivers into account when providing recommendations: if the same parking space is recommended to multiple drivers, as only one driver will be able to occupy the parking space, the other drivers will actually be frustrated and potentially incur an additional delay during the search.Otherwise stated, using a recommendation system that does not consider competition, the final amount of time spent to park could actually increase in comparison with the time that a driver would have needed in a context where parking spaces are not recommended [248][249][250].The study presented in [199], which surveys data management issues in the context of VANETs, presents several techniques that can be applied to minimize the competition problem in the access to suitable parking spaces.
A first possibility to solve the competition problem is to use a reservation protocol that allows drivers to allocate a parking space.These proposals are usually restricted to scenarios where an existing support infrastructure controls the way the parking spaces are occupied, such as pay parking facilities [251].Most reservation approaches, such as the Centrally Assisted Parking Search (CAPS) approach [249] or [252], are centralized.Nevertheless, there are also some decentralized proposals.Among these, we can highlight the protocol proposed in [253], where the information about an available parking space is provided to a single driver interested in the parking space.
Another strategy to handle competition is to simply assume that a higher competition will decrease the chances of successfully occupying a parking spot.For example, in [254], the idea is to compute a route that goes through all the parking spaces considered available.As another example, in [255,256], several approaches are studied, including one where vehicles move towards areas with a higher density of parking spaces rather than to closer parking spaces.
Other proposals focus on tagging the recommendations of parking spaces with a score that indicates the likelihood to successfully occupy each recommended parking space.For example, in [257], parking lots periodically disseminate their status (e.g., their availability and arrival rate), which the vehicles can use to estimate the probability of parking space availability when the vehicle arrives there.The proposal in [198] emphasizes the interest of considering aggregate information to guide drivers towards areas where the probability to find an available parking space is high, instead of towards a specific parking space (that may be available now but could be occupied soon).Information collected about available parking spaces is summarized in [258], with the goal of learning the overall availability of parking spaces in certain areas and periods.

Recommendation of Road Events.
To conclude this section, it is interesting to mention that any data that an information system communicates to a driver could be seen as a recommendation, in the sense that it is considered by such a system as useful for the driver.Particularly, in driverassistance and transportation systems, this information usually arises in the form of events, which signal the occurrence of specific situations, such as accidents, traffic congestion, fuel prices, available parking spaces, emergency vehicles such as ambulances, obstacles in the road, and the risky behavior of other drivers (e.g., strange maneuvers).
Based on mobility features, we can consider four different types of events [200].An available parking space is an example of a stationary non-direction-dependent event, since it is static and may interest vehicles close to it independently of their current direction.A warning about an accident or an obstacle on the road is a stationary direction-dependent event because its location is fixed and only those vehicles that are going towards it will find it relevant, not the vehicles close to its location but moving in the opposite direction.Messages warning vehicles of a driver behaving strangely on a two-way road are mobile non-direction-dependent events: they concern all the vehicles that are likely to meet that driver, regardless of their direction of movement.Finally, a classical example of a mobile direction-dependent event would be an emergency vehicle broadcasting a message for other vehicles to yield the right of way.
Moreover, events can also be classified depending on the potential interest that a driver may have in reaching them [201].On the one hand, attraction events are events that the driver would like to meet based on his/her current interests/goals and/or preferences; examples of attraction events are parking spaces, petrol stations, and so forth.On the other hand, repulsion events are events that should be avoided whenever possible because they imply difficulties; classical examples of repulsion events are accidents, traffic jams, a slippery road, a road blocked, and so forth.
Recommendation approaches that provide information about events must evaluate the potential relevance of the events for the driver, which is a measure of the interest of that data item for a specific driver.Only information about relevant events should be shown to the driver.The relevance of events is usually based on spatiotemporal criteria, as a given event is usually relevant only within a specific spatial region and for a certain time interval [199].For example, in the case of information about an available parking space, an interested vehicle must determine whether it is close enough to the reported parking space and whether the amount of time elapsed since the space was released is small enough; this is because the relevance of the parking space is a measure of the likelihood that the space will still be available when the vehicle arrives there.

Mobile Shopping and Products.
Context-aware recommendation systems have also been applied in the context of shopping.In this section, we summarize some existing approaches.Moreover, the interested reader is referred to an overview about recommendation systems in shopping environments provided in [259].
Historically, the first approach that we would like to reference is presented in [260], where a recommendation system for virtual shopping centers is proposed.The system detects purchase intention patterns by mining historical data of target customers.Then, it uses location-aware techniques to track the typical path of customers and so recommend items on their way.A more sophisticated approach is provided in [261], where the authors present a shopping assistant service based on customer's behavior log data.Their proposal uses ubiquitous sensors, such as RFID tags or cameras, to learn the personal behavior of the customers.With this information, they use a collaborative filtering recommendation algorithm to display personal recommendations for customers.More recently, [262] presented a prototype of a mobile app able to recommend products based, among other factors, on the locations of users and items.
From a store's perspective, recommendations might be commercial advertisements in a shopping center.As an example, [263] presents a context-aware content-provision service in which the system detects the context and determines suitable content to be sent to the final user (i.e., the potential customer).In this case, the context includes the location of the user, detected by using RFID tags distributed all over the shopping center.With a similar spirit, the SMMART system presented in [202] sends promotions to mobile users and is able to adapt to their changing preferences.
A recommendation system based on client-server architecture for product recommendation in a shopping mall is presented in [264].The mall uses the recommender to suggest services in which the customers might be interested, according to their preferences.The client application exchanges messages with the recommender server in order to make these recommendations feasible.

Applications and Services in Mobile
Computing.Mobile users are often overwhelmed with options concerning mobile applications that can be useful to perform a certain task.For this reason, developing recommendation systems for mobile applications is attracting significant interest (e.g., a barcode scanner application can be recommended in contexts such as shopping malls or bookstores [265]).
An example of recommendation system for mobile applications which incorporates context information (such as the user's current location) is developed and described in [203].It recommends mobile applications that were installed in similar contexts by other users.For the acquisition of the user location, the authors propose to use GPS-enabled devices (e.g., mobile phones with an external GPS receiver connected through a Bluetooth interface).
A recommender system for mobile applications called appazaar is presented in [265].It recommends applications to mobile users based on the actual usage of the applications (e.g., when an application was installed, used, or deleted) in different contexts as a relevance measure.According to the authors, the traces of the contextual information can be captured implicitly with sensors (e.g., in the case of the location, acceleration, and noise level) on mobile devices and enriched with external data (e.g., Geographic Information Systems), meteorological services (e.g., to obtain the temperature), or social networks (e.g., to identify nearby friends).Moreover, it is also possible to use context information manually provided by the user (e.g., a textual description of the current situation of the user).
AppAware [266] provides location-based recommendations to the user based on which applications other users in his/her vicinity are using.Specifically, it makes the user aware of the applications installed by other nearby users, thus helping them to discover interesting applications.The underlying assumption is that the user is mainly interested in applications that are particularly useful in his/her current location (e.g., travel-related applications, applications concerning the city the user is visiting).
The COReS (Context-aware, Ontology-based Recommender system for Service recommendation) system [267] tries to benefit from the synergy between recommender systems and context-aware computing in order to recommend suitable services.It follows an ontology-based approach where domain ontologies are used to enrich the description of the context information available.COReS combines content-based and collaborative recommendations with techniques such as stereotypes and knowledge-based approaches.Instead of considering a unified user profile, it fragments the user profile according to different domains.
A prototype for context-based recommendation of mobile applications is presented in [268].The goal of the authors is to allow providing recommendations even for first-time users whose preferences are still unknown by the system.For that purpose, they initially simply apply locationbased recommendations.In other words, at the beginning, applications are recommended based on a location, which can be the current location of the user or a location selected by him/her (e.g., by clicking on a map the user may indicate his/her interest in going to a certain location and therefore his/her potential interest in applications relevant to that location).Once the user starts using the system, his/her preferences can be learnt (based on application usage) and then a recommendation method combining user-based collaborative filtering and context-based recommendation can be applied.
As a final example, the AppJoy system [204] applies itembased collective filtering to recommend applications based on the actual usage of the applications by the users, rather than simply considering the number of downloads or requiring user ratings.

Documents in Digital
Libraries.Since the term digital library (DL) became popular in the 90s decade, technologies and approaches for this kind of systems have evolved.Initially, this term was used to refer to traditional libraries where information services were used to manage and support diverse tasks such as tracking the location of physical materials (e.g., books and magazines).Nowadays, due to the popularization International Journal of Distributed Sensor Networks of the digital media, modern digital libraries either integrate digital resources into their collections or only manage digital resources, usually distributed among different systems.In this context, it is claimed that new digital library systems must consider the physical interaction and context-awareness [269].
Thus, in [269], a system using sensor technology is proposed to provide focused access to digital resources by taking into account the physical context, such as the topics covered in books in the shelves the users are next to and the contents of the books they are currently reading.Besides, several challenges are identified in [269] as obstacles to the development of context-aware libraries: (1) indoor location sensing technologies are not as mature as outdoor systems such as GPS; (2) context-awareness often requires significant changes in the structure and organization of digital library systems, which may be unaffordable in many cases; and (3) understanding user interactions even in traditional digital (and even print) libraries is poor.
To mitigate those problems, advances have been developed in the last few years.Particularly, RFID and Bluetooth technologies have been incorporated to help with indoor positioning.Other approaches process images from cameras (fixed or mobile) to detect the locations.Moreover, techniques based on augmented reality have also been incorporated [270].
Several other proposals have focused on the development of recommendation systems in the context of digital libraries.For example, we could highlight [271], which presents a content-based book recommendation system based on the use of information retrieval techniques and machine learning for text categorization.A graph-based approach that combines content-based and collaborative recommendation techniques is described in [205].Similarly, a hybrid approach combining both techniques is also proposed in [206]; although the authors focus on the recommendation of research papers, they argue that the same idea could be applied for other types of digital libraries.Also in the context of research, a fuzzy linguistic recommender system is presented in [272]; rather than focusing on research papers or books, it focuses on the concept of Google waves, which are common spaces where resources and users can fit and work together (due to shared interest in a research topic).The CYCLADES [273] system provides recommendations based on user and/or community profiles.As a final example, PORE [274] is an ontology-based recommendation system: it builds personal ontologies for clients of a digital library, which capture their interests based on the books they borrow, and then a keyword-based matching method is used to determine a preference score of a book for a given user.Several research challenges for the development of recommendation systems for digital libraries are analyzed in [207].

Other Recommendation Use
Cases.So far, we have focused on several application scenarios for recommendation systems that have attracted significant research attention.Nevertheless, we would also like to briefly mention other relevant recommendation scenarios.
For example, [208] tackles the problem of music recommendation for daily activities (working, studying, running, sleeping, walking, and shopping); to detect the activity of the user, the hour of the day, accelerometer data, and a measure of the noise in the environment (audio data provided by the microphone) are considered.Another music recommendation system, called CA-MRS, is presented in [275]; this system applies a fuzzy Bayesian network to infer the context with probabilities, and then a scoring module computes a score based on the user preferences by context.A novel probabilistic model for music recommendation is presented in [208], where the ubiquitous system built uses real-time sensor data (provided by the user's smartphone) to automatically infer the user's activity (e.g., working, studying, running, sleeping, walking, and shopping).Then, the system recommends songs matching the inferred activity based on music content analysis.Finally, the system presented in [276] recommends music based on the songs that similar users have listened to in the past in similar contexts.
In [209], a context-aware mobile recommendation system for banking environments is presented.It analyzes the current context to recommend places (restaurants, supermarkets, cinemas, etc.) to a set of bank customers.The authors consider the following context dimensions: social, location, and user contexts.The social context is obtained by using data mining techniques applied on banking data.Moreover, the location of the user is useful to filter the places located near the user.The maximum distances allowed between the user and the places are dynamically selected and will depend on whether the user is walking or driving, which is determined by considering collected sensor data (e.g., the velocity).
As another example, a context-aware gas station recommender for VANETs is presented in [277,278].Finally, the TASKREC system [210] is an activity recommender that proposes feasible and relevant tasks to perform based on the current situation and environment capabilities.
To conclude this section, we would like to mention two other interesting aspects related to context-aware recommendation systems: data mining for user profiling and push-based approaches.Regarding data mining, in [279], the authors exploit user context logs to extract personal context-aware preferences.The context logs are recorded on the mobile devices through multiple sensors (e.g., GPS) and are composed of several context records, which contain information about the time, the context at that time, and so forth.There exist also some interesting works on push-based recommendations.For example, an evaluation of mobile user interfaces to achieve proactivity in contextaware recommendation systems is carried out in [280].The system is designed to provide push-based recommendations to the user when the current situation seems appropriate (e.g., automatic recommendation of a restaurant when the user is walking near a restaurant that fits his/her preferences and lunch time is approaching).During the recommendation process, the system considers the user context, the temporal context (e.g., the current time), the geographical context (e.g., the distance to the available POIs), and the social context (e.g., if the user is alone or not).The user context is inferred from sensor data (e.g., the detection that the user is now walking) and the state of the mobile device (e.g., the detection that the device is in flight mode).

Perspectives and Open Issues
In this section, based on the literature reviewed and on our own experience, we analyze some perspectives and trends that we believe will be of particular interest in the near future: (i) Massive Amounts of (Open) Sensor Data.The amount of sensor data that can be exploited for recommendation will continue increasing.One reason is that there is an increasing availability of sensors of different types.Moreover, the availability of sensor data and existing regulations and proposals to release data for the benefit of citizens are key contributors to this data increment.In particular, governments and municipalities are pushing the publication of open data (e.g., values provided by sensors that measure different elements in a city, such as the air quality, available parking spaces, and the location of buses).The work presented in [281] uses the term open sensor data to refer to the sensor data released by local governments, which represents a movement towards exploiting existing wireless sensor networks in the cities.Sensor networks are identified in [282] as key components of smart cities.
(ii) Sensor Interoperability.Given the expected high availability of sensor data and particularly open sensor data, we believe that the use of standard data formats, vocabularies, and schemas for sensor representation becomes essential.The concept of Semantic Sensor Web [283] advocates annotating sensor data with semantic metadata to support interoperability and, at the same time, provide additional information about the measurements provided by sensors.For this purpose, the use of the SSN (Semantic Sensor Network) ontology [284] is expected to play a key role.This ontology supports an unambiguous representation of the capabilities, measurement processes, observations, and deployment of sensors.According to [284], previous standards such as SensorML [285] (http://www.sensorml.com/),proposed by the OGC (Open Geospatial Consortium), "provide syntactic interoperability" but an "additional layer is required to address semantic compatibility."The semantic annotation of sensor data can also enable automatic inferences [286].
(iii) Challenges for Mobile Context-Aware Recommendation Systems.To fully realize the concept of mobile context-aware recommendation systems, several obstacles need to be overcome.Beyond the study of diverse problems of traditional recommendation systems (still under research), there are others specific to context-aware recommendation approaches.For example, sometimes it is not easy to determine which context factors are relevant regarding the decision about whether a certain item should or not be recommended [218].Moreover, more research efforts are needed to close the gap between the fields of mobile computing and recommendation systems, as emphasized in [36].These two fields have evolved independently but offer many opportunities for crossfertilization.The development of mobile contextaware recommendation systems is still in an early stage.A major difficulty for testing recommendation approaches is the scarce availability of recommendation datasets that include context information.
(iv) Intensive Exploitation of Social Sensors.Works such as [287] consider the interest of integrating diverse mobile, social, and sensing input streams into context-aware systems.The proposal described in [39] advocates the integration of social sensing and pervasive services.As another example, CAROMM (Context-Aware Real-time Open Mobile Miner) [288] correlates real-time sensory information with social data extracted from Twitter and Facebook.Despite the interest of exploiting social sensors, we believe that there is still a large research avenue ahead.Whereas exploiting social network connections to offer personalized recommendations has been explored in some works (e.g., see [289]), recommendation approaches that exploit live dynamic social interactions among users in a social network are yet to be deployed.
(v) Privacy.Data acquired by sensors in mobile devices may present a different degree of sensitivity.Users might be reluctant to share some information, such as their location at some time slots or specific places, or the trajectory followed between two points, data regarding health issues, and economic expenses.Therefore, context-aware recommender systems might allow users to define different levels of privacy for the data stored in their mobile devices.
To the best of our knowledge, no work in the field of CARS focuses on this issue.With this in mind, we strongly believe that the community should carry out significant progress in this research area in a shortmid term period.
(vi) Security.Even when the user allows exchanging data (obtained by sensors), the storage space in the mobile device as well as the data communications must be kept safe.In other words, the sensitive data should not be accessed by third parties.Different attacks and possible solutions are summarized in [290].Although this is an orthogonal matter, specific work on it should be addressed by CARS practitioners.
(vii) Dealing with Uncertainty.Some contextual information gathered from sensors might suffer from inaccuracy or lack of precision.As an example, although the quality of sensors and devices has improved over the last years, detecting the location of a user still entails some precision loss.Depending on the quality of the device, the GPS sensors may have an expected error varying from some centimeters to some meters.
International Journal of Distributed Sensor Networks While in some domains (such as in traffic route planning) this error is negligible, in others (e.g., navigation for blind people), it is a key issue to deal with.The same could apply to other contextual data, such as the weather forecast for an area or the mood a user has at a certain point in time.Therefore, this uncertainty must be present when processing contextual information.In sensor networks' localization, this is indeed an important factor; along these lines, [291] shows a Bayesian method to analyze the lower bound of the localization uncertainty in sensor networks.
There is also literature on trust and reputation for recommender systems [292].However, computing suitable trust values for contextual information is still a niche to explore.These trust values could then be considered to appropriately weigh possible suggestions during the recommendation process.
(viii) Decentralized Approaches.We believe that approaches that can adapt themselves to situations where a fixed centralized support infrastructure is not available will be developed.On the one hand, a distributed context detection system could be considered; as an example, the Triveni system [293] considers the exchange of context information among devices using wireless ad hoc networks.On the other hand, the ideal framework envisaged in [36] considers the possibility of peer-to-peer recommendations in mobile ad hoc networks.
As illustrated above, there are several challenges but also exciting opportunities to fully exploit the capabilities of a wide range of sensors that measure context data that can be used to obtain more accurate recommendations.

Conclusions
In this paper, we have carried out an extensive review of the literature on the use of sensors for context-aware recommendation.To our knowledge, this is the first attempt to survey a significant variety of works on this topic.Firstly, we classified different sensor-based approaches according to the type of data the sensors collect: geolocalization, detection of the transportation means, mood detection, event detection in transportation, and activity detection.We emphasized the type of context that can be extracted from sensors and then exploited by the recommendation systems.Then, we explored different proposals that develop recommendation systems that need sensors in order to suggest accurate recommendations in different domains, including tourism, ambient assisted living and pervasive health, e-learning, transportation, mobile shopping and products, applications and services in mobile computing, documents in digital libraries, and others (e.g., music recommendation).We finally concluded by discussing some open issues and avenues for this line of research, exposing some problems still mainly unexplored.

2 InternationalFigure 1 :
Figure 1: Concept map showing the main data topics covered.

Table 1 :
Examples of sensors used for transportation mode detection.

Table 2 :
Examples of sensors used for mood detection.

Table 3 :
Examples of sensors used for event detection in transportation.

Table 4 :
Examples of sensors used for activity detection.

Table 5 :
Examples of recommendation use cases and approaches.