SlideShare uma empresa Scribd logo
1 de 71
Twarql
  Streaming Annotated Tweets


Pablo N. Mendes, Pavan Kapanipathi, Alex Passant,
                 Amit P. Sheth


                 May 17th, 2010
Twarql in a Nutshell
• extract content (entity mentions, hashtags and
  URLs) from microposts;
• encode content in a structured format (RDF)
  using shared vocabularies (FOAF, SIOC, MOAT,
  etc.);
• enable structured querying of microposts
  (SPARQL);
• enable subscription to a stream of microposts
  that match a given query (Concept Feeds);
• enable scalable real-time delivery of streaming
  data (SparqlPuSH).
     For more information visit: http://wiki.knoesis.org/index.php/Twarql
Simple Streaming Activity Diagram
Web Client   APP SERVER                                   Twitter API

                  /setup

                                          LISTEN(tweet)      STREAM(tweet)

                 /register   /subscribe




                              /publish




                /feed

                             RDF store




               cache




               /sparql       /sparql
Simple Streaming Activity Diagram
 Web Client   APP SERVER                                   Twitter API

SETUP
                   /setup

                                           LISTEN(tweet)      STREAM(tweet)

                  /register   /subscribe




                               /publish




                 /feed

                              RDF store




                cache




                /sparql       /sparql
Simple Streaming Activity Diagram
 Web Client       APP SERVER                                   Twitter API

SETUP
                       /setup
FORMULATE QUERY
                                               LISTEN(tweet)      STREAM(tweet)

                      /register   /subscribe




                                   /publish




                     /feed

                                  RDF store




                    cache




                    /sparql       /sparql
Simple Streaming Activity Diagram
 Web Client          APP SERVER                                   Twitter API

SETUP
                          /setup
FORMULATE QUERY
                                                  LISTEN(tweet)      STREAM(tweet)

STREAM(query, #id)       /register   /subscribe




                                      /publish




                        /feed

                                     RDF store




                       cache




                       /sparql       /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                             LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register   /subscribe




                                                 /publish




                                  /feed

                                                RDF store




                                  cache




                                  /sparql       /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                             LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register   /subscribe




                                                 /publish




                                  /feed

                                                RDF store




                                  cache




                                  /sparql       /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                       Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                            LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register     /subscribe

                                                REGISTER(query,
                                                            new hubURL())

                                                   /publish




                                  /feed

                                                  RDF store




                                  cache




                                  /sparql         /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish




                                  /feed

                                                                       RDF store




                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish




                                  /feed

                                                                       RDF store




                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish



REQUEST(#id)
                                  /feed

                                                                       RDF store




                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed

                                                                       RDF store




                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed

                                                                       RDF store




                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store




                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                            Twitter API

SETUP
                                     /setup
FORMULATE QUERY
                                                                                                 LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                   Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                  keywords
                                                                                                 LISTEN(tweet)              STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe

                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                     Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                    keywords
                                                                                                 LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                 ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                     Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                    keywords
                                                                                                 LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                 ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                 PUBLISH(tweet)


                     #id
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                                                     STORE(tweet)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id



POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                                                     STORE(tweet)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id

                                                                     UPDATE(aTweet, #id)
POLL
                                  cache




                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                                                     STORE(tweet)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id

                                                                     UPDATE(aTweet)
POLL
                                  cache


                              CACHE(tweet)


                                  /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                                                     STORE(tweet)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id

                                                                     UPDATE(aTweet)
POLL
                                  cache


                              CACHE(tweet)


QUERY                             /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                                                     STORE(tweet)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id

                                                                     UPDATE(aTweet)
POLL
                                  cache


                              CACHE(tweet)


                                                RELAY
QUERY                             /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                                                     STORE(tweet)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id

                                                                     UPDATE(aTweet)
POLL
                                  cache


                              CACHE(tweet)


                                                RELAY
QUERY                             /sparql                              /sparql
Simple Streaming Activity Diagram
 Web Client                APP SERVER                                                                                        Twitter API

SETUP
                                     /setup
FORMULATE QUERY                                                                                                       keywords
                                                                                                    LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                          /subscribe
                                                                                                    ANNOTATE(tweet)
                                                topic id   query     REGISTER(query,
                                                #id1       SELECT…               new hubURL())

                                                #id2
                                                                        /publish                    PUBLISH(tweet)


                     #id                                             FILTER(tweet, for all query)
REQUEST(#id)
                                                                     STORE(tweet)
                                  /feed
UPDATE INTERFACE
                                                                       RDF store
               #id

                                                                     UPDATE(aTweet)
POLL
                                  cache
                                                                     QUERY(#id, query)

                              CACHE(tweet)


                                                RELAY
QUERY                             /sparql                              /sparql
Simple (Flattened) Architecture
• Was our first implementation for testing
  – App Server performs all functions Social Sensor,
    Semantic Publisher. No Distribution Hubs involved.
• Overloads the server with streaming,
  annotating and publishing.
• Client polling increases server overload.
Our Proposed Architecture
• Separates concerns between modules
  – Social Sensor, Semantic Publisher, Distribution
    Hub, Application Server
• Uses pubsubhubbub protocol to increase
  scalability for distribution
• Multiple app servers and multiple social
  sensors allow flexibility in handling multiple
  streams in a scalable fashion
PuSH Activity Diagram
Web Client   APP SERVER      DIST. HUB      (SEMANTIC)   SOCIAL SENSOR     Twitter API
                                          PUBLISHER


                                                           LISTEN(tweet)      STREAM(tweet)

                 /register               /subscribe




                                          /publish




                /feed

                                         RDF store




               cache




               /sparql                   /sparql
PuSH Activity Diagram
 Web Client   APP SERVER      DIST. HUB      (SEMANTIC)   SOCIAL SENSOR     Twitter API
                                           PUBLISHER
SETUP

                                                            LISTEN(tweet)      STREAM(tweet)

                  /register               /subscribe




                                           /publish




                 /feed

                                          RDF store




                cache




                /sparql                   /sparql
PuSH Activity Diagram
 Web Client       APP SERVER      DIST. HUB      (SEMANTIC)   SOCIAL SENSOR     Twitter API
                                               PUBLISHER
SETUP

FORMULATE QUERY
                                                                LISTEN(tweet)      STREAM(tweet)

                      /register               /subscribe




                                               /publish




                     /feed

                                              RDF store




                    cache




                    /sparql                   /sparql
PuSH Activity Diagram
 Web Client          APP SERVER      DIST. HUB      (SEMANTIC)   SOCIAL SENSOR     Twitter API
                                                  PUBLISHER
SETUP

FORMULATE QUERY
                                                                   LISTEN(tweet)      STREAM(tweet)

STREAM(query, #id)       /register               /subscribe




                                                  /publish




                        /feed

                                                 RDF store




                       cache




                       /sparql                   /sparql
PuSH Activity Diagram
 Web Client                APP SERVER           DIST. HUB      (SEMANTIC)   SOCIAL SENSOR     Twitter API
                                                             PUBLISHER
SETUP

FORMULATE QUERY
                                                                              LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register               /subscribe




                                                             /publish




                                  /feed

                                                            RDF store




                                  cache




                                  /sparql                   /sparql
PuSH Activity Diagram
 Web Client                APP SERVER           DIST. HUB      (SEMANTIC)   SOCIAL SENSOR     Twitter API
                                                             PUBLISHER
SETUP

FORMULATE QUERY
                                                                              LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register               /subscribe




                                                             /publish




                                  /feed

                                                            RDF store




                                  cache




                                  /sparql                   /sparql
PuSH Activity Diagram
 Web Client                APP SERVER           DIST. HUB        (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                               PUBLISHER
SETUP

FORMULATE QUERY
                                                                                          LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                 /subscribe

                                                            REGISTER(query,
                                                                        new hubURL())

                                                               /publish




                                  /feed

                                                              RDF store




                                  cache




                                  /sparql                     /sparql
PuSH Activity Diagram
 Web Client                APP SERVER           DIST. HUB        (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                               PUBLISHER
SETUP

FORMULATE QUERY
                                                                                          LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                  /register                 /subscribe

                                                            REGISTER(query,
                                                                        new hubURL())

                                                               /publish




                                  /feed

                                                              RDF store




                                  cache




                                  /sparql                     /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                   DIST. HUB        (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                       PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                  LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                      /subscribe

                                                                    REGISTER(query,
                           topic id       Hub URL                               new hubURL())

                           #id1           http://hub1
                                                                       /publish
                           #id2           http://hub2




                                      /feed

                                                                      RDF store




                                  cache




                                  /sparql                             /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                   DIST. HUB        (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                       PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                  LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                      /subscribe

                                                                    REGISTER(query,
                           topic id       Hub URL                               new hubURL())

                           #id1           http://hub1
                                                                       /publish
                           #id2           http://hub2




                                      /feed

                                                                      RDF store




                                  cache




                                  /sparql                             /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                   DIST. HUB        (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                       PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                  LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                      /subscribe

                                                                    REGISTER(query,
                           topic id       Hub URL                               new hubURL())

                           #id1           http://hub1
                                                                       /publish
                           #id2           http://hub2


REQUEST(#id)
                                      /feed

                                                                      RDF store




                                  cache




                                  /sparql                             /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                   DIST. HUB        (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                       PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                  LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                      /subscribe

                                                                    REGISTER(query,
                           topic id       Hub URL                               new hubURL())

                           #id1           http://hub1
                                                                       /publish
                           #id2           http://hub2

                     #id
REQUEST(#id)
                                      /feed

                                                                      RDF store




                                  cache




                                  /sparql                             /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB        (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                            PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                       LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                           /subscribe

                                                                         REGISTER(query,
                           topic id       Hub URL                                    new hubURL())

                           #id1           http://hub1
                                                                            /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)
                                      /feed

                                                                           RDF store




                                  cache




                                  /sparql                                  /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed

                                                                                   RDF store




                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update

                                                                                   RDF store




                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update

                                                                                   RDF store




                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store




                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store



POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR     Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY
                                                                                                               LISTEN(tweet)      STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR            Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                keywords
                                                                                                               LISTEN(tweet)              STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe

                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR              Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                  keywords
                                                                                                               LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe
                                                                                                               ANNOTATE(tweet)
                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                (SEMANTIC)             SOCIAL SENSOR              Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                  keywords
                                                                                                               LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe
                                                                                                               ANNOTATE(tweet)
                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish                   PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                 (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                     keywords
                                                                                                                  LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe
                                                                                                                  ANNOTATE(tweet)
                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                       FILTER(tweet, for all query)
REQUEST(#id)                                                 PULL(hubURL, req)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                 (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                     keywords
                                                                                                                  LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe
                                                                                                                  ANNOTATE(tweet)
                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                       FILTER(tweet, for all query)
REQUEST(#id)                                                 PULL(hubURL, req)
                                                                                 STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id

POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                 (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                     keywords
                                                                                                                  LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe
                                                                                                                  ANNOTATE(tweet)
                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                       FILTER(tweet, for all query)
REQUEST(#id)                                                 PULL(hubURL, req)
                                                                                 STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id
                                                                                 UPDATE(hubURL, rssTweet)
POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                        DIST. HUB                 (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                    PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                     keywords
                                                                                                                  LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                   /subscribe
                                                                                                                  ANNOTATE(tweet)
                                                                                 REGISTER(query,
                           topic id       Hub URL                                            new hubURL())

                           #id1           http://hub1
                                                                                    /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                       FILTER(tweet, for all query)
REQUEST(#id)                                                 PULL(hubURL, req)
                                                                                 STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                   RDF store
            #id
                                                              UPDATE(tweet)      UPDATE(hubURL, rssTweet)
POLL
                                  cache




                                  /sparql                                          /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                           DIST. HUB                    (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                          PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                           keywords
                                                                                                                        LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                         /subscribe
                                                                                                                        ANNOTATE(tweet)
                                                                                       REGISTER(query,
                           topic id       Hub URL                                                  new hubURL())

                           #id1           http://hub1
                                                                                          /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                             FILTER(tweet, for all query)
REQUEST(#id)                                                   PULL(hubURL, req)
                                                                                       STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                         RDF store
            #id
                                                                 UPDATE(tweet)         UPDATE(hubURL, rssTweet)
POLL
                                  cache


                                                             PUSH(tweet, subscriber)


                                  /sparql                                                /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                           DIST. HUB                    (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                          PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                           keywords
                                                                                                                        LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                         /subscribe
                                                                                                                        ANNOTATE(tweet)
                                                                                       REGISTER(query,
                           topic id       Hub URL                                                  new hubURL())

                           #id1           http://hub1
                                                                                          /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                             FILTER(tweet, for all query)
REQUEST(#id)                                                   PULL(hubURL, req)
                                                                                       STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                         RDF store
            #id
                                                                 UPDATE(tweet)         UPDATE(hubURL, rssTweet)
POLL
                                  cache


                                                             PUSH(tweet, subscriber)


                                  /sparql                                                /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                           DIST. HUB                    (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                          PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                           keywords
                                                                                                                        LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                         /subscribe
                                                                                                                        ANNOTATE(tweet)
                                                                                       REGISTER(query,
                           topic id       Hub URL                                                  new hubURL())

                           #id1           http://hub1
                                                                                          /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                             FILTER(tweet, for all query)
REQUEST(#id)                                                   PULL(hubURL, req)
                                                                                       STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                         RDF store
            #id
                                                                 UPDATE(tweet)         UPDATE(hubURL, rssTweet)
POLL
                                  cache


                              CACHE(tweet)                   PUSH(tweet, subscriber)


                                  /sparql                                                /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                           DIST. HUB                    (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                          PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                           keywords
                                                                                                                        LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                         /subscribe
                                                                                                                        ANNOTATE(tweet)
                                                                                       REGISTER(query,
                           topic id       Hub URL                                                  new hubURL())

                           #id1           http://hub1
                                                                                          /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                             FILTER(tweet, for all query)
REQUEST(#id)                                                   PULL(hubURL, req)
                                                                                       STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                         RDF store
            #id
                                                                 UPDATE(tweet)         UPDATE(hubURL, rssTweet)
POLL
                                  cache


                              CACHE(tweet)                   PUSH(tweet, subscriber)


QUERY                             /sparql                                                /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                           DIST. HUB                    (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                          PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                           keywords
                                                                                                                        LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                         /subscribe
                                                                                                                        ANNOTATE(tweet)
                                                                                       REGISTER(query,
                           topic id       Hub URL                                                  new hubURL())

                           #id1           http://hub1
                                                                                          /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                             FILTER(tweet, for all query)
REQUEST(#id)                                                   PULL(hubURL, req)
                                                                                       STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                         RDF store
            #id
                                                                 UPDATE(tweet)         UPDATE(hubURL, rssTweet)
POLL
                                  cache


                              CACHE(tweet)                   PUSH(tweet, subscriber)


                                                             RELAY
QUERY                             /sparql                                                /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                           DIST. HUB                    (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                          PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                           keywords
                                                                                                                        LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                         /subscribe
                                                                                                                        ANNOTATE(tweet)
                                                                                       REGISTER(query,
                           topic id       Hub URL                                                  new hubURL())

                           #id1           http://hub1
                                                                                          /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                             FILTER(tweet, for all query)
REQUEST(#id)                                                   PULL(hubURL, req)
                                                                                       STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                         RDF store
            #id
                                                                 UPDATE(tweet)         UPDATE(hubURL, rssTweet)
POLL
                                  cache


                              CACHE(tweet)                   PUSH(tweet, subscriber)


                                                             RELAY
QUERY                             /sparql                                                /sparql
PuSH Activity Diagram
 Web Client                APP SERVER                           DIST. HUB                    (SEMANTIC)               SOCIAL SENSOR              Twitter API
                                                                                          PUBLISHER
SETUP

FORMULATE QUERY                                                                                                                           keywords
                                                                                                                        LISTEN(tweet)                STREAM(tweet)
                     query, #id
STREAM(query, #id)                     /register                                         /subscribe
                                                                                                                        ANNOTATE(tweet)
                                                                                       REGISTER(query,
                           topic id       Hub URL                                                  new hubURL())

                           #id1           http://hub1
                                                                                          /publish                      PUBLISH(tweet)
                           #id2           http://hub2

                     #id                            hubURL                             FILTER(tweet, for all query)
REQUEST(#id)                                                   PULL(hubURL, req)
                                                                                       STORE(tweet)
                                      /feed
                                                        feed update
UPDATE INTERFACE
                                                                                         RDF store
            #id
                                                                 UPDATE(tweet)         UPDATE(hubURL, rssTweet)
POLL
                                  cache
                                                                                       QUERY(#id, query)

                              CACHE(tweet)                   PUSH(tweet, subscriber)


                                                             RELAY
QUERY                             /sparql                                                /sparql
Algorithms
Algorithm – SOCIAL SENSOR
• SOCIAL SENSOR
  while (tweet = LISTEN(stream)) {
      aTweet = ANNOTATE(tweet)
      PUBLISH(aTweet)
  }
Algorithm – SEMANTIC PUBLISHER
• SEMANTIC PUBLISHER
  function PUBLISH(aTweet) {
    for each registered feed {
      if aTweet matches feed.query
            UPDATE(feed.hub)
    }                        Pavan’s “matches” implementation
                                 sparul = SERIALIZE(aTweet)
  }                              rdf.STORE(sparul)
                                     for each query {
                                               match = rdf.QUERY(query)
                                               if (match)
                                                          UPDATE(hub)
                                     }
Acknowledgements
• Visit our project page:
  http://wiki.knoesis.org/index.php/Twarql

• Thanks to Michael Cooney for the tedious work of
  making the animations SlideShare-friendly

• Thanks to Pavan, Hemant, Pramod and Delroy for
  questions and suggestions at the March Hackaton
  where I first described this version of the
  architecture.

Mais conteúdo relacionado

Destaque

Semantic Technologies for Big Data
Semantic Technologies for Big DataSemantic Technologies for Big Data
Semantic Technologies for Big Data
Marin Dimitrov
 

Destaque (9)

Real time big data analytics with Storm by Ron Bodkin of Think Big Analytics
Real time big data analytics with Storm by Ron Bodkin of Think Big AnalyticsReal time big data analytics with Storm by Ron Bodkin of Think Big Analytics
Real time big data analytics with Storm by Ron Bodkin of Think Big Analytics
 
Streaming architecture patterns
Streaming architecture patternsStreaming architecture patterns
Streaming architecture patterns
 
Real-time Big Data Processing with Storm
Real-time Big Data Processing with StormReal-time Big Data Processing with Storm
Real-time Big Data Processing with Storm
 
Meet Up - Spark Stream Processing + Kafka
Meet Up - Spark Stream Processing + KafkaMeet Up - Spark Stream Processing + Kafka
Meet Up - Spark Stream Processing + Kafka
 
Stream Processing use cases and applications with Apache Apex by Thomas Weise
Stream Processing use cases and applications with Apache Apex by Thomas WeiseStream Processing use cases and applications with Apache Apex by Thomas Weise
Stream Processing use cases and applications with Apache Apex by Thomas Weise
 
Top industry use cases for streaming analytics
Top industry use cases for streaming analyticsTop industry use cases for streaming analytics
Top industry use cases for streaming analytics
 
Semantic Technologies for Big Data
Semantic Technologies for Big DataSemantic Technologies for Big Data
Semantic Technologies for Big Data
 
Kafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtimeKafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtime
 
Apache storm vs. Spark Streaming
Apache storm vs. Spark StreamingApache storm vs. Spark Streaming
Apache storm vs. Spark Streaming
 

Semelhante a Twarql Architecture - Streaming Annotated Tweets

Nucleus presentation RFID EATS JSSATE
Nucleus presentation RFID EATS JSSATENucleus presentation RFID EATS JSSATE
Nucleus presentation RFID EATS JSSATE
Tanuj Agrawal
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
deimos
 

Semelhante a Twarql Architecture - Streaming Annotated Tweets (20)

[Rakuten TechConf2014] [C-6] Leveraging Spark for Cluster Computing
[Rakuten TechConf2014] [C-6] Leveraging Spark for Cluster Computing[Rakuten TechConf2014] [C-6] Leveraging Spark for Cluster Computing
[Rakuten TechConf2014] [C-6] Leveraging Spark for Cluster Computing
 
SPARQList
SPARQListSPARQList
SPARQList
 
Cowboy dating with big data TechDays at Lohika-2020
Cowboy dating with big data TechDays at Lohika-2020Cowboy dating with big data TechDays at Lohika-2020
Cowboy dating with big data TechDays at Lohika-2020
 
Google App Engine/ Java Application Development
Google App Engine/ Java Application DevelopmentGoogle App Engine/ Java Application Development
Google App Engine/ Java Application Development
 
Tracing Micro Services with OpenTracing
Tracing Micro Services with OpenTracingTracing Micro Services with OpenTracing
Tracing Micro Services with OpenTracing
 
Apache spark - Architecture , Overview & libraries
Apache spark - Architecture , Overview & librariesApache spark - Architecture , Overview & libraries
Apache spark - Architecture , Overview & libraries
 
Pragmatic REST aka praxisnahes Schnittstellendesign
Pragmatic REST aka praxisnahes SchnittstellendesignPragmatic REST aka praxisnahes Schnittstellendesign
Pragmatic REST aka praxisnahes Schnittstellendesign
 
App Engine ja Night Sapporo #1
App Engine ja Night Sapporo #1App Engine ja Night Sapporo #1
App Engine ja Night Sapporo #1
 
Making Money with RSS
Making Money with RSSMaking Money with RSS
Making Money with RSS
 
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
 
Final Defense
Final DefenseFinal Defense
Final Defense
 
Intro to apache spark
Intro to apache sparkIntro to apache spark
Intro to apache spark
 
Pentesting Rest API's by :- Gaurang Bhatnagar
Pentesting Rest API's by :- Gaurang BhatnagarPentesting Rest API's by :- Gaurang Bhatnagar
Pentesting Rest API's by :- Gaurang Bhatnagar
 
Nucleus presentation RFID EATS JSSATE
Nucleus presentation RFID EATS JSSATENucleus presentation RFID EATS JSSATE
Nucleus presentation RFID EATS JSSATE
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
Open API Architectural Choices Considerations
Open API Architectural Choices ConsiderationsOpen API Architectural Choices Considerations
Open API Architectural Choices Considerations
 
Fluentd meetup #2
Fluentd meetup #2Fluentd meetup #2
Fluentd meetup #2
 
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
 
JavaOne India 2011 - Servlets 3.0
JavaOne India 2011 - Servlets 3.0JavaOne India 2011 - Servlets 3.0
JavaOne India 2011 - Servlets 3.0
 
Parse.com - iLAB Tech Understanding
Parse.com - iLAB Tech UnderstandingParse.com - iLAB Tech Understanding
Parse.com - iLAB Tech Understanding
 

Mais de Pablo Mendes

SMWCon Fall 2011 Lightning Talk
SMWCon Fall 2011 Lightning TalkSMWCon Fall 2011 Lightning Talk
SMWCon Fall 2011 Lightning Talk
Pablo Mendes
 
Dados Ligados (Linked Data) CONSEGI 2011
Dados Ligados (Linked Data) CONSEGI 2011Dados Ligados (Linked Data) CONSEGI 2011
Dados Ligados (Linked Data) CONSEGI 2011
Pablo Mendes
 

Mais de Pablo Mendes (10)

Entity Aware Click Graph
Entity Aware Click GraphEntity Aware Click Graph
Entity Aware Click Graph
 
WWW2012 Tutorial Visualizing SPARQL Queries
WWW2012 Tutorial Visualizing SPARQL QueriesWWW2012 Tutorial Visualizing SPARQL Queries
WWW2012 Tutorial Visualizing SPARQL Queries
 
Sieve - Data Quality and Fusion - LWDM2012
Sieve - Data Quality and Fusion - LWDM2012Sieve - Data Quality and Fusion - LWDM2012
Sieve - Data Quality and Fusion - LWDM2012
 
A Virtuous Cycle of Semantic Enhancement with DBpedia Spotlight - SemTech Ber...
A Virtuous Cycle of Semantic Enhancement with DBpedia Spotlight - SemTech Ber...A Virtuous Cycle of Semantic Enhancement with DBpedia Spotlight - SemTech Ber...
A Virtuous Cycle of Semantic Enhancement with DBpedia Spotlight - SemTech Ber...
 
Ligado nos Políticos at ESWC'2011 Workshop
Ligado nos Políticos at ESWC'2011 WorkshopLigado nos Políticos at ESWC'2011 Workshop
Ligado nos Políticos at ESWC'2011 Workshop
 
SMWCon Fall 2011 Lightning Talk
SMWCon Fall 2011 Lightning TalkSMWCon Fall 2011 Lightning Talk
SMWCon Fall 2011 Lightning Talk
 
DBpedia Spotlight at I-SEMANTICS 2011
DBpedia Spotlight at I-SEMANTICS 2011DBpedia Spotlight at I-SEMANTICS 2011
DBpedia Spotlight at I-SEMANTICS 2011
 
Dados Ligados (Linked Data) CONSEGI 2011
Dados Ligados (Linked Data) CONSEGI 2011Dados Ligados (Linked Data) CONSEGI 2011
Dados Ligados (Linked Data) CONSEGI 2011
 
Cuebee Architecture
Cuebee ArchitectureCuebee Architecture
Cuebee Architecture
 
Dynamic Associative Relationships on the Linked Open Data Web
Dynamic Associative Relationships on the Linked Open Data WebDynamic Associative Relationships on the Linked Open Data Web
Dynamic Associative Relationships on the Linked Open Data Web
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Twarql Architecture - Streaming Annotated Tweets

  • 1. Twarql Streaming Annotated Tweets Pablo N. Mendes, Pavan Kapanipathi, Alex Passant, Amit P. Sheth May 17th, 2010
  • 2. Twarql in a Nutshell • extract content (entity mentions, hashtags and URLs) from microposts; • encode content in a structured format (RDF) using shared vocabularies (FOAF, SIOC, MOAT, etc.); • enable structured querying of microposts (SPARQL); • enable subscription to a stream of microposts that match a given query (Concept Feeds); • enable scalable real-time delivery of streaming data (SparqlPuSH). For more information visit: http://wiki.knoesis.org/index.php/Twarql
  • 3. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API /setup LISTEN(tweet) STREAM(tweet) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 4. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup LISTEN(tweet) STREAM(tweet) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 5. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 6. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) STREAM(query, #id) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 7. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 8. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 9. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, new hubURL()) /publish /feed RDF store cache /sparql /sparql
  • 10. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish /feed RDF store cache /sparql /sparql
  • 11. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish /feed RDF store cache /sparql /sparql
  • 12. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish REQUEST(#id) /feed RDF store cache /sparql /sparql
  • 13. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed RDF store cache /sparql /sparql
  • 14. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed RDF store cache /sparql /sparql
  • 15. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed UPDATE INTERFACE RDF store cache /sparql /sparql
  • 16. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed UPDATE INTERFACE RDF store POLL cache /sparql /sparql
  • 17. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 18. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 19. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 20. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 21. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish #id REQUEST(#id) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 22. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id REQUEST(#id) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 23. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 24. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) STORE(tweet) /feed UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 25. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) STORE(tweet) /feed UPDATE INTERFACE RDF store #id UPDATE(aTweet, #id) POLL cache /sparql /sparql
  • 26. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) STORE(tweet) /feed UPDATE INTERFACE RDF store #id UPDATE(aTweet) POLL cache CACHE(tweet) /sparql /sparql
  • 27. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) STORE(tweet) /feed UPDATE INTERFACE RDF store #id UPDATE(aTweet) POLL cache CACHE(tweet) QUERY /sparql /sparql
  • 28. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) STORE(tweet) /feed UPDATE INTERFACE RDF store #id UPDATE(aTweet) POLL cache CACHE(tweet) RELAY QUERY /sparql /sparql
  • 29. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) STORE(tweet) /feed UPDATE INTERFACE RDF store #id UPDATE(aTweet) POLL cache CACHE(tweet) RELAY QUERY /sparql /sparql
  • 30. Simple Streaming Activity Diagram Web Client APP SERVER Twitter API SETUP /setup FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) topic id query REGISTER(query, #id1 SELECT… new hubURL()) #id2 /publish PUBLISH(tweet) #id FILTER(tweet, for all query) REQUEST(#id) STORE(tweet) /feed UPDATE INTERFACE RDF store #id UPDATE(aTweet) POLL cache QUERY(#id, query) CACHE(tweet) RELAY QUERY /sparql /sparql
  • 31. Simple (Flattened) Architecture • Was our first implementation for testing – App Server performs all functions Social Sensor, Semantic Publisher. No Distribution Hubs involved. • Overloads the server with streaming, annotating and publishing. • Client polling increases server overload.
  • 32. Our Proposed Architecture • Separates concerns between modules – Social Sensor, Semantic Publisher, Distribution Hub, Application Server • Uses pubsubhubbub protocol to increase scalability for distribution • Multiple app servers and multiple social sensors allow flexibility in handling multiple streams in a scalable fashion
  • 33. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER LISTEN(tweet) STREAM(tweet) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 34. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP LISTEN(tweet) STREAM(tweet) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 35. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 36. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) STREAM(query, #id) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 37. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 38. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe /publish /feed RDF store cache /sparql /sparql
  • 39. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, new hubURL()) /publish /feed RDF store cache /sparql /sparql
  • 40. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, new hubURL()) /publish /feed RDF store cache /sparql /sparql
  • 41. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 /feed RDF store cache /sparql /sparql
  • 42. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 /feed RDF store cache /sparql /sparql
  • 43. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 REQUEST(#id) /feed RDF store cache /sparql /sparql
  • 44. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id REQUEST(#id) /feed RDF store cache /sparql /sparql
  • 45. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) /feed RDF store cache /sparql /sparql
  • 46. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed RDF store cache /sparql /sparql
  • 47. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update RDF store cache /sparql /sparql
  • 48. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update RDF store cache /sparql /sparql
  • 49. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store cache /sparql /sparql
  • 50. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store POLL cache /sparql /sparql
  • 51. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 52. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 53. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 54. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 55. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 56. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 57. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 58. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id POLL cache /sparql /sparql
  • 59. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(hubURL, rssTweet) POLL cache /sparql /sparql
  • 60. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache /sparql /sparql
  • 61. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache PUSH(tweet, subscriber) /sparql /sparql
  • 62. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache PUSH(tweet, subscriber) /sparql /sparql
  • 63. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache CACHE(tweet) PUSH(tweet, subscriber) /sparql /sparql
  • 64. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache CACHE(tweet) PUSH(tweet, subscriber) QUERY /sparql /sparql
  • 65. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache CACHE(tweet) PUSH(tweet, subscriber) RELAY QUERY /sparql /sparql
  • 66. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache CACHE(tweet) PUSH(tweet, subscriber) RELAY QUERY /sparql /sparql
  • 67. PuSH Activity Diagram Web Client APP SERVER DIST. HUB (SEMANTIC) SOCIAL SENSOR Twitter API PUBLISHER SETUP FORMULATE QUERY keywords LISTEN(tweet) STREAM(tweet) query, #id STREAM(query, #id) /register /subscribe ANNOTATE(tweet) REGISTER(query, topic id Hub URL new hubURL()) #id1 http://hub1 /publish PUBLISH(tweet) #id2 http://hub2 #id hubURL FILTER(tweet, for all query) REQUEST(#id) PULL(hubURL, req) STORE(tweet) /feed feed update UPDATE INTERFACE RDF store #id UPDATE(tweet) UPDATE(hubURL, rssTweet) POLL cache QUERY(#id, query) CACHE(tweet) PUSH(tweet, subscriber) RELAY QUERY /sparql /sparql
  • 69. Algorithm – SOCIAL SENSOR • SOCIAL SENSOR while (tweet = LISTEN(stream)) { aTweet = ANNOTATE(tweet) PUBLISH(aTweet) }
  • 70. Algorithm – SEMANTIC PUBLISHER • SEMANTIC PUBLISHER function PUBLISH(aTweet) { for each registered feed { if aTweet matches feed.query UPDATE(feed.hub) } Pavan’s “matches” implementation sparul = SERIALIZE(aTweet) } rdf.STORE(sparul) for each query { match = rdf.QUERY(query) if (match) UPDATE(hub) }
  • 71. Acknowledgements • Visit our project page: http://wiki.knoesis.org/index.php/Twarql • Thanks to Michael Cooney for the tedious work of making the animations SlideShare-friendly • Thanks to Pavan, Hemant, Pramod and Delroy for questions and suggestions at the March Hackaton where I first described this version of the architecture.

Notas do Editor

  1. We work on the stream of tweets from the twitter API.Incoming stream of tweets are annotated and pushed to a triple store.Annotations include info on location, taggedwith, author, friend etc.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.
  2. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  3. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  4. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  5. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  6. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  7. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  8. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  9. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  10. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  11. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  12. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  13. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  14. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  15. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  16. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  17. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  18. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  19. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  20. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  21. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  22. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  23. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  24. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  25. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  26. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  27. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  28. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  29. The red boxes represent Web-accessible endpoints (web services)The red flow (arrows) represents the client-side view of the world, i.e. the sequence of actions triggered by the client.The blue flow represents the server-side view
  30. 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.
  31. 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.
  32. 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.
  33. 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.
  34. 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.
  35. 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.
  36. 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.
  37. 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.
  38. 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.
  39. 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.
  40. 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.
  41. 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.
  42. 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.
  43. 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.
  44. 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.
  45. 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.
  46. 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.
  47. 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.
  48. 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.
  49. 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.
  50. 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.
  51. 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.
  52. 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.
  53. 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.
  54. 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.
  55. 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.
  56. 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.
  57. 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.
  58. 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.
  59. 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.
  60. 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.
  61. 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.
  62. 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.
  63. 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.
  64. 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.