This was the presentation I gave at I-SEMANTICS 2010 for our first-prize winner at the Triplification Challenge 2010.
It describes scenarios that motivated our development of Twarql. The paper can be found at:
http://blog.semantic-web.at/wp-content/uploads/2010/09/a45_mendes.pdf
Citation:
Pablo N. Mendes, Alexandre Passant, and Pavan Kapanipathi. 2010. Twarql: tapping into the wisdom of the crowd. In Proceedings of the 6th International Conference on Semantic Systems (I-SEMANTICS '10), Adrian Paschke, Nicola Henze, and Tassilo Pellegrini (Eds.). ACM, New York, NY, USA, , Article 45 , 3 pages. DOI=10.1145/1839707.1839762 http://doi.acm.org/10.1145/1839707.1839762
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Twarql (Presentation at I-SEMANTICS 2010)
1. TwarqlTapping Into the Wisdom of the Crowd(demo with brand tracking scenario) Pablo N. Mendes, PavanKapanipathi, Alexandre Passant I-SEMANTICS Graz, Austria September 2nd, 2010
3. Tap into the Wisdom of the Crowd? “taking into account the collective opinion of a group of individuals rather than a single expert to answer a question” (Wikipedia) Has been done successfully box-office revenue prediction for movies (CoRR’10) earthquake detection (WWW’10) Can be useful in many scenarios
6. Twarql Contributions Expressive description of an information need Beyond keywords (uses SPARQL) Flexibility on the point of view Ability to “slice and dice” data in several dimensions: thematic, spatial, temporal, sentiment, etc. Streaming data + background knowledge Enables automatic evolution and serendipity Scalable real time delivery Using sparqlPuSH(SFSW’10)
7. Use Cases (IPad Scenario) Location Retrieve stream of locations where my product is being mentioned right now. Consumer sentiment Retrieve all people that have said negative things about my product. Content suggestion Retrieve all URLs that people recommend with relation to my product. Related entities What competitors are being mentioned with my product?
8. Use Case 1: Location (query) Retrieve a stream of locations where my product is being mentioned right now. SELECT ? location WHERE { ?tweet moat:taggedWithdbpedia:IPad . ?presence opo:currentLocation ?location . ?presence opo:customMessage ?tweet . }
9. Use Case 1: Location Incoming tweets… @anonymized @anonymized @anonymized Loremipsumblabla this is an example tweet Loremipsumblabla this is an example tweet Loremipsumblabla this is an example tweet opo:currentLocation ?presence ?location SELECT ? location WHERE { ? tweet moat : taggedWithdbpedia : IPad . ? presence opo: currentLocation ? location . ? presence opo: customMessage ? tweet . } opo:customMessage moat:taggedWith dbpedia:IPad ?tweet
10. Use Case 1: Location @anonymized @anonymized @anonymized Loremipsumblabla this is an example tweet Loremipsumblabla this is an example tweet Loremipsumblabla this is an example tweet Update view if tweet matches contraints opo:currentLocation ?presence ?location SELECT ? location WHERE { ? tweet moat : taggedWithdbpedia : IPad . ? presence opo: currentLocation ? location . ? presence opo: customMessage ? tweet . } opo:customMessage moat:taggedWith dbpedia:IPad ?tweet
11. Use Case 2: Consumer Sentiment Retrieve all people that have said negative things about my product. SELECT ? user WHERE { ? tweet sioc:has_creator ? user . ? tweet moat:taggedWithdbpedia:IPad . ? tweet twarql:sentimenttwarql:Negative . }
12. Use Case 2: Consumer sentiment Incoming tweets… @anonymized Loremipsumblabla this is an example tweet ?user :Negative twarql:sentiment sioc:has_creator moat:taggedWith dbpedia:IPad ?tweet
13. Use Case 2: Consumer sentiment Invite users for testing our new launch: @pablomendes @terraces @anonymized Loremipsumblabla this is an example tweet @pavankaps Trigger action if tweet matches constraints @anotheruser ?user :Negative twarql:sentiment sioc:has_creator Update view moat:taggedWith dbpedia:IPad ?tweet
14. Use Case 3: Content suggestion Retrieve all URLs that people recommend with relation to my product SELECT ?url WHERE { ? tweet moat:taggedWithdbpedia:IPad . ? tweet sioc:links_to ?url . } Note: Twarql extracts links and resolves shortened URIs before annotating the tweet
15. Use Case 3: Content Suggestion Incoming tweets… @anonymized Loremipsumblabla this is an example tweet ?url sioc:links_to moat:taggedWith dbpedia:IPad ?tweet
16. Use Case 3: Content Suggestion My IPad Journal @anonymized Loremipsumblabla this is an example tweet If tweet matches constraints, accumulate information and update view ?url sioc:links_to moat:taggedWith dbpedia:IPad ?tweet
17. Use Case 4: Competitors (query) What competitors of my product are being mentioned? SELECT ? competitor WHERE { dbpedia:IPadskos:subject ?category . ?competitor skos:subject ?category . ?tweet moat:taggedWith ?competitor . }
18. Use Case 4: Competitors (query) What competitors of my product are being mentioned with my product? - comparative opinion! SELECT ? competitor WHERE { dbpedia:IPadskos:subject ?category . ?competitor skos:subject ?category . ?tweet moat:taggedWith ?competitor . } ?tweet moat:taggedWithdbpedia:Ipad .
19. Use Case 4: Competitors Incoming microposts… Background Knowledge (e.g. DBpedia) @anonymized Loremipsumblabla this is an example tweet dbpedia:IPad skos:subject ?category ?category ?competitor skos:subject skos:subject moat:taggedWith Competition is modeled as two products in the same category in DBpedia ?tweet
20. Use Case 4: Competitors Incoming microposts… Background Knowledge (e.g. DBpedia) @anonymized Loremipsumblabla this is an example tweet category:Wi-Fi dbpedia:IPad category:Touchscreen skos:subject ?category ?category ?competitor skos:subject skos:subject moat:taggedWith Background knowledge is dynamically “brought into” microposts. ?tweet
21. Use Case 4: Competitors Background Knowledge (e.g. DBpedia) @anonymized Loremipsumblabla this is an example tweet category:Wi-Fi dbpedia:IPad category:Touchscreen skos:subject ?category ?category ?competitor skos:subject skos:subject moat:taggedWith ?tweet Trigger action if micropost matches constraints.
22. Use Case 4: Competitors (contd.) Highlights When a new competitor “appears” in the KB, no change is needed in the query => Automatic Evolution We found interesting products that we didn’t initially consider as competitors of IPad(e.g. IPhone)=> Serendipity
23. Demonstration Cuebee query formulation Twarql information extraction stream querying sparqlPuSH real time delivery Demo link: http://bit.ly/twarql
25. Twarql Streaming Activity Diagram DIST. HUB Web Client APP SERVER (SEMANTIC) PUBLISHER SOCIAL SENSOR Twitter API SETUP keywords FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id /register /subscribe STREAM(query, #id) ANNOTATE(tweet) REGISTER(query, new hubURL()) PUBLISH(tweet) /publish hubURL FILTER(tweet, for all query) #id REQUEST(#id) PULL(hubURL, req) /feed STORE(tweet) feed update UPDATE INTERFACE RDF store UPDATE(hubURL,rssTweet) UPDATE(tweet) #id POLL cache CACHE(tweet) QUERY(#id, query) PUSH(tweet, subscriber) RELAY QUERY /sparql /sparql http://www.slideshare.net/pablomendes/streaming-annotatedtweets
26. Annotation URL extraction Regex based, short URL resolution via http redirects Hashtag extraction Regex based, “resolution” via TagDef and Tagal.us Entity mention extraction “Spotting” via string matching (prefix tree) based on a dictionary (DBpedia) Disambiguation on the way! (via DBpedia Spotlight) Conversion to RDF triples using SIOC, FOAF, MOAT, etc.
27. Conclusion Flexibility and expressiveness in managing real time streams of information! Triples generated for the IPad scenario From June 3rd to June 8th 511,147 tweets 4,479,631 triples … and counting! You can generate triples too: http://twarql.sf.net 53,237 positive; 6,739 negative; 451,171 neutral
28. Thank you Connect with us: @pablomendes @terraces @pavankaps Collaborate: http://twarql.sf.net http://wiki.knoesis.org/index.php/Twarql
This use case requires merging streaming data with background knowledge information (e.g. from DBpedia). Examples of ?category include category:Wi-Fi devices and category:Touchscreen portable media players amongst others. As a result, without having to elicit all products of interest as keywords to lter a stream, a user is able to leverage relationships in background knowledge to more effectively narrow down the stream of tweets to a subset of interest.
This use case requires merging streaming data with background knowledge information (e.g. from DBpedia). Examples of ?category include category:Wi-Fi devices and category:Touchscreen portable media players amongst others. As a result, without having to elicit all products of interest as keywords to lter a stream, a user is able to leverage relationships in background knowledge to more effectively narrow down the stream of tweets to a subset of interest.
This use case requires merging streaming data with background knowledge information (e.g. from DBpedia). Examples of ?category include category:Wi-Fi devices and category:Touchscreen portable media players amongst others. As a result, without having to elicit all products of interest as keywords to lter a stream, a user is able to leverage relationships in background knowledge to more effectively narrow down the stream of tweets to a subset of interest.
Use case: get me all the tweets related to sports from all the friends of a user.The Formulate query will make a query for this assigning an ID for this, and will configure the social sensor for the query, id and hubURL.The hubURL will be given back to the client so the client knows where to collect information in future.