PRECISE
Privacy-aware REcommender based on Context Information for cloud Service Environments
The PRECISE (Privacy-aware REcommender based on Context Information for cloud Service Environments) framework allows users to collect privacy-preserving recommendations within a location-based context-aware system under a Mobile Cloud Computing (MCC) paradigm. Recommendations will be given by considering the context information, the users' location, their privacy policies, and their previously visited places. In this context, users will be able to preserve their privacy by defining their own policies, or by using a predefined set of policies already defined by the PRECISE administrators.

Within PRECISE, users' policies are oriented to services, to users, or following a hybrid approach to apply privacy policies to both of them. Concretely, users will be able to define the policies listed in the next.

  • Anonymity policies, preserving the user's anonymity to specific services.
  • Revealing policies, releasing the user's location to specific services.
  • Hiding policies, concealing the user's position to specific users.
  • Cloaking policies, masking locations to other users by generating fictitious (fake) positions.
  • Granularity policies, establishing the granularity at which the user wants to be located by services or (even) users.
  • Closeness policies, supplying recommendations about elements close to the user.
The context-aware and the space information are provided by PRECISE through a set of ontologies represented in the OWL 2 language. These ontologies are described below, with which users will able to allow sharing (revealing) their personal information to the right users or services, with the desired granularity, at the right place, and at the right time. Among the contextual information, users will be able to share their preferences, age, gender, abilities, profession(s), likes, the elements close to them, or their location at a given time, among others.
The location ontology of PRECISE is categorized into two different but related topics: Element and Space. The top-level class related to the element topic is Element, which refers to any entity that forms part of the environment. Elements can have several Profiles that are used to provide personalized recommendations. The Element class has two predefined subclasses, User and Service, which are defined to be disjointed.

Any User of PRECISE can define the Accuracy about the Granularity and Closeness at which he/she wants to receive context-aware recommendations. Considering his/her location, and using the Accuracy, Granularity, and Closeness, he/she will receive recommendations of Services located at the desired closeness and granularity. Users can also define their preferences or interests regarding to the information that they want to receive in recommendations. The Preference class has five predefined subclasses: Age, Gender, Profession, Budget, and Ability. Finally, the users' tracking is shaped by the Path class. Each path has several PathPoints, and each point has in turn a Space class where the given point is determined. In order to support location, this ontology uses a hierarchical model for location. Space is the top-level class in this model, having five predefined subclasses, namely (from low to high accuracy): Building, Floor, Area, Section, and Position. Position establishes the Geographical or Absolute Position of an element (User or Service), where several Positions form a Section that has two predefined subclasses, Corridor and Room.

Note that the PRECISE's location ontology entities are related with each other by properties. A portion of these properties is used to establish new relationships through policies. For example, hasGranularity and hasCloseness are established by the location policies to link Users and Services with a specific Granularity and Closeness.

The next figure graphically shows the PRECISE's location ontology.
As shown in the previous figure, some classes have been highlighted in a different background color (in green) to bring out those ones belonging to the ontology related to the Services, which is clearly shown in the next figure as an independent logical entity. Services will only manage a certain chunk of the overall ontology, thereby preserving the global system context as well as the users' information. Therefore, the overall ontology shown in the previous figure is only managed by PRECISE, as the main middleware of our solution, whereas Services will only have access to their products (Items), their own Recommendations, and the users' preferences (provided that they completed a previous registration process with the Service in question).

Through comparing both ontologies, we can clearly realize that PRECISE is a privacy-preserving middleware that hides to the services both the global context of the environment (the space information or the list of other services registered in the system) and the personal information of the users (their policies or the places where they were in a given session).
The complete definition of the ontologies defined in PRECISE, both commented earlier, can be downloaded in the next links.
We present here an example to show how our solution provides context-aware recommendations managing the users' privacy. Concretely, we define a scenario based on a shopping mall context, where a user (Andy) wants to receive recommendations about products and offers on his mobile device. In this scenario, the context-aware services act as the stores (Services) allocated at the shopping mall, recommending their products to those users who want it.

In this example, PRECISE acts as the mall's middleware itself, providing recommendations according to the users' location, their preferences, their privacy, and the context-aware information. The next figure depicts the graphic representation about a given instance of the mall scenario, where recommendations are provided to Andy in a specific place (or recommendation point).
The next listings, defined in RDF syntax, show this example about the previous figure. To this end, we have created entities of the classes defined in the PRECISE and Service ontologies. In Listing 1, we have one Mall (line 1) with three Floors (lines from 2 to 4), four Areas (lines from 5 to 8), six Corridors (lines from 9 to 14), and eight Rooms (lines from 15 to 22). At the Mall, there is a User called Andy (line 23) and four Services (lines from 24 to 27). Both elements, users and services, can use two profiles: ElectronicProfile and LeisureProfile (lines 28 and 29). In this listing, we have also defined that PRECISE has recorded a path with two places visited by Andy (lines 31 and 32). This corresponds to a given instance of the example; concretely, when Andy has just received recommendations when staying in AreaA (Recommendation Point 2). In this recommendation point, Andy has received recommendations of stores with several items (lines from 33 to 38).

On the other hand, Listing 2 shows how the previous individuals are related each other. The distribution of the Floors, Areas and Sections that belong to the Mall are defined from lines 1 to 32. Specifically, the GroundFloor of the Mall has two areas: AreaA and AreaB (lines 4 and 5). The latter area has two corridors, CorridorB1 and CorridorB2 (lines 16 and 17), and three rooms: RoomB1.1, RoomB1.2, and RoomB2.1 (lines from 18 to 20). The names of the rooms indicate in which of the corridors they are. Concretely, RoomB1.1 and RoomB1.2 are adjacent to CorridorB1. On the other hand, ElectronicStoreA, ElectronicStoreB, and ElectronicStoreC are stores (Services) that have the ElectronicProfile (lines 34, 41, and 46). The first one is located at RoomA1.1 and provides RecommendationA containing the Smartphone and the TabletA (lines from 33 to 39). Instead, ElectronicStoreB is located at RoomB1.1 and provides RecommendationBcontaining the TabletB (lines from 40 to 44). Finally, ElectronicStoreC is located at RoomC1.1 (line 45) and does not provide any recommendation. The Mall has other service, CinemaA, which has the LeisureProfile and is located at RoomD1.1 (lines 47 and 48). When Andy is located at AreaA (line 49), he receives Recommendation2 (line 51) from PRECISE. This recommendation contains the Smartphone and the TabletA recommended by ElectronicStoreA through Recommendation1, and the TabletB recommended by ElectronicStoreB (lines from 53 to 55). Finally, Andy has associated Path1 (line 52), which contains two places: his current location and his previous one (lines from 56 to 59).
In order to show an example about how the stores (Services) model their context-aware information to provide the recommendations previously commented, we present next listings. In Listing 3, ElectronicStoreA has three items, Smartphone, TabletA, and SmartTV (lines from 3 to 5), and provides RecommendationA (line 2). The previous items have a specific price, stock, and type (lines from 6 to 17). Concretely, the Smartphone price is 400$, its stock is 20 items, and its type is Electronic. This service, ElectronicStoreA, provides the context-aware RecommendationA that contains the Smartphone and the TabletA (lines from 18 to 20).

In Listing 4, the ElectronicStoreB has two items, TabletB and Laptop (lines 3 and 4), and provides RecommendationB (line 2). Like in ElectronicStoreA, the items have a specific price, stock, and type (lines from 5 to 12). For instance, the TabletB price is 600$, its stock is 40 items, and its type is Electronic. Finally, ElectronicStoreB provides RecommendationB that contains the TabletB (lines 13 and 14).
In Listing 5, ElectronicStoreC has three items: Computer, DVD, and GPS (lines from 2 to 4) with a specific price, stock, and type (lines from 5 to 12). For instance, the Computer price is 1200$, its stock is 50 items, and its type is Electronic. Note that ElectronicStoreC will not provide recommendations when Andy is located at AreaA.

In Listing 6, CinemA has three items: Movie1, Movie2, and Movie3 (lines from 2 to 4) with a specific price and type (lines from 9 to 17). Furthermore, CinemaA has a User, Andy (he made the registration process in this service) whose preferences are: ComputerEngineer as profession, and Male as gender (lines 18 and 19). The CinemaA does not provide any recommendation when Andy is located at the AreaA.
The complete definition of the mall example (ontology instances represented in OWL 2) can be downloaded below.
Recommendation point 1 Recommendation point 2
Recommendation point 3 Recommendation point 4
We illustrate below the application used by Andy about the example shown earlier. First, Andy comes in to the Mall and, after a certain time, he decides to launch the PRECISE application in his mobile device to receive recommendations about the mall's services (see Figure 4). At the beginning, the application requests him which of the predefined profiles (already created by the PRECISE administrators) he prefers to obtain personalized recommendations. Andy checks that the application provides him with two predefined profiles, ElectronicProfile and LeisureProfile, and decides to use the former one; he is interesting in (possibly buying some) electronic products. Before releasing his position to PRECISE, he decides to edit such a profile to (possibly) configure his policies to receive more personalized context-aware recommendations (see Figure 5).
The first policy in Figure 5 is a Release policy. This indicates that the Andy's position has to be released to those services with the same profile name when he is at the Mall. Therefore, Andy will only receive recommendations of electronic stores. The next policy in Figure 5 consists on a Closeness policy. It indicates that Andy only wants to receive recommendations of (electronic) stores located at the same and adjacent Corridors when he is located at CorridorB1. This fact corresponds to the Recommendation Point 1 shown in the motivating example presented earlier (Figure 3). In this recommendation point, Andy will only receive recommendations of ElectronicStoreB.

While showing as depicted in Figure 5 the two previous policies in his mobile device, the Release and Closeness policies, Andy decides to create a new Granularity policy. This new policy, depicted in Figure 6, indicates that Andy only wants to receive recommendations of the stores placed at the same Floor when he is at AreaA. This corresponds to the Recommendation Point 2 of Figure 3, where Andy will only receive recommendations of ElectronicStoreA and ElectronicStoreB.

In short, the three policies shown in Figure 5 conform ElectronicProfile from the perspective of Andy. All these policies are represented below in textual mode, both for the previous ElectronicProfile and for LeisureProfile. Both of them can be downloaded in SWRL format from the next table.

ElectronicProfile
Person(#Andy) Λ isLocated(#Andy, #Mall) Λ Service(?Requester) Λ hasProfile(?Requester, #ElectronicProfile) → hasRelease(#Andy, ?Requester)
Person(#Andy) Λ isLocated(#Andy, #CorridorB1) → hasCloseness(#Andy, #Corridor)
Person(#Andy) Λ isLocated(#Andy, #AreaA) → hasGranularity(#Andy, #Floor)
LeisureProfile
Person(#Andy) Λ isLocated(#Andy, #Mall) Λ Service(?Requester) Λ hasProfile(?Requester, #LeisureProfile) → hasRelease(#Andy, ?Requester)
Person(#Andy) Λ isLocated(#Andy, #FirstFloor) Λ Service(#CinemaA) → hasRevealing(#Andy, #CinemaA)
Finally, the next figure shows the mobile application displaying Andy the Recommendation2 provided by PRECISE. This recommendation the Smarphone, TabletA, and TabletB items (lines from 53 to 55 in Listing 2).