Stream Reasoning for Linked Data M. Balduini, J-P Calbimonte, O. Corcho, D. Dell'Aglio, E. Della Valle http://streamreasoning.org/events/sr4ld2014 C-SPARQL: A Continuous Extension of SPARQL Marco Balduini marco.balduini@polimi.it
Share, Remix, Reuse — Legally § This work is licensed under the Creative Commons Attribution 3.0 Unported License. § Your are free: • to Share — to copy, distribute and transmit the work • to Remix — to adapt the work § Under the following conditions • Attribution — You must attribute the work by inserting – “ [source http://streamreasoning.org/rsp2014] ” at the end of each reused slide – a credits slide stating - These slides are partially based on “ Streaming Reasoning for Linked Data 2013 ” by M. Balduini, J-P Calbimonte, O. Corcho, D. Dell'Aglio, E. Della Valle, and J.Z. Pan http://streamreasoning.org/sr4ld2013 § To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ 2 http://streamreasoning.org/events/sr4ld2014
Agenda § Introduction § Running example § C-SPARQL language • Query and Stream Registration • FROM STREAM Clause • TimeStamp Function • Query Chaining • Accessing background Information • Stream reasoning support § C-SPARQL Engine § Resources 3 http://streamreasoning.org/events/sr4ld2014
A Reminder of SPARQL http://streamreasoning.org/events/sr4ld2014 4
Where C-SPARQL Extends SPARQL http://streamreasoning.org/events/sr4ld2014 5
C-SPARQL language § C-SPARQL is an extension of SPARQL 1.1 § C-SPARQL queries • Changes the semantics of SPARQL 1.1 query forms from the one-time semantics to the continuous one (i.e., instantaneous) • Adds to SPARQL 1.1 query forms the STREAM form and • Adds to SPARQL 1.1 datasets clauses the FROM STREAM one • Adds a built-in function to access the timestamp of a triple 6 http://streamreasoning.org/events/sr4ld2014
Running Example RedRoom BlueRoom Bob RedSensor 4 Carl f Alice R David Elena f BlueSensor RFID Foursquare Facebook is with 4 f R http://streamreasoning.org/events/sr4ld2014 7
Running Example – Data Model Streaming Background information information where Room isConnectedTo observes Observation isIn Sensor subClassOf subPropOf posts Post subClassOf discusses Person who isWith http://streamreasoning.org/events/sr4ld2014 8
Running Example Background Information § The Ontology • http://www.streamreasoning.org/ontologies/sr4ld2014-onto.rdf § The Static Instances • :Alice a :Person . • :Bob a :Person . • :Carl a :Person . • :David a :Person . • :Elena a :Person . • :RedRoom a :Room . • :BlueRoom a :Room . • :RedRoom :isConnectedTo :BlueRoom . • :RedSensor a :Sensor . • :BlueSensor a :Sensor . 9 http://streamreasoning.org/events/sr4ld2014
Running Example Example data in the streams § Four ways to learn who is where Sensor Room Person Time-stamp RedSensor RedRoom Alice T 1 … … … … Person ChecksIn Time-stamp Bob BlueRoom T 2 … … … Person IsIn With Time-stamp Carl null Bob T 2 David RedRoom Elena T 3 … … … … 10 http://streamreasoning.org/events/sr4ld2014
Running Example Streaming Information § RDF Stream Data Type • Ordered sequence of pairs, where each pair is made of an RDF triple and its timestamp – Timestamps are not required to be unique, they must be non- decreasing § E.g., Streamed RDF graph Time- Stream stamp :RedSensor :observes [ :who :Alice; :where :RedRoom ] . T 1 rfid :Bob :posts [ :who :Bob ; :where :BlueRoom ] . T 2 fs :Carl :posts [ :who :Carl , :Bob ] . T 2 fb :David :posts [ :who :David , :Elena ; :where :RedRoom] T 3 fb 11 http://streamreasoning.org/events/sr4ld2014
C-SPARQL language § Features illustrated in the rest of this session • register continuous queries – QUERY form – STREAM form • identify relevant information in one or more RDF streams • derive and aggregate information from one or more RDF streams • join or merge RDF streams • feed results of one C-SPARQL query to a subsequent C-SPARQL query • access background RDF graphs • answer using rule based encoding of owl fragments 12 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language Query and Stream Registration http://streamreasoning.org/events/sr4ld2014 13
C-SPARQL Language Query and Stream Registration § All C-SPARQL queries over RDF streams are continuous • Registered through the REGISTER statement § The output of queries is in the form of • Instantaneous tables of variable bindings • Instantaneous RDF graphs • RDF stream § Only queries in the CONSTRUCT form can be registered as generators of RDF streams § Composability: • Query results registered as streams can feed other registered queries just like every other RDF stream 14 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language Query registration - Example § Using the social stream fb, Who is where? REGISTER QUERY QWhoIsWhereOnFb AS PREFIX : <http://…/sr4ld2014-onto#> SELECT ?room ?person FROM STREAM <http://…/fb> [RANGE 1m STEP 10s] WHERE { ?person1 :posts [ :who ?person ; :where ?room ] . } § The resulting variable bindings has to be interpreted as an instantaneous. It expires as soon as the query is recomputed 15 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language Stream registration - Example § Results of a C-SPARQL query can be stream out for down stream queries REGISTER STREAM SWhoIsWhereOnFb AS PREFIX : <http://…/sr4ld2014-onto#> CONSTRUCT { ?person :isIn ?room } FROM STREAM <http://…/fb> [RANGE 1m STEP 10s] WHERE { ?person1 :posts [ :who ?person ; :where ?room ] . } § The resulting RDF triples are streamed out on an RDF stream • More details in the C-SPARQL Engine hands-on session 16 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language Stream Registration - Notes § The output is constructed in the format of an RDF stream. § Every query execution may produce from a minimum of zero triples to a maximum of an entire graph. § The timestamp is always dependent on the query execution time only, and is not taken from the triples that match the patterns in the WHERE clause. 17 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language FROM STREAM Clause http://streamreasoning.org/events/sr4ld2014 18
C-SPARQL Language FROM STREAM Clause § FROM STREAM clauses are similar to SPARQL datasets • They identify RDF stream data sources • They represent windows over a RDF stream § They define the RDF triples available for querying and filtering. 19 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language FROM STREAM Clause - windows § physical: a given number of triples § logical: a variable number of triples which occur during a given time interval (e.g., 1 hour) • Sliding: they are progressively advanced of a given STEP (e.g., 5 minutes) • Tumbling: they are advanced of exactly their time interval 20 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language FROM STREAM Clause - Windows § Grammar of the FROM STREAM clause 21 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language FROM STREAM Clause - Example § Using the social stream fb, how many people are in the same room? Count on a window of 1 minute that slides every 10 seconds REGISTER QUERY HowManyPoepleAreInTheSameRoom AS PREFIX : <http://…/sr4ld2014-onto#> SELECT ?room (COUNT(DISTINCT ?s) as ?person) FROM STREAM <http://…/fb> [RANGE 1m STEP 10s] WHERE { ?person1 :posts [ :who ?person ; :where ?room ] . } GROUP BY ?room 22 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language C-SPARQL reports only snapshots Incoming Time window [RANGE 40s STEP 10s] Window timestamped content t+40 t+50 t+60 t+70 t+80 t RDF triples t+10 t+20 t+30 d 1 d 1 d 1 d 1 d 1 t+40 d 1 d 1 d 2 d 2 d 2 d 2 t+50 d 1 , d 2 d 2 t+60 d 1 , d 2 d 3 d 3 d 3 t+70 d 1 , d 2 , d 3 t+80 d 2 , d 3 http://streamreasoning.org/events/sr4ld2014 23
C-SPARQL Language Multiple FROM STREAM Clause - Example § Using the social stream fb and fs , how many people are in the same room? Count on a window of 1 minute that slides every 10 seconds REGISTER QUERY HowManyPoepleAreInTheSameRoom AS PREFIX : <http://…/rsp2014-onto#> SELECT ?room (COUNT(DISTINCT ?s) as ?person) FROM STREAM <http://…/ fb > [RANGE 1m STEP 10s] FROM STREAM <http://…/ fs > [RANGE 1m STEP 10s] WHERE { ?person1 :posts [ :who ?person ; :where ?room ] . } GROUP BY ?room 24 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language Query Chaining § A C-SPARQL query Q 1 registered using the STREAM clause streams results on an RDF stream § A down stream C-SPARQL query Q 2 can open a window on the RDF stream of Q 1 using the FROM STREAM clause § E.g., :Bob :posts [ :who :Bob ; :where :BlueRoom ] . :Bob :isIn :BlueRoom . 4 Is in on 4 Stream Stream query Is In across f and 4 query f Is with on f Stream Stream query :Carl :isIn :BlueRoom . :Carl :posts [ :who :Carl , :Bob ] . :Carl :isWith :Bob . 25 http://streamreasoning.org/events/sr4ld2014
C-SPARQL Language TimeStamp Function http://streamreasoning.org/events/sr4ld2014 26
Recommend
More recommend