Making Sense of Location-based Micro-posts Using Stream Reasoning Irene Celino1 , Daniele Dell’Aglio1 , Emanuele Della Valle2,1 , Yi Huang3 , Tony Lee4 , Stanley Park4 , and Volker Tresp3 1 CEFRIEL – ICT Institute, Politecnico of Milano, Milano, Italy 2 Dip. di Elettronica e dell’Informazione – Politecnico di Milano, Milano, Italy 3 SIEMENS AG, Corporate Technology, Muenchen, Germany 4 Saltlux, Seoul, Korea Abstract. Consider an urban environment and think to its semi-public realms (e.g., shops, bars, visitors attractions, means of transportation). Who is the maven of a district? How fast and how broad can such maven influence the opinions of others? These are just few of the questions BOTTARI (our Location-based Social Media Analysis mobile app) is getting ready to answer. In this position paper, we recap our investigation on deductive and inductive stream reasoning for social media analysis, and we show how the results of this research form the underpinning of BOTTARI. 1 Introduction In the last few years, we have been witnessing the increasing popularity and success of Location-based Services (LBS), especially of those with a Social Net- working flavour. Twitter, Facebook Places, foursquare, Gowalla are only a few examples of applications; those services bring a wide range on useful information about tourist attractions, local businesses and points of interests (POIs) in the physical world. Although these services are enormously popular, users still suffer from a number of shortcomings. The overwhelming information flow coming from those channels often confuses users; it is also very difficult to distinguish between a fair personal opinion and a malicious or opportunistic advice. This might be the reason why users primarily link to people they know personally since there is no clear way find out those who are trustable in an on-line social network. In this paper, we present our collaborative effort to the design and develop- ment of the BOTTARI application, a Location-based Service for mobile users that exploit Social Media Analysis techniques to identify the “mavens” of a spe- cific geographical area, who can be considered as experts of the POIs in this area. BOTTARI was conceived by Saltlux, a Korean Knowledge Communica- tion Company. The application is still under development and it will be made available to Korean users in the Seoul area. BOTTARI exploits hybrid Stream Reasoning both on heterogeneous social network data [1] and geo-location data. The hybrid reasoning engine combines deductive and inductive techniques. Since the input data are huge and change in real-time, the reasoning engine works by processing streaming data. The hybrid reasoning engine is developed on top of the LarKC platform [2], a pluggable architecture to build applications with Semantic Web technologies. The remainder of the paper is organised as follows. Section 2 explains the concept of stream reasoning and delineates the system architecture. Section 3 describes the BOTTARI app. Section 4 details some user questions in terms of queries to our stream reasoner. Finally, Section 5 concludes the paper. 13 · #MSM2011 · 1st Workshop on Making Sense of Microposts · 2 Irene Celino et al. 2 System Architecture Continuous processing of information flows (i.e. data streams) has widely been investigated in the database community. [3]. In contrast, continuous processing of data streams together with rich background knowledge requires semantic reason- ers, but, so far, semantic technologies are still focusing on rather static data. We strongly believe that there is a need to close this gap between existing solutions for belief update and the actual need of supporting decision making based on data streams and rich background knowledge. We named this little explored, yet high-impact research area Stream Reasoning [4]. The foundation for Stream Reasoning has been investigated by introducing technologies for wrapping and querying streams in the RDF data format (e.g., using C-SPARQL [5]) and by supporting simple forms of reasoning [6] or query rewriting [7]. We are developing the Stream Reasoning vision on top of LarKC [8]. The LarKC platform is aimed to reason on massive heterogeneous information such as social media data. The platform consists of a framework to build workflows, i.e. sequences of connected components (plug-ins) able to consume and process data. Each plug-in exploits techniques and heuristics from diverse areas such as databases, machine learning and the Semantic Web. Fig. 1. Architecture of our Stream Reasoner We built our Stream Reasoning system by embedding a deductive reasoner and an inductive reasoner within the LarKC architecture (see Figure 1). First, BOT- TARI pre-processes the micro-posts by extracting information5 whether a micro- post expresses a positive or a negative feeling of its author about a certain POI. After BOTTARI data arrives to the stream reasoner as set of data streams, a selection plug-in extracts the relevant data in each input stream in form of windows. A second plug-in abstracts the window content from fine grain data streams into aggregated events and produces RDF streams. Then, a deductive reasoner plug-in is able to register C-SPARQL queries, whose results can be of immediate use (cf. Section 4) or can be processed by other two sub-workflows. Each sub-workflow is constituted by an abstracter and an inductive reasoner, which uses an extended version of SPARQL that supports probabilities [9]. 3 The BOTTARI mobile app The BOTTARI mobile app is a location-based service that exploits the social context to provide relevant contents to the user in a specific geographic location. 5 This technology is a Saltlux trade secret. 14 · #MSM2011 · 1st Workshop on Making Sense of Microposts · Making Sense of Location-based Micro-posts Using Stream Reasoning 3 Fig. 2. Some screenshots of the BOTTARI Android application The purpose of the BOTTARI service is to provide recommendations on local context information to users through an augmented reality interface. BOTTARI gives detailed information on local POIs, including trust or reputation informa- tion. In Figure 2 , we provide some sample screenshots on how the BOTTARI mobile application will look like once completed. The input data for the BOTTARI service come from public social networks and location based services (Twitter, local blogs and Korean news), are converted in RDF streams and are then processed and analysed by the system described in Section 2. The RDF-ized data are modelled with respect to the ontology represented in Figure 3, which is an extension to the SIOC vocabulary [?]. Our model takes into account the specific relations of Twitter (followers/following, reply/retweet); it adds the geographical perspective by modelling the POIs; it includes the “reputation” information by means of positive/negative reviews. 15 · #MSM2011 · 1st Workshop on Making Sense of Microposts · 4 Irene Celino et al. Fig. 3. Ontology modelling of BOTTARI data 4 Computing Answers to User Questions The hybrid Stream Reasoning solutions we are developing is able to answer questions like: Who are the opinion makers (i.e., the users who are likely to influence the behaviour of their followers with regard to a certain POI)? How fast and how wide are opinions spreading? Who shall I follow to be informed about a given category of POIs in this neighbourhood? In the rest of the section we show how to issue the three queries above using C-SPARQL and SPARQL with probabilities. Who are the opinion makers? Lines 1 and 3 of the following listing tell the C-SPARQL engine to register the continuous query on the stream of micro-posts generated by BOTTARI considering a sliding window of 30 minutes that slides every 5 minutes. Line 2 tells the engine that it should generate an RDF stream as output reporting who are the opinion makers for a certain POI and if they are rating it positively or negatively. 1. REGISTER STREAM OpinionMakers COMPUTED EVERY 5m AS 2. CONSTRUCT { ?opinionMaker a twd:opinionMaker ; twd:discuss [ ?opinion ?poi ] . } 3. FROM STREAM [RANGE 30m STEP 5m] 4. WHERE { 5. ?opinionMaker a twd:TwitterUser ; 6. twd:posts [ ?opinion ?poi ] . 7. ?follower sioc:follows ?opinionMaker; 8. twd:posts [ ?opinion ?poi ] . 9. FILTER ( cs:timestamp(?follower) > cs:timestamp(?opinionMaker) 10. && ?opinion != twd:talksAbout ) 11. } 12. HAVING ( COUNT(DISTINCT ?follower) > 10 ) The basic triple pattern (BTP) at lines 5 and 6 matches micro-posts of the potential opinion makers with a POI. The variable opinion can match one of the properties talksAbout, talksAboutPositively, or talksAboutNegative- ly. The BTP at lines 7–8 looks up the followers of the opinion makers. The 16 · #MSM2011 · 1st Workshop on Making Sense of Microposts · Making Sense of Location-based Micro-posts Using Stream Reasoning 5 FILTER clause at line 9 checks whether the micro-posts of the followers, which talk about the same POI, occurs after those from the opinion makers. At line 10 the query filters out actions of type twd:talksAbout and concentrates on micro-posts clearly discussing a POI in a positive or negative way. Finally, at line 12 the clause HAVING promotes the true opinion makers which have at least ten followers who expressed the same opinion about the POI after them. How fast and wide opinions are getting spread? Using the RDF stream computed by the previous query, the query in the following listing informs about how wide the micro-posts of an opinion maker are getting spread in half an hour. To do so, it considers the reply and re-tweet relationships among tweets (i.e., tweets linked by the discuss property in BOT- TARI data model). Being discuss a transitive property, the C-SPARQL engine uses the materialization technique presented in [6] to incrementally compute the transitive closure of discuss. 1. REGISTER STREAM OpinionSpreading COMPUTED EVERY 30s AS 2. SELECT ?user ?opinionMakerTweet count(?aPositiveTweet) count(?aNegativeTweet) 3. FROM STREAM [RANGE 30m STEP 30s] 4. FROM STREAM 0.8 && ?prob < 1 ) 9. } ORDER BY ?prob 17 · #MSM2011 · 1st Workshop on Making Sense of Microposts · 6 Irene Celino et al. The BGP at lines 4–6 matches the opinion makers that have been recently expressing positive opinions about attractions for kids. The triple patter at line 7 matches BOTTARI users that Giulia is following. Note that the following relationship may have not been asserted yet, the construct WITH PROB extends SPARQL by letting it query an inducted model. The variable ?prob assumes the value 1 for the user she follows already and assumes the estimated probabilities between 0.8 and 1 for users she may be recommended to follow (cf. line 8). The ORDER BY clause is used to return users sorted by decreasing probability. The query answer includes pairs of users and predicted likelihood (e.g. :Alice with probability 0.99, :Bob with probability 0.87). 5 Conclusions and Future Works In this paper we presented BOTTARI, a location-based mobile application which is able to supply contents and personalized suggestions to the users. We ex- plained the processing of new recommendations, based on the elaboration of data streams generated by microblogging platforms like Twitter and foursquare. The computation is defined as a workflow combining Semantic Web and machine learning techniques and it is executed on top of the LarKC platform. Our future work will focus on the development of the first stable version of the BOTTARI application and its release as Android app. The initial release will focus on Korea and will be evaluated by following a user-centered approach: a set of users will try out the application, supplying us feedbacks via a survey with questions about the system and its accuracy in providing suggestions. This work was partially supported by the EU project LarKC (FP7-215535). References 1. Barbieri, D.F., Braga, D., Ceri, S., Della Valle, E., Huang, Y., Tresp, V., Rettinger, A., Wermser, H.: Deductive and Inductive Stream Reasoning for Semantic Social Media Analytics. IEEE Intelligent Systems 25(6) (2010) 32–41 2. Cheptsov, A., et al.: Large Knowledge Collider. A Service-oriented Platform for Large-scale Semantic Reasoning. In: Proceedings of WIMS 2011. (2011) 3. Garofalakis, M., Gehrke, J., Rastogi, R.: Data Stream Management: Processing High-Speed Data Streams. Springer-Verlag New York, Inc. (2007) 4. Della Valle, E., Ceri, S., van Harmelen, F., Fensel, D.: It’s a Streaming World! Reasoning upon Rapidly Changing Information. IEEE Intelligent Systems 24(6) (2009) 83–89 5. Barbieri, D.F., Braga, D., Ceri, S., Della Valle, E., Grossniklaus, M.: C-SPARQL: a Continuous Query Language for RDF Data Streams. Int. J. Semantic Computing 4(1) (2010) 3–25 6. Barbieri, D.F., Braga, D., Ceri, S., Della Valle, E., Grossniklaus, M.: Incremental Reasoning on Streams and Rich Background Knowledge. In: Proc. of ESWC2010. (2010) 7. Ren, Y., Pan, J.Z., Zhao, Y.: Towards Scalable Reasoning on Ontology Streams via Syntactic Approximation. In: Proc. of IWOD2010. (2010) 8. Fensel, D., et al.: Towards LarKC: a Platform for Web-scale Reasoning. In: Proc. of ICSC 2008. (2008) 9. Tresp, V., Huang, Y., Bundschus, M., Rettinger, A.: Materializing and querying learned knowledge. In: Proc. of IRMLeS 2009. (2009) 10. Berrueta, D., et al.: SIOC Core Ontology Specification. W3C Member Submission, W3C (2007) 18 · #MSM2011 · 1st Workshop on Making Sense of Microposts ·