Encyclopedia of Social Network Analysis and Mining

Living Edition
| Editors: Reda Alhajj, Jon Rokne

Social Search and Querying

  • Georgia KoloniariEmail author
  • Panagiotis Lionakis
  • Kostas Stefanidis
Living reference work entry
DOI: https://doi.org/10.1007/978-1-4614-7163-9_110208-1

Synonyms

Glossary

Social content

The content that appears in social networks due to user activities, reflecting their relationships with other users and the content they shared.

Social graph

A graph representing a social network. The nodes of the graph correspond to the entities of the social network, while the edges capture the social relationships between the entities. Typically, there are two types of entities: the type user, representing the social network users or participants; and the type object, including all other entities other than users, e.g., images, videos, events, and applications.

Social network

A structure, typically nowadays expressed as an online application, that enables social interactions and personal relationships between users, by allowing them to post information, comments, messages, images, and videos.

Definition

Web search and querying is the precursor of social search, and typically offers searching functionalities on the web. Results are usually a mix of web pages, images, and various types of files. Also results may be mined from available databases or open directories, or even they can be derived by running algorithms on web crawlers. Recently, web search is enhanced with social data, due to the increasing popularity of social networks and the vast amount of information contained in them. The goal of social search is mainly to retrieve user-generated content such as images, videos, or news appearing in social media like Facebook, Twitter, and Instagram. Thus, social search combines traditional searching algorithms with online community filtering to produce personalized results, based on the intuition that the network of a user might be more relevant to her particular needs.

Introduction

Due to the increasing popularity of social networks and the vast amount of information in them, recently there have been many efforts in enhancing web search based on social data. Specifically, social networks contain different types of data, namely data about the network, i.e., data for which users visit the network, data about the users and their social connections, and data about the social activities users perform. The richness of data that social networks know about users comes through the rich information users voluntarily provide that reflects their interests. Therefore, an effective and efficient way to query social data is essential for satisfying the users search needs. This has lead to the emergence of social search and querying that utilizes the underlying graph structure and the content of a social network to provide both more personalized and expressive search features for the users.

The way in which social networks help users explore and discover data, has recently evolved from the traditional methods of keyword-based search. Actually, there is a gap between typical information retrieval approaches and approaches that target social-related information recommendation. That is, information retrieval focuses on identifying data semantically relevant to the users queries, while social-related information recommendation focuses on locating data that users may like, based on their social profile activities and the activities of their social connections. The principle behind the speedily growing social networks is that the query results coming from these user-oriented networks could be more meaningful and relevant for the users, instead of having algorithms deciding the results for specific queries. Results are still presented in a ranked-based manner from the most useful to the less useful ones, where usefulness defines the value of results for the users in the query.

Besides the different types of data that social networks contain, forming a structure dictated by the relationships among the entities, i.e., users and objects, of the network, another important dimension of social networks is their dynamic nature. New content is added through user activities and updates occur both in the structure of the graph and the content shared, representing respective changes in the users’ interests. This temporal aspect of the information should influence social search either explicitly by enabling users to query for particular time points or periods (Koloniari et al. 2012; Ren et al. 2011; Koloniari and Pitoura 2013) or implicitly by providing the most recent results and higher ranking of fresher content (Joho et al. 2013; Stefanidis et al. 2013; Huo and Tsotras 2014).

Key Points

By exploiting the content of social networks and their temporal aspects, we focus in this entry on a complete social search framework that tries to satisfy the varying user search needs. Specifically, we present a time-independent and a time-dependent query model and their corresponding logical algebras that both can be applied to social networks.
  • To encompass different querying needs, we use a query model that exploits the underlying social graph representation. The model defines queries for the entities of the network, i.e., users and objects. It supports two querying perspectives. User-centric queries offer a personalized search feature by exploiting the social relationships of a user, whereas system-centric queries provide a global search feature with many applications in online-shopping and target-advertising, so as to select the best group for a new product or the best products to promote to a given user. This model supports queries independent of time. In addition, it is extended to enables time-awareness by allowing time-dependent queries that exploit time explicitly.

  • To deploy the querying model over any social network, we use a logical algebra that provides the set of basic operators required to evaluate both the time-independent and time-dependent queries specified by the corresponding query model. Besides the basic operators, the algebra includes a set of operators for supporting a ranking functionality. The ranking mechanism enables the implicit use of time to enhance the results of a query by providing a time-dependent ranking, so that more recent or fresher results are returned first.

Historical Background

In the classic problem of web search, the user supplies a keyword query which expresses her information needs. Given a collection of web documents that are indexed by a web search engine, the documents matching the user query are determined by using information retrieval techniques. The final results are presented to the user ranked based on a score that quantifies their relevance to the input query.

As the web scaled up and bigger portions of it became commercialized, the need to improve web search and prevent results from being manipulated for profit emerged. Thus, from early on, researchers proposed to exploit besides the content of the web, also its structure as dictated by the links between web pages. Thus, algorithms such as PageRank (Brin and Page 1998) and HITS (Kleinberg 1999) were proposed to identify important documents on the web, determining their importance based on their in- and outgoing links in the web graph. Thus, query results are not only ranked based on their relevance to the user query but also on their importance in the web graph.

Personalized web search focused more on the user perspective, trying to better fulfil the information needs of users by providing results tailored to their preferences and characteristics (Jeh and Widom 2003). A user’s web search history is exploited in this case to provide context for her future queries.

Therefore, the continuous trend is to enrich the web search process with all the available information exploiting diverse sources of data such as the web content, the web structure, and the web usage data. The first attempts on exploiting social content to enhance web search is through social annotations (Bao et al. 2007). In this case, tags provided by users are considered as appropriate web page summaries that are more descriptive of the actual contents of a page. Queries are evaluated against these tagbased summaries to calculate their relevance to each page.

Data Model

The typical entities of a social network represent users and objects. An entity n i is described by a set of predicates \( {a}_{i_j} \) of the form (\( {a}_{i_j}.\mathrm{attribute}={a}_{i_j}.\mathrm{value} \)). For example, an attribute for a user can be “name = Alice” and an attribute for an object, e.g., an event, can be “location = Shanghai.”

Time-Independent Data Model: A social network can be modeled as an undirected graph, G = (V, E). The set of nodes V corresponds to the entities that belong to the social network, i.e., V = UO, where U is the set of users and O the set of objects. The set of edges E captures the relationships between the entities that belong to V; user-to-user edges capture the friendship between the corresponding users, while user-to-object edges declare that a user uses or participates in some way in an object o j .

Time-Dependent Data Model: The typical graph model can be extended with temporal information toward making social search time-dependent. We exploit the valid time of data items and consider an element, node, or edge, of a graph G as valid for the period for which the corresponding element of the network it represents is also valid. To do this, each element e i in the social graph is annotated with a label with the time intervals for which the element is valid. To cope with the dynamic nature of the social network that causes elements to become valid (a user joins the network), invalid (it leaves), and then valid again (rejoins the network), for each element e i G, its label is defined as a set of disjoint intervals \( l\left({e}_i\right)=\left\{\left({t}_{\mathrm{start}}^j,{t}_{\mathrm{end}}^j\right)| j\ge 1\right\} \), which implies that element e i is valid for the time intervals \( \left\{\left[{t}_{\mathrm{start}}^1,{t}_{\mathrm{end}}^1\right),\left[{t}_{\mathrm{start}}^2,{t}_{\mathrm{end}}^2\right),\dots \right\} \).

Query Model

The focus in this section is on how to support queries for the social graph that exploit the graph structure, as well as its time dimension. Specifically, one can discern between four structural parts that compose a query:
  1. 1.

    The set of result nodes V′, which are the nodes to be retrieved and form the query result.

     
  2. 2.

    The set of qualifying nodes QV, which are the intermediate nodes through which the different entities in the query are connected, and are specified by a set of predicates P.

     
  3. 3.

    The reference node u i , which is the node around which the query is centered, and a distance d from it.

     
  4. 4.

    The time constraint T that checks for the validity of nodes and edges involved in the query.

     

More formally, a query Q can be defined as follows:

Definition 1

Given a graph G = (V, E), V = UO, predicates P, a user node u i , a distance d, and time constraints T, we define a query Q as a query that retrieves a set of nodes V′ ⊆ V, such that, v k V′, if and only if, ∀v l V for which P(v l ) = true and (v l is valid according to T and ∃(v j , v l ) ∈ E), or (∃(v j , v l ) ∈ E that is valid according to T), and
  • if v l U, ∃ path between v i and v l with length = d, or

  • if v l O, ∃ path between v i and v j with length = d.

For clarifying this, let us consider an example of a popular query, Q1: “find all of Ross’ friends that attend sports events in July 2016.” This query expresses constraints both on the structure of the graph and on time. We use Q1 as our illustrative example to demonstrate the different possibilities one has for querying the social graph, so as to deduce a complete query model that covers our social search needs.

So, let us begin with the result of Q1. The query retrieves a subset of the friends of the user Ross, i.e., the result set, V′, is a set of user nodes, V′ ⊆ UV. Similarly, one could query for object instead of user nodes, i.e., Q2: “find all events in July 2016 that Ross’ friends attend,” where it holds: V OV. Thus, we can discern, according to the type of nodes that form our result set, between queries for friends, such as Q1, and queries for objects, such as Q2. The first type gives emphasis on the company of the user, while the second focuses on the objects to be consumed.

We ignore the time constraint for now, as we treat time as a separate dimension. As our goal is to exploit the graph structure, our queries include constraints on the connectivity between the different entities that are referenced in the query context. In particular, Q1 requires the result nodes to be directly connected to a set of intermediate object nodes specified through a set of predicates, i.e., Q1 requires the friends of Ross that are connected with objects of type sports events. Let P be a set of predicates concerning the attributes in the nodes descriptions of the form (attribute θ value). For numerical attributes, θ ∈ {=, <, >, ≤, ≥, ≠}, and, for nonnumerical attributes, θ ∈ {=, ≠, prefix}. We say that P(v i ) = true, if and only if, node v i satisfies all predicates in P. We refer to nodes, for which P is true, as the qualifying nodes in the query, denoted as QV. The retrieved nodes (the ones forming the result set) need to be connected to all the qualifying nodes, i.e., we want the friends of Ross that attend all sports events in July 2016. Since the all operator is a very strict requirement, it can be relaxed to require that the retrieved nodes are at least connected to one qualifying node, i.e., the friends of Ross that attend any sports event in July 2016.

Similarly to the result nodes, the predicates can also refer to either user or object nodes. To illustrate this, for Q2, the result nodes, i.e., events, need to be connected to all Ross’ friends. In this example, P is empty as we have no predicates specified for these user nodes. Note that as our graph model does not define connections between objects, for a query for objects the predicates are only applied on user nodes. However, we may also define queries for users on which the predicates are also applied on other users. For instance, Q3: “find all of Ross’ friends that are friends with users with occupation athlete.” In Q3, the result user nodes need to be connected (be friends) with other users for which the predicate occupation = athlete is true.

Furthermore, Q1 includes a reference node, i.e., the user node that corresponds to user Ross. Our query is centered around this reference node, u i , and we call such queries user-centric queries. Q1 requires the user nodes that form the result set to be friends with Ross, i.e., it requires for them to be directly connected to the reference node. We can consider extensions, such as Q4: “find all the friends of the friends of Ross that attend sports events in July 2014.” In this example, the result nodes are at distance d = 2 from the reference node, which means that there is a path of two edges connecting them. Although d >2 is also plausible, in practice it is rarely used.

Q2 is also a user-centric query, but in this case, the reference node is not directly connected to the result nodes. Instead, it is required that the qualifying user nodes of the query are directly connected to Ross.

On the other hand, one may also want to pose queries where no reference node is specified at all, i.e., system-centric queries. For instance, consider query Q5: “find all users that attend sports events in July 2016.” Such queries capture the system perspective and their goal is to identify either sets of users that share some common interests and, for instance, may be interested in a particular product or event the system wants to promote, or similarly, sets of objects that may be of interest to some particular users so that they can choose to promote these objects to them. System-centric queries can be extended to allow for connectivity constraints to be specified on the returned results. For instance, Q6: “find all groups of users that are friends and attend sports events in July” requires not a set of user nodes as a result, but groups of such users that are directly connected within each group.

The last part of our query is the time constraint. Thus, for Q1, T specifies that the sports events that Ross’ friends attend are valid in July 2016. In Q1, T is applied on the qualifying nodes QV and therefore can be treated as another predicate that however does not concern the object descriptions, but rather their labels. Another possibility is to specify time constraints on the result nodes, i.e., Q7: “find all the friends of Ross that are valid in July 2016 and have attended sports events.” If a time constraint is specified for any part of the query, then we are able to capture time-dependent queries.

T can be also applied on the labels of the edges of the social graph, introducing a different type of queries. For instance, Q8: “find all the friends of Ross that express that they will attend VLDB 2016 in August 2016,” requires a set of users that have established their connections with an event during a specific time period.

Given that T is defined as a time period [b, c), we discuss next how we handle validity. Specifically, to determine whether a node v i is valid for T, one needs to compare T against l(v i ). If one of the time intervals included in l(v i ) is included in the interval specified by T, i.e., \( \exists \left({t}_{\mathrm{start}}^j,{t}_{\mathrm{end}}^j\right)\in l\left({v}_i\right) \), such that, \( {t}_{\mathrm{start}}^j\ge b \) and \( {t}_{\mathrm{end}}^j< c \), then v i is valid for T. A reverse interpretation is also possible. That is, one could require the valid time of the node to include T, i.e., \( \exists \left({t}_{\mathrm{start}}^j,{t}_{\mathrm{end}}^j\right)\in l\left({v}_i\right) \), such that, \( {t}_{\mathrm{start}}^j< b \) and \( {t}_{\mathrm{end}}^j> c \). From a different perspective, we can consider before and after semantics, requiring \( {t}_{\mathrm{start}}^j< b \) or \( {t}_{\mathrm{start}}^j> c \), respectively. In a more relaxed interpretation, it suffices for the valid time of a node to simply intersect with T, for the node to be considered valid. Finally, for b = c, time point queries are supported. Similarly, we can define the validity of the edges appearing in the social graph.

A Logical Algebra

Developing a flexible and expressive mechanism to manipulate data in social graphs is an important challenge. Our focus here is on integrating in a principled way the search process into the context of social graphs. Toward discovering information that covers the needs of users in a flexible manner, we exploit the following logical algebraic framework. By using this logical algebra, we can express sophisticated tasks for retrieving data relevant to the user queries both at a semantic (e.g., by querying for specific predicates) and social (e.g., by querying for friendships) level. We start with the core operators of the algebra that can be used for evaluating the system- and user-centric queries introduced above, and then define time-dependent and ranking operators.

Time-Independent Operators: The select node operator takes as input a set of nodes V, a set of predicates P, and a parameter Z that defines the retrieving focus of the operator, i.e., users U or objects O. The operator outputs the nodes that satisfy the predicates in P. Formally:

Definition 2 (Select Node Operator)

σ P,Z (V) = {v|vZP(v) = true}.

This operator is appropriate for implementing system-centric queries.

For user-centric queries, we have additional parameters, i.e., the reference node and a distance from it. Thus, we define the select node from graph operator that takes as input a social graph G, a node v i corresponding to a user u i U, a distance d, a set of predicates P, and a parameter Z that defines the retrieving focus of the operator, i.e., users U or objects O. The operator outputs the nodes v j from G that satisfy the predicates in P for which there exists at least one path with length at most d between v i and v j . Formally:

Definition 3 (Select Node from Graph Operator)

σ P,Z,d (v i ,G) = {v j |v j ZP(v j ) = true ∧ ∃ path between v i and v j with length ≤ d}.

In the main framework, we define also the difference operator for excluding from a set, nodes that are not directly connected with the nodes of a different set.

Definition 4 (Difference Operator)

dif (V i ,V j ,G) = {v x |v x V i ∧ ∃v y V j , such that, ∃ (v x ,v y ) in G}.

Given G = (V,E), the query Q9: “find all Ross’ friends that have attended sports events” can be accomplished as follows. Direct friends of Ross, say V 1, are captured by σ {},friends,1(Ross,G). We retrieve the objects, say V 2, with topic = sports events, by σ topic=sports events,objects (V), and dif (V 1,V 2,G) locates the subset of Ross’ friends that have attended sports events.

Time-Dependent Operators: For handling time-dependent queries, the above operators are extended in order to take into account time constraints T for users and/or objects.

Definition 5 (Temporal Select Node Operator)

σ P,Z,T (V) = {v|vZP(v) = truev is valid f or T}.

Definition 6 (Temporal Select Node from Graph Operator)

σ P,Z,T,d (v i ,G) = {v j |v j ZP(v j ) = true ∧ ∃ path between v i and v j with length ≤ dv j is valid for T}.

Then, for evaluating Q1 that augments Q8 with the temporal constraint [1/12/2013, 31/12/2012) for events, we locate set V2 as:
$$ {{\sigma_{\mathrm{topic}}}_{=\mathrm{sports}\ \mathrm{events},\kern0.5em \mathrm{objects},}}_{\left[1/12/2013,31/12/2012\right)}(V). $$

Operators for locating valid edges are defined in a similar manner.

Ranking Operators: To provide more meaningful results than a simple set of returned nodes and enable the implicit use of time, we exploit a ranking functionality. Ranking is time-dependent, in the sense that it ranks more recent nodes higher. To determine how recent a node is, we rely on the time of the user activities rather than the actual valid time of the nodes themselves, as we expect that more recent activities tend to better reflect the current trends in the network. This information is captured in the labels of the edges of the network that connect the result and qualifying nodes.

Thus, given a node v j , we use the notion of freshness of a node v i (fresh(v i )) as the maximum t start value in the labels of the edges that connect v i and v j . In particular, to support the ranking functionality, we use the temporal social winner and rank operators.

A node v i belongs to the winner if there is no node v l with age greater than the age of v i .

Definition 7 (Temporal Social Winner Operator)

winner (V) = {v i | v i V\( \not\exists \) v l V, such that, fresh (v l ) > fresh (v i )}.

Ranking all nodes in V can be achieved by repetitive applications of this operator.

Definition 8 (Temporal Social Rank Operator)

$$ \begin{array}{l}{\mathrm{rank}}^i(V)\\ {}=\left\{\begin{array}{l}{\mathrm{rank}}^1(V)=\mathrm{winner}(V)\hfill \\ {}{\mathrm{rank}}^{i+1}(V)=\mathrm{winner}\left( V-{\cup}_{k=1}^i{\mathrm{rank}}^k(V)\right)\hfill \end{array}\right.\end{array} $$

In general, there are different ways for handling operators. Firstly, operators can be implemented on-top of a DBMS either as standalone programs or as user-defined functions. Alternatively, operators may be translated into other, existing relational algebra operators during a preprocessing step. Finally, operators can be implemented inside the database engine using specific physical operators and algorithms.

Key Applications

Social search applications can be divided into two categories: either applications that enable querying and searching information derived solely from social networks or applications that by exploiting this social information enhance web search, usually by providing alternative ranking mechanisms.

In the first category, each social network (e.g., Facebook, Twitter) provides its own search functionality. Facebook also introduced a search functionality, Facebook Graph Search, that took into account the structural information of the social graph. In particular, it allowed users to pose queries for users or objects directly connected to other nodes in the network, and it also provided a “near” operator for supporting geographical locality in queries. Google presented a search engine, Social Searcher, that enables users to select which social network they want to query by posing keyword queries. The engine makes implicit use of time by ranking results based either on relevance or time. SQTime (Lionakis et al. 2014) is also a system designed specifically to enable time-aware social search by supporting both historical queries and ranking of query results based on time.

Searching for people or person search is an alternative application that falls in this first category of social search. Instead of searching for results matching a query in a social network, this type of search aims at locating the appropriate person or people that can provide the best answers to a user query or better match a description specified by the query. Aardvark (Horowitz and Kamvar 2010) is a social search engine that searches the social graph to locate the most relevant users to another user input query. The engine does not rely on its own social network, but derives its social graph by exploiting the social networks that a user belongs to. It orders a query’s result, i.e., the users likely to provide the best answers to the query, according to the strength of their connection with the user who posed the query. In (Hsieh et al. 2015), person search aims at locating in a social network the people that better match a set of social labels, such as interests, home town, and others. The ranking mechanism exploits the structure of the social graph ranking higher either users that are more well-connected in the global social graph, and thus, assumed as more important, or users that are in closer proximity with the user that posed the query, similarly to Aardvark.

In the second category, based on the assumption that user needs are often varied and require more than one result to their queries, the premise is that web search combined with information derived from social content might yield the most promising results (Amer-Yahia et al. 2009).

Personalized search is an application in this category (for a survey on personalized data management, see (Stefanidis et al. 2011)). To offer results that better reflect a specific user’s information needs, instead of relying on user web history, personalized social search makes use of knowledge derived from a user’s social network, such as her profile and her connections to other users in the social graph structure. In (Carmel et al. 2009), social information is used to provide a reranking of the web results for a user query. The basic idea is similar to (Horowitz and Kamvar 2010) and (Hsieh et al. 2015), where query results are ranked based on the connection strength in the graph of the node representing the user that posed the query with the nodes containing the query results. In (Bender et al. 2008), the goal is not only to provide a better ranking of the web results, but to retrieve results that better match the user information needs. To this end, tags are incorporated in the social graph and used for query expansion and rewriting so as to attain more relevant results.

Future Directions

In the future, going beyond harvesting the information from a single social network, we envision a framework that enables open access to a social graph that as a whole brings together different social networks. Time-awareness is also essential in a scenario such as this, as it is essential to answer the query needs of users who are looking for information obtained by integrating numerous and heterogeneous sources.

Cross-References

References

  1. Amer-Yahia S, Lakshmanan LVS, Yu C (2009) Socialscope: enabling information discovery on social content sites. In: CIDR 2009, Fourth biennial conference on innovative data systems researchGoogle Scholar
  2. Bao S, Xue G, Wu X, Yu Y, Fei B, Su Z (2007) Optimizing web search using social annotations. In: Proceedings of the 16th international conference on World Wide Web, WWW ’07, pp 501–510Google Scholar
  3. Bender M, Crecelius T, Kacimi M, Michel S, Neumann T, Parreira JX, Schenkel R, Weikum G (2008) Exploiting social relations for query expansion and result ranking. In: IEEE 24th international conference on data engineering workshop, ICDEW, pp 501–506Google Scholar
  4. Brin S, Page L (1998) The anatomy of a large-scale hypertextual web search engine. In: Proceedings of the seventh international conference on World Wide Web 7, WWW7, pp 107–117Google Scholar
  5. Carmel D, Zwerdling N, Guy I, Ofek-Koifman S, Har’el N, Ronen I, Uziel E, Yogev S, Chernov S (2009) Personalized social search based on the user’s social network. In: Proceedings of the 18th ACM conference on information and knowledge management, CIKM ’09, pp 1227–1236Google Scholar
  6. Horowitz D, Kamvar SD (2010) The anatomy of a large-scale social search engine. In: Proceedings of the 19th international conference on World Wide Web, WWW ’10, pp 431–440Google Scholar
  7. Hsieh H-P, Li C-T, Yan R (2015) I see you: person-of-interest search in social networks. In: Proceedings of the 38th international ACM SIGIR conference on research and development in information retrieval, SIGIR ’15, pp 839–842Google Scholar
  8. Huo W, Tsotras VJ (2014) Efficient temporal shortest path queries on evolving social graphs. In: Conference on scientific and statistical database management, SSDBM ’14, Aalborg, 30 June–02 July 2014, pp 38:1–38:4Google Scholar
  9. Jeh G, Widom J (2003) Scaling personalized web search. In: Proceedings of the 12th international conference on World Wide Web, WWW ’03, pp 271–279Google Scholar
  10. Joho H, Jatowt A, Roi B (2013) A survey of temporal web search experience. In: Proceedings of the 22nd international conference on World Wide Web, WWW ’13 Companion, pp 1101–1108Google Scholar
  11. Kleinberg JM (1999) Authoritative sources in a hyperlinked environment. J ACM 46(5):604–632MathSciNetCrossRefzbMATHGoogle Scholar
  12. Koloniari G, Pitoura E (2013) Partial view selection for evolving social graphs. In: First international workshop on graph data management experiences and systems, GRADES 2013, co-loated with SIGMOD/PODSGoogle Scholar
  13. Koloniari G, Souravlias D, Pitoura E (2012) On graph deltas for historical queries. First International Workshop on Online Social Systems (WOSS), in conjunction with VLDBGoogle Scholar
  14. Lionakis P, Stefanidis K, Koloniari G (2014) Sqtime: time-enhanced social search querying. In: Advances in conceptual modeling – ER Demos. Atlanta, GA, USA, pp 303–307Google Scholar
  15. Ren C, Lo E, Kao B, Zhu X, Cheng R (2011) On querying historical evolving graph sequences. PVLDB 4(11):726–737Google Scholar
  16. Stefanidis K, Koutrika G, Pitoura E (2011) A survey on representation, composition and application of preferences in database systems. ACM Trans Database Syst 36(3):19CrossRefGoogle Scholar
  17. Stefanidis K, Ntoutsi E, Petropoulos M, Nørvåg K, Kriegel H (2013) A framework for modeling, computing and presenting time-aware recommendations. In: Transactions on large-scale data- and knowledge-centered systems, vol 10. Springer Berlin Heidelberg, Berlin, Heidelberg, pp 146–172Google Scholar

Copyright information

© Springer Science+Business Media LLC 2017

Authors and Affiliations

  • Georgia Koloniari
    • 1
    Email author
  • Panagiotis Lionakis
    • 2
  • Kostas Stefanidis
    • 3
  1. 1.Applied Informatics DepartmentUniversity of MacedoniaThessalonikiGreece
  2. 2.Department of Computer ScienceUniversity of CreteHeraklionGreece
  3. 3.School of Information SciencesUniversity of TampereTampereFinland

Section editors and affiliations

  • Jaideep Srivastava
    • 1
  • Abdullah Uz Tansel
    • 2
  1. 1.Department of Computer Science and EngineeringUniversity of MinnesotaMinneapolisUSA
  2. 2.Baruch College, CUNYNew YorkUSA