Skip to main content
Sensors (Basel, Switzerland) logoLink to Sensors (Basel, Switzerland)
. 2020 Feb 1;20(3):798. doi: 10.3390/s20030798

Geo-Social Top-k and Skyline Keyword Queries on Road Networks

Muhammad Attique 1,*, Muhammad Afzal 1, Farman Ali 1, Irfan Mehmood 2, Muhammad Fazal Ijaz 3, Hyung-Ju Cho 4,*
PMCID: PMC7038697  PMID: 32024087

Abstract

The rapid growth of GPS-enabled mobile devices has popularized many location-based applications. Spatial keyword search which finds objects of interest by considering both spatial locations and textual descriptions has become very useful in these applications. The recent integration of social data with spatial keyword search opens a new service horizon for users. Few previous studies have proposed methods to combine spatial keyword queries with social data in Euclidean space. However, most real-world applications constrain the distance between query location and data objects by a road network, where distance between two points is defined by the shortest connecting path. This paper proposes geo-social top-k keyword queries and geo-social skyline keyword queries on road networks. Both queries enrich traditional spatial keyword query semantics by incorporating social relevance component. We formalize the proposed query types and appropriate indexing frameworks and algorithms to efficiently process them. The effectiveness and efficiency of the proposed approaches are evaluated using real datasets.

Keywords: top-k spatial keyword queries, skyline queries, location-based social networks, geo-social queries

1. Introduction

Smartphones and social networks are significant innovations from the past decade, and the combination of these technologies has engendered geo-social network (GSN) applications, such as Facebook, Instagram, and Foursquare. Geo-tagged data (e.g., photos, videos, check-ins, and likes) allow these applications to provide many useful services to users based on social and location relevance. Furthermore, the easy availability of textual descriptions for desired facilities (e.g., restaurants, departmental stores, and travel destinations) has promoted many decision support systems and recommendation services.

Traditional top-k spatial keyword queries [1,2,3] rank facilities based on spatial proximity to the query location and textual relevance to query keywords. Many existing studies have proposed spatial keyword query systems in Euclidean space [3,4,5] and road networks [6,7]. However, query results can be improved by including social data, since users tend to consult other users and specially their friends, besides their own preferences, for recommendations on movies, restaurants, and places to visit. Therefore, this paper investigates geo-social keyword queries that not only exploit spatial and textual information, but also social information to offer many interesting services. Each data object has a set of fans who exhibit positive behavior towards it, and social relevance is obtained from the number of fans and the relationship between these fans and the query user.

Geo-social keyword queries can be used for a wide range of GSN applications and services, such as a tourist visiting Seoul and searching for a French restaurant. Geo-social keyword queries uses spatial, textual, and social information parameters to retrieve the query results. Spatial information relates to the distance between the user and the facility, textual relevance relates to how well the facility description matches query keywords, e.g., French restaurant; and social information relates to a tourist’s friends and other users.

These query types are also important in various monitoring systems, such as disease monitoring and crime prevention (e.g., users searching about drugs and subsequently joining Facebook pages to discuss drug related activities). Law enforcement agencies can identify crime locations by monitoring commonly visited places for users of those pages. Similarly, Dengue fever patients can be connected using social networks, and the monitoring of frequently visited places could help medical teams identify key disease spreading locations. The queries can also be used for decision support systems such as determining the best location to open a new business or store.

Geo-social queries [8,9,10] have recently attracted significant research attention due to their real-world relevance. Sohail et al. [9] proposed a method to monitor socio-spatial top-k famous queries and skyline queries in Euclidean space. However, they did not consider the textual relevance to the query keyword. Wu et al. [10] investigated top-k social aware keyword queries in Euclidean space. However, users typically follow the road network to reach their desired location. Moreover, processing spatial queries on road networks is significantly more complicated than in Euclidean space because, it requires computing several shortest paths. Therefore, Euclidean space algorithms cannot be applied to road networks.

Therefore, we propose geo-social top-k keyword (GSTK) queries to retrieve the k best data objects based on spatial, textual and social relevance. However, the results depend on the scoring function defined by the user and choosing a suitable scoring function may be challenging due to different attribute distributions or inadequate user knowledge. Hence, we also introduce geo-social skyline keyword (GSSK) queries, which do not require scoring. GSSK queries return every object for which there does not exist any other object that has a higher spatial, textual, and social score. In this study, we formalize the concept of processing these queries and provide methodology to process and rank objects considering spatial, textual, and social relevance. We provide a formal definition of GSTK and GSSK in Section 4.1 and Section 5.1, respectively.

The main contributions of this study are summarized as follows:

  • We introduce geo-social top-k keyword (GSTK) queries on road networks that ranks data objects based on spatial, textual and social relevance.

  • We extend our work to propose geo-social skyline keyword (GSSK) queries that return data objects that are not dominated by any other data object.

  • We present an indexing technique to retrieve data objects. Furthermore, we present efficient algorithms that exploit the indexing technique to process these queries.

  • Finally, we conduct extensive experiments on real road network datasets to demonstrate the efficiency of the proposed techniques.

2. Related Work

In this section, we discuss previous studies related to our work. Section 2.1 briefly reviews top-k keyword queries. Section 2.2 discusses skyline queries. Finally, Section 2.3 presents a survey on geo-social queries.

2.1. Top-k Keyword Queries

Several approaches have been proposed to rank spatial data objects based on keyword relevance. Initially, Zhou et al. [11] proposed hybrid indexing methods that combine inverted indexes [12] for text processing and R*-tree [13] for spatial processing. Cong et al. [4] and Li et al. [5] introduced top-k spatial keyword queries where each object is ranked based on its combined textual and spatial relevance to query keywords and location. Both studies generated IR-trees by integrating spatial indexing and text indexing. In contrast to Zhou et al. [11] who applied text indexes to filter web documents and then used spatial indexes to process location, the IR-tree [4,5] combines indexes to prune the search space. Rocha et al. [14] proposed an S21 indexing structure to map each keyword to a block or aggregated R-tree for frequent terms.

Recent studies have investigated several spatial queries, such as nearest neighbor, reverse nearest neighbor, range, and various top-k queries for road networks [15,16,17,18,19]. Rocha et al. [7] considered top-k spatial keyword queries for road networks, and proposed an efficient indexing technique and an overlay network to group objects in regions with similar textual description, thereby enabling the computation of upper-bound scores for all objects in the region. Gao et al. [20] presented filter-and-refinement based algorithms to process reverse top-k boolean spatial keyword queries on road networks. Guo et al. [6] investigated the problem of continuous top-k spatial keyword queries on road networks and proposed two algorithms to monitor continuous top-k keyword queries incrementally that minimize the expansion of the network edges. Attique et al. [21] recently expanded the problem and proposed a safe region based approach to monitor moving top-k keyword queries in directed and dynamic road networks, where each network edge is directed and its traveling cost depends on the traffic conditions.

2.2. Skyline Queries

Borzsony et al. [22] studied skyline queries and proposed two approaches: block nested loop (BNL) and divide and conquer (D&C). Subsequently, Chomicki et al. proposed a sort filter skyline SFS [23] to reduce skyline evaluation cost by sorting the objects before applying BNL. The sorting technique improves performance because objects can only dominate the subsequent objects. Sharifzadeh et al. [24] introduced spatial skyline queries, which are useful for many location-based applications, decision-support systems and recommendation systems. Deng et al. [25] proposed an algorithm to process multi-source skyline queries in road networks [26], defined a keyword matched skyline query to obtain the set of objects whose textual description contain all query keywords. However, they did not consider a distance function to obtain skyline objects.

Regaldo et al. [27] and Shi et al. [28] recently investigated location-based textual skyline (LTS) and spatio-textual skyline (STS) queries, respectively. Both queries retrieve objects of interest based on Euclidean distance to query location and textual relevance to a set of query keywords. Two algorithms were proposed in [27], but main limitation of their work was that they only considered a single query location. Shi et al. [28] proposed three models to integrate textual relevance into the spatial skyline, with spatio-textual dominance (STD) being the most efficient, because it integrates spatial distance and textual relevance to effectively prune irrelevant objects. Both studies considered textual and Euclidean distance functions to find skyline objects. However, this study considers geo-social keyword skyline queries that return the dominant objects based on their aggregated score of social relevance to the query, textual similarity to the query keywords, and network distance to the query location through the shortest path. Therefore, their objectives and problem formulations are entirely different and cannot be applied to process GSSK queries for road networks.

2.3. Geo-Social Queries

Geo-Social query processing is an emerging field that has recently garnered considerable attention from the research community [29,30,31,32,33]. Huang et al. [34] proposed geo-social network services that organize users in social networks based on geographic features, retrieving the set of nearby users that share common interests. Ye et al. [35], designed a location recommendation system based on a user’s social networks. Sarwat et al. [36] also proposed a location-aware recommendation system that associates a user’s social network(s) and locations with ratings. Liu et al. [37] proposed a circle of friends query that returns a group of friends in the user’s geo-social network who are geographically and socially close to each other (e.g., community services, friend gathering, and combined sports activities). Shim et al. recently studied the k-nearest l-close friends query, which reports the k nearest data objects to a query location based on l-hop friends in the social network. Zhao et al. [31] proposed a reverse top-k keyword query on road networks that finds potential customers for businesses based on spatial, textual, and social information of users.

Emrich et al. [8] introduced geo-social skyline queries that report the set of persons close to a given location, P and closely connected to user U. Sohail et al. [9] recently introduced top-k famous places and socio-spatial skyline queries that consider social and spatial relevance to the query. They provided three approaches: social first, spatial first, and hybrid. The main difference between the GSSK query proposed in the current paper, and the problem studied by Emrich et al. [8] and Sohail et al. [9] is that the previous studies did not consider keyword relevance and their approaches were applied for Euclidean space. Wu et al. [10] investigated a problem similar to the proposed GSTK query. They considered social-aware top-k spatial keyword queries, which retrieve objects based on social, spatial, and textual relevance to the query, extended the IR-tree approach, and integrated the social aspect to propose social network aware IR-trees (SNIR-trees). Their approach is also applicable to Euclidean space and relied on R-trees to determine the minimum distance from query location and objects. Algorithms designed for Euclidean space, are not suitable for processing GSTK queries in road networks because they are designed to reduce the number of data objects to be accessed, without considering the underlying spatial network. However, road network based methods should be optimized to minimize the number of network edges to be explored and the cost of computing the distance between query location and objects [25]. To the best of our knowledge, this is the first study to introduce GSTK and GSSK queries in road networks.

3. Preliminaries

Road Network: We represent a road network by an undirected graph G=(N,E,W), where N is the set of nodes, E is the set of edges, and W:ER+ is associated with each edge, i.e., a positive real number representing the network weight, such as the distance or travel time. Each edge is represented by a starting and ending node (ns,ne) commonly referred to as boundary nodes nB{ns,ne}. Figure 1 presents a road network example with eleven nodes, n1 to n11. The query point is represented by a triangle and data objects with their textual description are represented by rectangles. The number on each edge denotes the weight of an edge such as distance in kilometers or travel time. The distance function, dist(a1,a2) indicates the shortest network distance from a1 to a2. For example in Figure 1, the shortest distance from q to d1 is dist(q,d1)=7 and the shortest path is qn8d1. The set of data objects in an edge (ns,ne) and (ne,ns) are the same, and the dist(ns,di) is equal to dist(ns,ne)-dist(ne,di). Hence, dist(ne,di) can be easily obtained from dist(ns,di). Therefore, the starting node (ns) is used to compute the distance to the objects.

Figure 1.

Figure 1

Illustration of road network.

Geo-Social Networks: GSNs consist of entities (such as users, groups, and places) and relationships between them. The relationship between two entities u and v can have several types, such as friends-with, lives-in, born-in and works-at. Consider Bob, a Facebook user born in France, who lives in Seoul, works at Sejong University, and is friends with another French user, Alice. Facebook stores this information by connecting Bob and Sejong University with works-at, Bob and Alice with friends-with and Bob and France with born-in relationships. Figure 2 illustrates the resulting social relationship diagram.

Figure 2.

Figure 2

Illustration of geo-social network.

Points of interest: In this study, points of interest (POIs) are all data objects dD such as restaurants, hotels, theme parks, and museums. Each data object lies on the edge E of the road network G. Each data object has a spatial location d.l, textual description d.t, and set of fans Fd, where a fan is a user uU who exhibits positive behavior towards object d (e.g., check-in, like, share, etc.). Table 1 describes the notations used in this study.

Table 1.

Frequently used notations.

Notation Definition
ψ(d) Score of data object d
μ(q.t,d.t) Textual relevance of data object d with query keywords
τ(q.s,d.s) Social relevance of data object d with query user
λ(q.l,d.l) Spatial relevance of data object d with query location
(α,β,γ) Preference parameters that represent the importance of textual, social and spatial relevance, respectively
δ Preference parameter that controls the importance between query user friends and other users
Fd Set of fans of data object d
Nq One-hop neighbors of q in social network
Ωt Highest significance of a given term t among the description of the data objects lying on edge eid
Ωf Highest significance of fans of any data object lying on edge eid with term t
σ(d) Aggregated social and textual score used in GSSK queries

4. Geo-Social Top-k Keyword Queries

4.1. Problem Formulation

A geo-social top-k keyword (GSTK) query in road network G is defined as QG=(q.l,q.t,q.s,k), where q.l is the query location, q.t are query keywords, q.s is the query user’s social network, and k is the number of desired data objects. Given a set of data objects D on G; QG returns k data objects from D in descending order of score ψ(d), which is defined as:

ψ(d)=[1+α·μ(q.t,d.t)]×[1+β·τ(q.s,d.s)]1+γ·λ(q.l,d.l) (1)

where μ(q.t,d.t) is the textual similarity between q.t and d.t, τ(q.s,d.s) is the social relevance of d with respect to q, and λ(q.l,d.l) is the network distance between q.l and d.l. We also defined preference parameters (α,β,γ)[0,1] to represent the importance of textual, social and spatial relevance, respectively, with 0 representing the lowest and 1 the highest preference.

Textual relevance (μ) can be measured using any information retrieval model. This study used cosine similarity to compute the relevance between q.t and d.t, which is defined as:

μ(q.t,d.t)=tq.tΩt(d.t).Ωt(q.t) (2)

where the significance Ωt(n)=wt(n)tn(wt(n))2 is the normalized weight of the term t in the document by considering document length [38,39].

Social relevance (τ) can be expressed as:

τ(q.s,d.s)=δ×|FdU||U|+(1-δ)|NqFd||Nq|

where Fd represents the set of fans with positive attitude towards data object dD (i.e., visited, liked, recommended or shared) and Nq represents the adjacent neighbors of user q, e.g., if the relationship is works-at and the query entity is the Facebook page “Sejong University,” then Nq is a set of all users working at Sejong University. Although any type of relationship can be supported by the presented work, the remainder of this paper only considers friendship relationships for simplicity. In this context, Nq comprises only the set of query user’s friends. The expression |FdU||U| represents the portion of users FdU who are fans of the data object d and |NqFd||Nq| represents the portion of q’s friends who are also fans of d. In real life, users commonly consider feedback from friends and other users in social media. Consider a tourist traveling to a foreign country. Typically the farther from home, the more difficult to obtain meaningful opinions from family and friends. Hence, the tourist must rely more on recommendations from other social network users. The proposed social relevance score considers these situations and aggregates the scores |FdU||U| and |NqFd||Nq|. We provide a preference parameter δ to control the importance of one measure over the other, e.g., δ=0 if only friends feedback is considered, δ>0.5 increases the weight of other users feedback over friends feedback, and δ=0.5 meaning equal weight to both sources.

Spatial relevance (λ) is defined as λ(q.l,d.l)=dist(q.l,d.l) which represents the shortest distance between data objects d and q. Thus, a data object closer to the query has a higher spatial relevance score.

Consider the road network example of Figure 1 and assume that we have a set of users U={u1,u2,,u100}. User u1 is the query user q and issues a query with keywords “French restaurant,” requesting one result (k=1). User u1 and has ten friends, Nq={u4,u16,u23,u39,u48,u55,u67,u71,u80,u94}. Equal preference is assigned to every attribute, i.e., α=β=γ=1 and δ=0.5. If we only consider spatial relevance, the top-1 result is the nearest restaurant d3. If we consider spatial and keyword relevance the top-1 result is d6. However, d6 does not have a suitable social score. Therefore, d2 is the top-1 result considering spatial, textual and social relevance. Notice that although d2 is slightly far from d6 (dist(q,d2)>dist(q,d6)) and has less textual relevance than d6 (μ(q.t,d2.t)<μ(q.t,d6.t)).

Table 2 summarizes d2, d3, and d6 scores. To simplify the presentation, we assume the textual score is the number of occurrences of the query keywords in the object description divided by the total number of keywords in the object description. For example the textual score of d2 is 23=0.66, the social score is 0.5×20100+0.5×510=0.35, and dist(q,d2)=7. The overall score of d2 is computed as ψ(d2)=0.66×0.57=0.033. Similarly, ψ(d3)=0.02 and ψ(d6)=0.024. Consequently, the GSTK query returned d2 as the top-1 result.

Table 2.

Score computation of data objects.

d λ(q.l,d.l) μ(q.t,d.t) FD Nq in FD τ(q.s,d.s) ψ(d)
d2 7 0.66 20 5 0.35 0.033
d3 4 0.50 23 1 0.165 0.020
d6 6 1 9 2 0.145 0.024

4.2. Indexing Framework

Figure 3 shows the proposed indexing framework structure. The spatial component is used to retrieve adjacent nodes for a given node to allow efficient traversing of the road network. The binding component binds the road network and keywords to the objects using edge id (eid) and term id (tid). The social component stores the social relationships of users. Finally, the inverted file component stores data objects along with their descriptions and set of fans.

Figure 3.

Figure 3

Overview of the proposed indexing framework.

Spatial Component: This component integrates the road network and spatial information as proposed by Papadias et al. [40]. Each road segment is represented by an edge comprising a detailed polyline and is stored in the network’s R-tree. The B-tree is used to retrieve the adjacent nodes of a given node ni from adjacency file, to ensure efficient traversing of the network from one node to the other. The adjacency file stores edge eid (i.e., (ni,nj)) along with its weight W (i.e., dist(ni,nj)). Data objects that lie on a particular edge can be easily retrieved using eid.

Social Component: The social component employs a B-tree to index each user uiU along with their social relationships Nui. The B-tree points to the block in the users file where the social relationships of user are stored. This component enables efficient retrieval of the query user’s relationships to compute the social score.

Binding Component: The binding component uses a B-tree that binds a key composed of the pair eid and tid to the inverted lists that contain the data objects located on the edge with term t in the data object description. The binding component is also used to efficiently retrieve candidate objects that are relevant to the query based on spatial, textual and social relevance. To achieve this, for each edge the binding component stores the highest significance of a given term t (Ωt) among the description of objects lying on the edge and the highest significance of fans (Ωf) of any object lying on the edge with term t. The highest significance of a term t is an upper-bound textual relevance and the highest significance of fans is the upper-bound social relevance of any object on the edge with t in its description. The upper-bound score for edge eid is derived from (Ωt), (Ωf) and the minimum distance from query point to edge. The closest boundary node nB is considered to compute the minimum distance from q to eid (i.e., dist(q,nB)). Therefore, a term t’s inverted list on edge eid is accessed only if the upper-bound score is greater than the score of the kth object found so far.

Consider the example road network presented in Figure 4. We calculate the upper-bound score as follows. Let the set of users be U={u1,u2,,u100}, where user u1 is the query user who issued a query with the keyword “cafe” and query parameters α=β=γ=1 and δ=0.5. The number of fans of d1,d2,d3 and d4 are 15, 30, 40 and 0, respectively. On edge (n2,n3), Ωt=1 since d1.t=Cafe. To compute the highest significance of social relevance (Ωf), we set the highest score for the portion of friends of q who are also fans of d i.e., |NqFd||Nq|=1. Thus, for edge (n2,n3) the (Ωf=0.5×30100+0.5×1=0.65). The minimum distance from q to (n2,n3) is dist(q,n2)=3. Finally, the upper-bound score of edge (n2,n3) is computed as 1×0.653=0.21. Similarly, the upper-bound score for edge (n2,n4) is 0 because no data object lie on the edge that contains terms relevant to the query keywords. Finally, the upper-bound score of edge (n2,n5) is 0 because data object d4 has no fans and therefore Ωf=0.5×0100+0.5×0=0.

Figure 4.

Figure 4

Upper bound score computation.

Inverted File Component: This component consists of vocabulary and inverted lists. The vocabulary stores the frequency of each term which assists in computing the textual score of the data objects. The inverted list stores the data objects lying on an edge ei with term t in their description. Thus an inverted list stores the distance between the data object and starting node ns (dist(ns,di)) for edge eid, the significance of the term ti in the description of data object (Ωti,di), and the fans of data object (Fdi) for each data object di. The social component and fans of data objects stored in the inverted lists are used to compute the aggregated social relevance score. Fdi returns all fans of data object di, and the friend list of query Nq allows all friends in Fdi to be identified. Inverted lists are identified using a (eid,tid) key and a separate inverted lists are created for each term t in the object description. The inverted file for edge ei is the set of inverted lists containing objects lying on the edge, and there is an inverted file associated with every edge that contains at least one data object.

The proposed indexing framework has several features that significantly enhance GSTK query processing performance. First, the data objects located on edge eid are stored in inverted files and objects relevant to keyword queries can be easily retrieved using (eid,tid). Second, the distance between the starting node and data object is also stored in an inverted file, hence data objects can be accessed directly. Third, the set of fans for each data object FD is stored in the inverted file, enabling faster computation of the social relevance score. Fourth, upper-bound scores are computed considering the combined textual, social and spatial relevance to the query. Fifth, the binding component uses the upper-bound score for each edge to prune edges that do not contain data objects that could be in the top-k results.

4.3. Methodology

The overview of the proposed query processing methodology is shown in Figure 5. A user initially generates a GSTK query (Step 1 in Figure 5). The query processing module receives a query that has information about user location, query keywords, user social networks, and the number of requested data objects (k) (Step 2 in Figure 5). The query processing module then starts searching the top-k data objects (Step 3 in Figure 5); it utilizes the indexing framework to process the query. First, it accesses the spatial component to start traversing the road network and searches the candidate data objects from the edge where user is located (Step 4 in Figure 5). Next, the binding component is accessed to compute the upper-bound score of edge by using the pre-computed Ωt and Ωf (Step 5 in Figure 5). If the upper-bound score is less than the current kth data object, then the edge is pruned, and the proposed system continues traversing the adjacent edges (Step 6 in Figure 5). If the upper-bound score is greater than the current kth data object, then the query processing module accesses the inverted file and social components to compute the score of each data object that lies on the edge (Step 7 in Figure 5). Next, the result set is updated by inserting the data objects with a score greater than the current kth data object (Step 8 in Figure 5). The query processing module continues road network expansion to retrieve more candidate data objects that can be in the top-k result set (Step 9 in Figure 5). Finally, the system is terminated when all edges are explored or there is no edge left with an upper-bound score greater than the kth data object, and the result set is returned to the user (Step 10 in Figure 5).

Figure 5.

Figure 5

Overview of the proposed query processing methodology.

4.4. Query Processing Algorithm

Algorithm 1 presents the main steps for the proposed Geo-Social Top-k Keyword query processing algorithm, GSTK-A. The algorithm takes input query QG and returns result set Rk containing the best k data objects in descending order by score ψ(d). GSTK-A expands adjacent edges of query objects in increasing order of distance from q.l similar to Dijkstra’s algorithm [41]. A min-heap H is implemented to arrange encountered edges which is initially empty. Each entry in H is represented as (pr,eid) where pr corresponds to the reference point in edge eid i.e., the starting point of expansion. An edge that contains query object q is represented as active edge eactive. Query object q becomes the reference point for an active edge and either adjacent node ns or ne becomes the reference point (or reference node) for other edges. Variable mk stores the score of the current kth data object in Rk.

The algorithm is initiated by visiting the active edge where query object q lies. Then, the candsearch((eid,tid),mk) function finds candidate data objects Rc lying on eactive with ψ(d)>mk, and updates Rk and mk using the data objects in Rc. The traversal of adjacent edges continues until the min-heap H is exhausted or the shortest distance to any remaining data object produces an upper-bound score smaller or equal to mk. The upper-bound score of a node n is computed using dist(n,q), the maximum textual and social relevance (which can be 1). Therefore, if the upper-bound score mk, then even if there is an unexplored data object d with maximum textual and social relevance, its score cannot be higher than the kth data object d in Rk because dist(d,q.l)dist(n,q.l) since the algorithm strictly expands and selects the reference node with minimum distance to the query location.

Algorithm 2 presents the candsearch((eid,tid),mk) procedure to identify candidate data objects. First, the algorithm accesses the social component to retrieve the friends of q and compute the social relevance score. Then, it computes the upper-bound score of the edges using the binding component with Ωt, Ωf, and the minimum distance from the query location to the edge. The inverted lists of term t are fetched only if their upper-bound scores are greater than mk. The scores of data objects are computed using the formula in Equation (1), and data objects with ψ(d)>mk are returned.

Next, we discuss the running example of the proposed algorithm presented in Figure 1. For simplicity, we assume the example settings as discussed in Section 4.1, i.e., we have a set of users U={u1,u2,,u100}. User u1 is the query user q who issued a query with keywords “French restaurant”, requested one result (k=1), and has a set of ten friends Fq={u4,u16,u23,u39,u48,u55,u67,u71,u80,u94}. Equal preference is assigned to every attribute, i.e., α=β=γ=1 and δ=0.5. Recall that the textual relevance is the number of occurrences of the query words in the object description divided by the total number of keywords in the object description. Table 2 presents the details and score computation of d2, d3 and d6.

graphic file with name sensors-20-00798-i001.jpg

graphic file with name sensors-20-00798-i002.jpg

The algorithm starts network expansion from active edge (n3,n8) with q as the reference point. Edges (q,n3) and (q,n8) are inserted in min-heap H. First, (q,n3) and (q,n8) are explored and no data object is found in both edges. Then, n3 becomes the reference point and edges (n3,n2), (n3,n4), and (n3,n7) are inserted in min-heap H. Next, the candsearch function searches the candidate data objects on edges (n3,n2), (n3,n4), and (n3,n7) having scores better than mk. The upper-bound score of edge (n3,n7) is 0.5×0.612=0.15 (Ωt=0.5, Ωf=0.5×23100+0.5×1=0.61 and dist(q,n3)=2). Therefore, the inverted list of edge is accessed because the upper-bound score of edge (n3,n7) is greater than the current mk score (mk=0); moreover d3 is retrieved with ψ(d3)=0.5×0.1654=0.02. Data object d3 is inserted in the Rk set, and mk is set to 0.02. The upper-bound score of edges (n3,n2) and (n3,n4) is zero, since there is only one data object d4 found on (n3,n4) with a description (“cafe and bar”) that does not match with the query keywords. The algorithm continues expanding the edges whose upper-bound score is greater than mk. Next, n8 becomes the reference point and the edges (n8,n1), and (n8,n9) are explored, but neither edge contains objects relevant to the query keywords. Node n2 becomes the next reference point and edges (n2,n1), and (n2,n6) are visited. There is no data object in (n2,n1) but the inverted list of (n2,n6) is accessed by candsearch function because the upper-bound score of (n2,n6) is 0.66×0.64=0.9 which is greater than the current mk=0.02. Therefore, any available candidate object could be the top-1 result. The inverted list of (n2,n11) is accessed and d2 is retrieved with ψ(d2)=0.66×0.357=0.033 which is greater than the current mk=0.02. Rk is updated with d2 and set mk=0.033. Next, n4 becomes the reference point and edges (n4,n5), and (n4,n10) are explored. Edge (n4,n5) does not contain any data object, but the inverted list of (n4,n10) is accessed by candsearch function because upper-bound score of (n4,n10) is 1×0.5454=0.136 which greater than mk=0.033. Data object d6 is found with ψ(d6)=1×0.1456=0.024, which is less than sk=0.033. Hence Rk and mk are not updated. The algorithm continues expanding the network until min-heap H is exhausted or the minimum network distance to any remaining data object produces an upper-bound score smaller or equal to mk. The upper-bound score of remaining edges is 0 because they do not contain any data objects relevant to the query keywords. Consequently, the algorithm terminates and reports d2 as the top-1 result.

4.5. Index Maintenance

In general, the updates in the textual description and check-in information of data objects are more recurrent than the updates in the spatial information of data objects or road networks. Therefore, we first discuss index maintenance when the textual description of data object is modified. Without loss of generality, let us assume that given a data object dD with textual description d.t is to be modified with new textual description d.t+. The update procedure begins by finding the edge eid in which d is located using the network’s R-tree. Then by using eid, the vector is obtained that contains all terms eid.t in that edge. Next, for terms ti that are in d.t but not in d.t+ data object d is removed from the inverted list of ti. The significance of term ti in eid.t is recomputed using the inverted list of ti, when Ωti,eid=Ωti,d and d is deleted from the inverted list of ti. For terms tj that are in d.t+ but not in d.t, d is inserted into the inverted list of tj. The significance of term tj in eid.t is recomputed using the inverted list of tj, when Ωtj,d>Ωti,eid, and d is inserted into the inverted list of tj. For terms tk that are in both d.t and d.t+, the significance of tk (Ωtk,d) in the inverted list is updated to (Ωtk+,d). The significance of term tk in eid.t is also updated to a significance of (Ωtk+,d) when Ωtk+,d>Ωtk,d.

Now we discuss index maintenance for an update in the check-in information of data object d. Consider a user ui checked-in to data object diD. Similarly, the update procedure starts with retrieving edge eid where di lies and then vector eid.t is accessed. Next, the inverted lists of all terms are accessed that are in di.t using (eid,tid). If ui is already a fan of di i.e., uiFdi, no further action is required. If user uiFdi, it is inserted in Fdi. Next, the highest significance of fans Ωf on eid with terms di.t is updated if Ωfi>Ωf where Ωfi indicates the Ωf of di after inserting new fan ui in Fdi. Next, we discuss the updates in the social relationships which are relatively straight forward. Consider users uj and uk becomes friends, uj is then added in Nuk and vice versa. Similarly, if they unfriend each other, uj is deleted from Nuk and vice versa. If uj deletes his or her account, then he or she is removed from Nu of all their friends and also removed from fan lists of all such data objects d where ujFd.

Finally, we discuss the updates in the spatial information of the data object which is a relatively infrequent operation. Consider a data object dadded with description dadded.t located on edge eid. As mentioned previously, initially edge eid is located and vector eid.t is accessed. Next for the term ti that is present in both dadded.t and eid.t, the inverted list of ti is accessed and data object dadded is inserted along with its dist(ns,dadded), Ωti,dadded, and Fdadded. Next, the significance of term ti in eid.t is updated if Ωti,dadded>Ωti,eid. Then, the highest significance of fans Ωf on eid with term ti is updated if Ωfadded>Ωf where Ωfadded indicates the Ωf of dadded. For term tj that are in dadded.t but not in eid.t, a new inverted list (eid,tj) is created, and a data object dadded is inserted into it. Next, Ωt and Ωf are computed for term tj on edge eid. Assume data object ddeleted with ddeleted.t to be removed is located on eid. All inverted lists with ddeleted.t are accessed and ddeleted is removed from them. Next, the significance of term tddeleted.t in eid.t is updated if Ωt,ddeleted>Ωt,eid, and Ωf on eid with term t is updated if Ωfdeleted>Ωf where Ωfdeleted indicates the Ωf of ddeleted. Finally, updating spatial location of a data object d is handled as a deletion followed by an insertion.

5. Geo-Social Skyline Keyword Queries

5.1. Problem Formulation

Skyline queries are useful for extracting desired data objects from a multi-dimensional datasets. A data object is desired if it is not dominated by any other data object i.e., it is not worse than any other data object in all dimensions. Geo-Social Top-k keywords queries retrieve the k best data objects based on spatial, textual and social relevance to query q. GSTK uses a scoring function and results depends on the values of query parameter (α, β, γ) defined by the user. However, it is important that the user has adequate knowledge to select appropriate values for these parameters. It is somewhat challenging to define a suitable scoring function due to different attribute distributions or user inability to choose an appropriate values [42]. Therefore, to supplement GSTK queries, we extend our work to study Geo-Social Skyline Keyword (GSSK) queries. GSSK queries return every object d within range r (i.e., dist(q,d)<r) which is not dominated by any other object in terms of distance to the query location and aggregated score of social and keyword relevance. The range parameter is used in GSSK queries to accommodate the case where a user is not interested in distant places but wants to find all possible objects within the chosen range.

The aggregated social and keyword and keyword score σ(d) is defined as:

σ(d)=μ(d.t,q.t)×γ(d.s,q.s) (3)

where μ(q.t,d.t) is the textual similarity between q.t and d.t and τ(q.s,d.s) is the social relevance of data object d with respect to query q. The definition of μ(q.t,d.t) and τ(q.s,d.s) are presented in Section 4.1. To calculate τ(q.s,d.s) we set δ=0.5 to indicate equal importance to query user friends and other users.

Geo-Social Keyword Dominance: A data object d is dominated by another data object d if σ(d)σ(d), dist(q,d)dist(q,d) and at least one of the following holds: σ(d)>σ(d) and dist(q,d)<dist(q,d). We denote the dominance relationship as dd which implies that data object d is dominated by data object d.

Geo-Social Skyline Keyword Queries: Given a query q, a set of keywords q.t and range r, GSSK queries return all data objects that are not dominated by any other data object.

Mapping to Distance-Score Space: Each data object d is mapped to a point in the distance-score space denoted by M, defined by axes dist(q,d) and σ(d).

To describe the problem definition, consider we have a set of data objects d={d1,d2,,d10} inside range r=5, with dist(q,d) and σ(d), as presented in Table 3. Figure 6 illustrates the mapping of data objects presented in Table 3 to the distance-score space M. Horizontal and vertical axes represent distance dist(q,d) and score σ(d), respectively. Lower values are preferred for the distance, whereas higher values are preferred for the score. Figure 6 illustrates that d2, d7, and d9 are dominant data objects, and all other data objects are dominated by them. For example, d2 dominates d4 because σ(d2)>σ(d4) and dist(q,d2)<dist(q,d4). Similarly, d7 dominates d5 because d7 has a superior distance and score. Therefore, d2, d7, and d9 are skyline objects si, belonging to skyline set SKY i.e., {d2,d7,d9}SKY.

Table 3.

Data object details.

Data Object dist(q,di) Cscore
d1 3 0.45
d2 4.5 0.8
d3 1.5 0
d4 5 0.7
d5 2 0.15
d6 3.5 0.4
d7 1 0.5
d8 4 0
d9 2.5 0.6
d10 1.5 0.2

Figure 6.

Figure 6

Distance-score mapping.

5.2. Query Processing Algorithm

We use the same indexing framework as described in Section 4.2, except the upper-bound score of the edge is composed from Ωt and Ωf. The inverted list of a term t on edge eid is only accessed if the edge is not dominated by a data object siSKY. An edge is dominated by si if the upper-bound score of the edge is less than σ(si) and dist(q,nB) is greater than or equal to dist(q,si). We then use Lemma 1 to prune non-skyline objects. In addition, the query processing methodology of GSSK query is similar to GSTK query as presented in Section 4.3.

Lemma 1.

If edge eid is dominated by siSKY, then edge eid does not contain any skyline objects.

Proof. 

Data object si represents the object in the skyline set, so if edge eid is dominated by si then the upper-bound score of edge eid is less than the score of si and dist(q,nB)>dist(q,si). Thus, all objects that lie on the edge have scores lower than the upper-bound score, and hence they cannot be skyline objects. □

We now present an algorithm GSSK-A for processing Geo-Social Skyline Keyword queries that returns the set of skyline objects SKY within range r. Algorithm 3 is similar to Algorithm 1; it traverses the road network in a similar fashion and exploration begins from the active edge eactive where q is located. The same min-heap H is implemented to arrange the encountered edges and it is initially empty. For each unexplored adjacent edge whose minimum distance is less than range r (i.e., dist(q,nB)r), we compute the upper-bound score based on Ωt and Ωf. The inverted list of a term t on edge eid is only accessed if the edge is not dominated by any siSKY. Next, for each data object d that lies on edge eid, σ(d) is computed if it satisfies the range constraint r (i.e., dist(q,d)r). If data object d is not dominated by any skyline object siSKY, it is added to skyline set SKY. Finally, the algorithm terminates when the heap is exhausted or there is no edge whose minimum distance is within range r.

graphic file with name sensors-20-00798-i003.jpg

6. Performance Evaluation

In this section, we evaluated the performance of our proposed algorithm through simulation experiments. Section 6.1 describes the experiment settings, and Section 6.2 and Section 6.3 present the experimental results for GSTK and GSSK queries, respectively. Section 6.4 compares GSTK and GSSK query responses.

6.1. Experimental Settings

A real road network dataset [43] was used that comprised the main roads of North America, with 175,812 nodes and 179,178 edges. The real dataset of Gowalla [44] and a synthetic dataset were used in these experiments. The characteristics of these datasets are presented in Table 4. Gowalla was a geo-social networking website that was subsequently acquired by Facebook. It included 196,591 users, 950,327 friendships, 6,442,890 check-ins and 1,280,956 checked-in places (data objects). We randomly generated data objects on each edge, producing seven data objects on average for each edge. We extracted data object descriptions from Twitter messages [45], and one tweet per data object was assigned. A user who checked-in at the location was considered a fan. For each experiment, we randomly selected 100 query objects from users and report the average cost of 100 queries. Query keywords were random terms generated from the dataset vocabulary. Table 5 summarizes the experiment parameters. In each experiment, we varied a single parameter within the given range, holding all other parameters at the constant default value highlighted in bold text unless specified otherwise.

Table 4.

Summary of dataset.

Attribute Gowalla Synthetic
Total Size 1.62 GB 1.87 GB
Total data objects 1,280,956 1,500,000
Total users 196,591 150,654
Total friendships 950,327 830,683
Total check-ins 6,442,890 7,364,130
Average fans per data object 3.4 5.8
Total words 8,198,118 11,420,957
Total distinct words 798,118 112,957
Average distinct words per data object 4.8 6.2

Table 5.

Experimental parameter settings.

Parameter Values
Number of results (k) 5, 10, 15, 20, 25
Number of keywords (n) 1, 2, 3, 4, 5
Number of data objects (|D|) 20, 40, 60, 90, 120, 1300, 1500 (x10,000)
Range (r) 20, 40, 60, 80, 100
α,β,γ 0.2, 0.4, 0.6, 0.8, 1.0
δ 0.5

To the best of our knowledge, the processing of GSTK and GSSK queries has not been studied before for road networks. Therefore, we compared our algorithms with social-textual index (SNIR-tree) proposed by Wu et al. [10] which was applicable for Euclidean space. For a fair comparison, we modified their work and designed a competitive technique (INE-SNIR) comprising the road network framework (INE) proposed by Papadia et al. [40] and social-textual index (SNIR-tree) [10]. The road network framework [40] enables locating a query point and traversing the network. The SNIR-tree [10] is based on the IR-tree [5] and is used to index and store user information and relationships; it also stores the social, textual and spatial information of data objects. The SNIR-tree index also facilitates finding the data objects inside the minimum bounding region (MBR) of edges socially and textually relevant to the query. The query processing of INE-SNIR works as follows. The MBR of edge MBR(eid) is used to perform a query in the index to obtain the data objects inside MBR(eid) that are socially and textually relevant to the query, and then utilizes the spatial framework to calculate the distance between the query location and data object.

We implemented all algorithms in Java, and experiments were conducted on a PC machine with a 3.60-GHz Intel Core i7 process and 16 GB RAM. Indexes were disk-resident and the page size of the network’s R-Tree and SNIR-tree were 8KB. We evaluated the algorithms performance using the following measures: (1) runtime, which indicates the total query execution time and (2) I/O cost, which represents the number of disk page accessed for query processing.

6.2. Experimental Results of Geo-Social Top-k Keyword Queries

Figure 7 shows the performance of GSTK-A and INE-SNIR with respect to k, the number of requested data objects with the highest scores. Experimental results reveal that the runtime and I/O cost of both the algorithms increased with increasing k, which is unsurprising since more data objects are explored and processed when increasing k. However, GSTK-A significantly outperformed INE-SNIR due to the proposed indexing framework. First, fewer inverted lists were processed due to the upper-bound score and, second, score calculation was highly efficient because the inverted list stores dist(ns,di), Ωti,di and Fdi.

Figure 7.

Figure 7

Effect of k on runtime and I/O cost.

Figure 8 depicts the runtime and I/O cost performance for GSTK-A and INE-SNIR with respect to the number of query keywords. As expected, the runtime and I/O cost for both algorithms increased with an increasing number of keywords in the query. With fewer query keywords, fewer data objects are relevant to the query, hence fewer edges and data objects are explored and processed. In contrast, with more query keywords, more data objects are relevant and consequently more edges and data objects are explored and verified. Notice that runtime and I/O cost for INE-SNIR increased more rapidly than for GSTK-A because the INE-SNIR candidate searching process is quite expensive. First it requires searching an index to retrieve data objects inside the MBR of edge that are textually and socially relevant to the query, and then computes the network distance between the query and data objects.

Figure 8.

Figure 8

Effect of the number of keywords on runtime and I/O cost.

We randomly generated 200 K, 400 K, 600 K, 900 K, 1200 K, and 1500 K data objects on the synthetic dataset to produce various sized datasets to evaluate the scalability of GSTK-A and INE-SNIR algorithms, as depicted in Figure 9. Both algorithms exhibited relatively poor performance when the number of data objects was small or large. Performance degraded for small number of data objects mainly because data object density is low and the algorithms expand more edges to retrieve k data objects. On the other hand, when the number of data objects is large, data objects relevant to query keywords also increase, with consequential increases runtime and I/O cost. The algorithms performed best for 400–600 K data objects.

Figure 9.

Figure 9

Effect of the number of data objects on runtime and I/O cost.

Figure 10 illustrates the impacts from query preference parameters α,β and γ on GSTK-A and INE- SNIR runtime. For each case, we varied the value of one parameter while maintaining the other two parameters at 0.5. Query preference parameters do not have significant impact on running time, although the performance of both approaches slightly improve when γ (spatial relevance) has a high preference, because fewer edges are required to be expanded; the performance slightly degrades when increasing α and β (textual and social relevance, respectively) due to the large number of data objects relevant to the query.

Figure 10.

Figure 10

Effect of query parameters on runtime.

6.3. Experimental Results of Geo-Social Skyline Keyword Queries

In this section we analyzed the performance of the algorithms (GSSK-A) for geo-social skyline keyword queries. We implemented the SKY-SNIR algorithm which uses the same indexing structure composed of INE [40] and SNIR-tree [10]. The SKY-SNIR algorithm first uses an SNIR-tree index to compute the aggregated score of data objects within range r based on social and textual relevance, and then calculates the network distance between the query and data objects. Skyline objects are then identified as those objects that are not dominated by any other data object using the aggregated score and network distance.

Figure 11 illustrates the range effects on GSSK-A and SKY-SNIR performance. Runtime and I/O cost increased with increasing r for both algorithms because the search space increased as r increasesd; consequently, the algorithms needed to expand more edges and process more data objects. However, GSSK-A scaled much better than SKY-SNIR because it only expanded edges that were not dominated by skyline data objects.

Figure 11.

Figure 11

Effect of range on runtime and I/O cost.

Figure 12 compares GSSK-A and SKY-SNIR performance with respect to the number of query keywords. These experiment results indicate similar trends as in Figure 8. The proposed algorithm GSSK-A not only outperformed SKY-SNIR but also scaled more effectively because SKY-SNIR is expensive for searching an index to retrieve data objects.

Figure 12.

Figure 12

Effect of the number of keywords on runtime and I/O cost.

Figure 13 shows data object cardinality effects on GSSK-A and SKY-SNIR performance using the synthetic dataset. In contrast to the experimental results of the GSTK query (Figure 9), the results of the GSSK query reveals that the runtime and I/O cost gradually increased as the cardinality of data objects increased. This is primarily because GSTK queries retrieve the k best data objects, and the algorithms must expand more edges when the search space is less dense, which increases runtime and I/O cost. In contrast, GSSK queries retrieve all data objects in r that are not dominated by any other data object, hence more data objects must be explored and verified as cardinality increases.

Figure 13.

Figure 13

Effect of the number of data objects on runtime and I/O cost.

6.4. Comparison of Results Returned by GSTK and GSSK Queries

This section compares and analyzes the results returned by GSTK and GSSK queries. The main advantage of the GSTK query is that user can control the number of data objects to be returned. However, the user must able to define the scoring function correctly, which can be challenging. GSSK queries solve that problem and do not need a scoring function, and also only provide data objects within the user specified range. However, the number of data objects in a result set cannot be controlled by the user. In the next experiment, we executed 100 queries for each setting, reporting the average number of data objects retrieved by GSTK, GSSK and the average number of common data objects that were retrieved by both queries.

Figure 14a, illustrates the GSTK and GSSK result set outcomes with respect to k for r=100. It is obvious that GSSK returned the same number of skyline data objects within range regardless of k, whereas GSTK returned exactly k data objects. Figure 14b, depicts the GSTK and GSSK result set outcomes with respect to r for k=25. As with fixed r, GSTK always returned the same k number of data objects, whereas the number of data objects in the result set of GSSK increased as r increased. The experimental results demonstrate that the result set of GSTK and GSSK shared many data objects but also included data objects that the other query failed to return. Thus, the proposed GSSK and GSTK queries complemented each other.

Figure 14.

Figure 14

The number of data objects returned by GSTK and GSSK queries.

7. Conclusions

This paper introduced geo-social top-k keyword (GSTK) queries for road networks for the first time, integrating social relevance into traditional spatial keyword search and returning the k best data objects based on spatial, textual, and social relevance to the query. We also extended the model to propose geo-social skyline keyword queries (GSSK) on road networks, which returns all data objects that are not dominated by any other data object. We developed an efficient indexing structure that effectively prunes the search space by retrieving data objects relevant to the query, and proposed efficient algorithms to process GSTK and GSSK queries in road networks. Experimental results demonstrates that our proposed approaches significantly outperforms INE-SNIR and SKY-INIR algorithms in terms of query runtime and I/O cost.

The proposed study retrieves data objects based on the single search keywords such as “French restaurant.” In the future, we plan to extend our work to study geo-social top-k collective keyword queries, which will retrieve a group of k data objects based on the set of keywords, query location, and query social information. Geo-social top-k collective keyword query has many real-world applications as the user often needs to find a group of data objects such as “tourist attractions,” “shopping malls,” and “cafes.” The processing of geo-social top-k collective keyword query is more challenging as it has to consider all sets of query keywords, data objects in the result set should be close to the query location, and should have minimum inter-object distance.

Author Contributions

Conceptualization, M.A. (Muhammad Attique) and H.J.; methodology, M.A. (Muhammad Attique); software, M.A. (Muhammad Attique) and F.A.; validation, M.A. (Muhammad Attique) and M.A. (Muhammad Afzal); formal analysis, M.A. (Muhammad Afzal) and I.M.; investigation, F.A. and M.F.I.; resources, H.-J.C.; data curation, M.A. (Muhammad Attique), I.M. and M.F.I.; writing—original draft preparation, M.A. (Muhammad Attique); writing—review and editing, M.A. (Muhammad Attique), M.A. (Muhammad Afzal), F.A., H.-J.C.; visualization, M.A. (Muhammad Attique) and F.A.; supervision, M.A. (Muhammad Attique) and H.-J.C.; project administration, M.A. (Muhammad Attique). All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korean government (MSIP) (NRF-2019R1H1A2080073).

Conflicts of Interest

The authors declare no conflict of interest.

References

  • 1.Cao X., Chen L., Cong G., Jensen C.S., Qu Q., Skovsgaard A., Wu D., Yiu M.L. Spatial keyword querying; Proceedings of the International Conference on Conceptual Modeling; Berlin, Germany. 15 October 2012; pp. 16–29. [Google Scholar]
  • 2.Zheng K., Su H., Zheng B., Shang S., Xu J., Liu J., Zhou X. Interactive top-k spatial keyword queries; Proceedings of the 2015 IEEE 31st International Conference on Data Engineering; Seoul, Korea. 13–17 April 2015; pp. 423–434. [Google Scholar]
  • 3.De Felipe I., Hristidis V., Rishe N. Keyword search on spatial databases; Proceedings of the 2008 IEEE 24th International Conference on Data Engineering; Cancun, Mexico. 7–12 April 2008; pp. 656–665. [Google Scholar]
  • 4.Cong G., Jensen C.S., Wu D. Efficient retrieval of the top-k most relevant spatial web objects. Proc. VLDB Endowment. 2009;2:337–348. doi: 10.14778/1687627.1687666. [DOI] [Google Scholar]
  • 5.Li Z., Lee K.C., Zheng B., Lee W.C., Lee D., Wang X. Ir-tree: An efficient index for geographic document search. IEEE Trans. Knowl. Data Eng. 2011;23:585–599. doi: 10.1109/TKDE.2010.149. [DOI] [Google Scholar]
  • 6.Guo L., Shao J., Aung H.H., Tan K.L. Efficient continuous top-k spatial keyword queries on road networks. GeoInformatica. 2015;19:29–60. doi: 10.1007/s10707-014-0204-8. [DOI] [Google Scholar]
  • 7.Rocha-Junior J.B., Nørvåg K. Top-k spatial keyword queries on road networks; Proceedings of the 15th International Conference on Extending Database Technology; Berlin, Germany. 24 August 2011; pp. 168–179. [Google Scholar]
  • 8.Emrich T., Franzke M., Mamoulis N., Renz M., Züfle A. Geo-social skyline queries; Proceedings of the International Conference on Database Systems for Advanced Applications; Chiang Mai, Thailand. 22–25 April 2014; pp. 77–91. [Google Scholar]
  • 9.Sohail A., Cheema M.A., Taniar D. Social-aware spatial top-k and skyline queries. Comput. J. 2018;61:1620–1638. doi: 10.1093/comjnl/bxy019. [DOI] [Google Scholar]
  • 10.Wu D., Li Y., Choi B., Xu J. Social-aware top-k spatial keyword search; Proceedings of the 2014 IEEE 15th International Conference on Mobile Data Management; Brisbane, Australia. 14–18 July 2014; pp. 235–244. [Google Scholar]
  • 11.Zhou Y., Xie X., Wang C., Gong Y., Ma W.Y. Hybrid index structures for location-based web search; Proceedings of the 14th ACM International Conference on Information and Knowledge Management; Bremen, Germany. 31 October 2005; pp. 155–162. [Google Scholar]
  • 12.Zobel J., Moffat A. Inverted files for text search engines. ACM Comput. Surv. (CSUR) 2006;38:6. doi: 10.1145/1132956.1132959. [DOI] [Google Scholar]
  • 13.Beckmann N., Kriegel H.P., Schneider R., Seeger B. The R*-tree: An efficient and robust access method for points and rectangles; Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data; Atlantic City, NJ, USA. 1 May 1990; pp. 322–331. [Google Scholar]
  • 14.Rocha-Junior J.B., Gkorgkas O., Jonassen S., Nørvåg K. Efficient processing of top-k spatial keyword queries; Proceedings of the International Symposium on Spatial and Temporal Databases; Minneapolis, MN, USA. 24–26 August 2011; pp. 205–222. [Google Scholar]
  • 15.Bao J., Chow C.Y., Mokbel M.F., Ku W.S. Efficient evaluation of k-range nearest neighbor queries in road networks; Proceedings of the 2010 Eleventh International Conference on Mobile Data Management; Kansas City, MO, USA. 23–26 May 2010; pp. 115–124. [Google Scholar]
  • 16.Attique M., Cho H.J., Jin R., Chung T.S. Top-k spatial preference queries in directed road networks. ISPRS Int. J. Geo-Inf. 2016;5:170. doi: 10.3390/ijgi5100170. [DOI] [Google Scholar]
  • 17.Huang Y.K., Chen Z.W., Lee C. Advances in Data and Web Management. Springer; Berlin, Germany: 2009. Continuous k-nearest neighbor query over moving objects in road networks; pp. 27–38. [Google Scholar]
  • 18.Cho H.J., Ryu K., Chung T.S. An efficient algorithm for computing safe exit points of moving range queries in directed road networks. Inf. Syst. 2014;41:1–19. doi: 10.1016/j.is.2013.10.008. [DOI] [Google Scholar]
  • 19.Attique M., Gudeta Y.H., Ayele S.G., Cho H.J., Chung T.S. A safe exit approach for continuous monitoring of reverse k-nearest neighbors in road networks. Int. Arab J. Inf. Technol. 2015;12:540–549. [Google Scholar]
  • 20.Gao Y., Qin X., Zheng B., Chen G. Efficient reverse top-k boolean spatial keyword queries on road networks. IEEE Trans. Knowl. Data Eng. 2014;27:1205–1218. doi: 10.1109/TKDE.2014.2365820. [DOI] [Google Scholar]
  • 21.Attique M., Cho H.J., Chung T.S. Efficient Processing of Moving Top-k Spatial Keyword Queries in Directed and Dynamic Road Networks. Wirel. Commun. Mob. Comput. 2018 doi: 10.1155/2018/7373286. [DOI] [Google Scholar]
  • 22.Borzsony S., Kossmann D., Stocker K. The skyline operator; Proceedings of the 17th International Conference on Data Engineering; Heidelberg, Germany. 2–6 April 2001; pp. 421–430. [Google Scholar]
  • 23.Chomicki J., Godfrey P., Gryz J., Liang D. Intelligent Information Processing and Web Mining. Springer; Berlin, Germany: 2005. Skyline with presorting: Theory and optimizations; pp. 595–604. [Google Scholar]
  • 24.Sharifzadeh M., Shahabi C. The spatial skyline queries; Proceedings of the 32nd International Conference on Very Large Data Bases, VLDB Endowment; Seoul, Korea. 12–15 September 2006; pp. 751–762. [Google Scholar]
  • 25.Deng K., Zhou X., Tao H. Multi-source skyline query processing in road networks; Proceedings of the 2007 IEEE 23rd International Conference on Data Engineering; Istanbul, Turkey. 15–20 April 2007; pp. 796–805. [Google Scholar]
  • 26.Choi H., Jung H., Lee K.Y., Chung Y.D. Skyline queries on keyword-matched data. Inf. Sci. 2013;232:449–463. doi: 10.1016/j.ins.2012.01.045. [DOI] [Google Scholar]
  • 27.Regalado A., Goncalves M., Abad-Mota S. Evaluating skyline queries on spatial web objects; Proceedings of the International Conference on Database and Expert Systems Applications; Vienna, Austria. 3–6 September 2012; pp. 416–423. [Google Scholar]
  • 28.Shi J., Wu D., Mamoulis N. Textually relevant spatial skylines. IEEE Trans. Knowl. Data Eng. 2015;28:224–237. doi: 10.1109/TKDE.2015.2465374. [DOI] [Google Scholar]
  • 29.Ahuja R., Armenatzoglou N., Papadias D., Fakas G.J. Geo-social keyword search; Proceedings of the International Symposium on Spatial and Temporal Databases; Hong Kong, China. 26–28 August 2015; pp. 431–450. [Google Scholar]
  • 30.Yang D.N., Shen C.Y., Lee W.C., Chen M.S. On socio-spatial group query for location-based social networks; Proceedings of the 18th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining; Beijing, China. 12 August 2012; pp. 949–957. [Google Scholar]
  • 31.Zhao J., Gao Y., Chen G., Jensen C.S., Chen R., Cai D. Reverse top-k geo-social keyword queries in road networks; Proceedings of the 2017 IEEE 33rd International Conference on Data Engineering (ICDE); San Diego, CA, USA. 19–22 April 2017; pp. 387–398. [Google Scholar]
  • 32.Zhang J., Meng X., Zhou X., Liu D. Co-spatial searcher: Efficient tag-based collaborative spatial search on geo-social network; Proceedings of the International Conference on Database Systems for Advanced Applications; Busan, South Korea. 15–19 April 2012; pp. 560–575. [Google Scholar]
  • 33.Jiang J., Lu H., Yang B., Cui B. Finding top-k local users in geo-tagged social media data; Proceedings of the 2015 IEEE 31st International Conference on Data Engineering; Seoul, Korea. 13–17 April 2015; pp. 267–278. [Google Scholar]
  • 34.Huang Q., Liu Y. On geo-social network services; Proceedings of the IEEE 2009 17th International Conference on Geoinformatics; Fairfax, VA, USA. 12–14 August 2009; pp. 1–6. [Google Scholar]
  • 35.Ye M., Yin P., Lee W.C. Location recommendation for location-based social networks; Proceedings of the 18th Sigspatial International Conference on Advances in Geographic Information Systems; San Jose, CA, USA. 2–5 November 2010; pp. 458–461. [Google Scholar]
  • 36.Levandoski J.J., Sarwat M., Eldawy A., Mokbel M.F. Lars: A location-aware recommender system; Proceedings of the 2012 IEEE 28th International Conference on Data Engineering; Washington, DC, USA. 1–5 April 2012; pp. 450–461. [Google Scholar]
  • 37.Liu W., Sun W., Chen C., Huang Y., Jing Y., Chen K. Circle of friend query in geo-social networks; Proceedings of the International Conference on Database Systems for Advanced Applications; Busan, Korea. 15–19 April 2012; pp. 126–137. [Google Scholar]
  • 38.Salton G., Buckley C. Term-weighting approaches in automatic text retrieval. Inf. Process. Manag. 1988;24:513–523. doi: 10.1016/0306-4573(88)90021-0. [DOI] [Google Scholar]
  • 39.Anh V.N., de Kretser O., Moffat A. Vector-space ranking with effective early termination; Proceedings of the 24th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval; New Orleans, LA, USA. 9–13 September 2001; pp. 35–42. [Google Scholar]
  • 40.Papadias D., Zhang J., Mamoulis N., Tao Y. Query processing in spatial network databases; Proceedings of the 29th International Conference on Very Large Data Bases, VLDB Endowment; Berlin, Germany. 9–12 September 2003; pp. 802–813. [Google Scholar]
  • 41.Dijkstra E.W. A note on two problems in connexion with graphs. Numer. Math. 1959;1:269–271. doi: 10.1007/BF01386390. [DOI] [Google Scholar]
  • 42.Papadias D., Tao Y., Fu G., Seeger B. Progressive skyline computation in database systems. ACM Trans. Database Syst. (TODS) 2005;30:41–82. doi: 10.1145/1061318.1061320. [DOI] [Google Scholar]
  • 43.Real Datasets for Spatial Databases. [(accessed on 12 January 2019)]; Available online: https://www.cs.utah.edu/~lifeifei/SpatialDataset.htm.
  • 44.Cho E., Myers S.A., Leskovec J. Friendship and mobility: User movement in location-based social networks; Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining; San Diego, CA, USA. 21–24 August 2011; pp. 1082–1090. [Google Scholar]
  • 45.Twitter. [(accessed on 12 January 2019)]; Available online: https://twitter.com.

Articles from Sensors (Basel, Switzerland) are provided here courtesy of Multidisciplinary Digital Publishing Institute (MDPI)

RESOURCES