SPARQLStream: Ontology- based access to data streams Jean-Paul - - PowerPoint PPT Presentation

sparqlstream ontology based access to data streams
SMART_READER_LITE
LIVE PREVIEW

SPARQLStream: Ontology- based access to data streams Jean-Paul - - PowerPoint PPT Presentation

Stream Reasoning For Linked Data M. Balduini, J-P Calbimonte, O. Corcho, D. Dell'Aglio, E. Della Valle, and J.Z. Pan http://streamreasoning.org/sr4ld2013 SPARQLStream: Ontology- based access to data streams Jean-Paul Calbimonte, Oscar Corcho


slide-1
SLIDE 1

Stream Reasoning For Linked Data

  • M. Balduini, J-P Calbimonte, O. Corcho,
  • D. Dell'Aglio, E. Della Valle, and J.Z. Pan

http://streamreasoning.org/sr4ld2013

SPARQLStream: Ontology- based access to data streams

Jean-Paul Calbimonte, Oscar Corcho

jp.calbimonte@upm.es, ocorcho@fi.upm.es http://www.oeg-upm.net/

slide-2
SLIDE 2

http://streamreasoning.org/sr4ld2013

Share, Remix, Reuse — Legally

§ This work is licensed under the Creative Commons Attribution 3.0 Unported License. § You 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/sr4ld2013]” 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

slide-3
SLIDE 3

http://streamreasoning.org/sr4ld2013

SPARQLStream

§ Virtual RDF views over data streams § Ontology-based access to data streams

  • Examples
  • Architecture
  • Underlying query processors

§ SPARQLStream language § Query rewriting

  • R2RML mappings

§ Resources

3

slide-4
SLIDE 4

http://streamreasoning.org/sr4ld2013

Querying RDF Streams

4 +streams Existing streaming data sources

RDF Stream DSMS CEP Sensor middleware … RDF Stream Processor

users, applications query processing

Where is the data coming from?

Wrap Import Load Contino usly

+streams

slide-5
SLIDE 5

http://streamreasoning.org/sr4ld2013

+streams

Virtual RDF views over data streams

5

SPARQLStream Virtual RDF Stream DSMS CEP Sensor middleware … queries

users, applications query processing

RDF Stream Processor Morph-streams

data layer

slide-6
SLIDE 6

http://streamreasoning.org/sr4ld2013

Already seen somewhere…?

6

RDF DBMS Load, import SPARQL Query Processor R2RML Mappings

slide-7
SLIDE 7

http://streamreasoning.org/sr4ld2013

Stream Processor Implementations

7

Data Stream Management Systems (DSMS) Complex Event Processors (CEP) Stream Data Middleware

CQL/Stream Borealis TelegraphCQ StreamMill Cayuga GEM CEDR NiagaraCQ Rapide Cosm Hourglass SStreamWare GSN IBM InfoSphere Sybase CEP Microsoft StreamInsight Oracle CEP Esper StreamBase

Diverse query languages Different query capabilities Different query models

slide-8
SLIDE 8

http://streamreasoning.org/sr4ld2013

Morph-streams: Overview

8

Query rewriting Query Processing Client

SPARQLStream [tuples] [triples/ bindings] Algebra expression

R2RML Mappings

Morph-streams procesing SPARQLStream queries

SELECT ?proximity FROM STREAM <http://streamreasoning.org/

SensorReadings.srdf> [NOW–5 S]

WHERE { ?obs a ssn:ObservationValue; qudt:numericalValue ?proximity; FILTER (?proximity>10) } SELECT prox FROM sens.win:time(5 sec) WHERE prox >10

π

timed,prox

ω σprox>10

5 Seconds

sens

Data translation SNEE Esper GSN Cosm

pull/push

https://github.com/jpcik/morph-streams

Other

slide-9
SLIDE 9

http://streamreasoning.org/sr4ld2013

SPARQLStream Language

9

FROM NAMED STREAM ISTREAM DSTREAM RSTREAM WINDOW Underlying data source restrictions

slide-10
SLIDE 10

http://streamreasoning.org/sr4ld2013

SPARQLStream: examples

10

PREFIX sr4ld: <http://www.streamreasoning.org/ontologies/socialsensor,owl#> SELECT ?room FROM NAMED STREAM <http://www.streamreasoning.org/streams/socialsensor.srdf> [NOW-10 S] WHERE { ?obs sr4ld:observedBy ?sensor. ?obs sr4ld:where ?room. }

SPARQLStream

All rooms where something was observed in the last 10s

PREFIX sr4ld: <http://www.streamreasoning.org/ontologies/socialsensor,owl#> SELECT (COUNT(?person) AS ?nmb) ?room FROM NAMED STREAM <http://www.streamreasoning.org/streams/socialsensor.srdf> [NOW-10 S] WHERE { ?obs sr4ld:who ?pers. ?obs sr4ld:where ?room. } GROUP BY ?room

Number of persons observed in each room in the last 10s

slide-11
SLIDE 11

http://streamreasoning.org/sr4ld2013

SPARQLStream Language

§ NamedStream à ‘FROM’ [‘NAMED’] ‘STREAM’ StreamIRI ‘[’ Window ‘]’ § Window à ‘NOW-’ Integer TimeUnit [UpperBound] [Slide] § UpperBound à ‘TO NOW-’ Integer TimeUnit § Slide à ‘SLIDE’ Integer TimeUnit § TimeUnit à ‘MS’ | ‘S’ | ‘MINUTES’| ‘HOURS’ | ‘DAY’ § Select à ‘SELECT’ [Xstream] [Distinct | Reduced] … § Xstream à ‘RSTREAM’ | ‘ISTREAM’ | ‘DSTREAM’

11

SELECT ISTREAM ?room FROM NAMED STREAM <http://www.streamreasoning.org/streams/socialsensor.srdf> [NOW-10 S] WHERE {…

slide-12
SLIDE 12

http://streamreasoning.org/sr4ld2013

Morph-streams: Overview

12

Query rewriting Query Processing Client

SPARQLStream [tuples] [triples/ bindings] Algebra expression

R2RML Mappings

Morph-streams procesing SPARQLStream queries

SELECT ?proximity FROM STREAM <http://streamreasoning.org/

SensorReadings.srdf> [NOW–5 S]

WHERE { ?obs a ssn:ObservationValue; qudt:numericalValue ?proximity; FILTER (?proximity>10) } SELECT prox FROM sens.win:time(5 sec) WHERE prox >10

π

timed,prox

ω σprox>10

5 Seconds

sens

Data translation SNEE Esper GSN Cosm

pull/push

https://github.com/jpcik/morph-streams

Other

slide-13
SLIDE 13

http://streamreasoning.org/sr4ld2013

Now, where is the data?

13

(person,room,…)

τi

(bob,room2) τi (alice,room1) τi-­‑1 (alice,room3) τi+1 sensor

. . .

(carl,room1) τi (luke,room1) τi+1 . . .

. . .

stream tuples

DSMS, CEP, middleware can evaluate queries over this model

Stream Schema

slide-14
SLIDE 14

http://streamreasoning.org/sr4ld2013

Underlying Query Processors

Esper

  • CEP/DSMS
  • EPL language

SNEE

  • DSMS/Sensor Network Query Evaluator
  • Compile queries to sensor code

GSN

  • Sensor middleware
  • REST API

Cosm/Xively

  • Sensor middleware
  • Open platform
  • REST API

14

SELECT prox FROM sensors [FROM NOW-5 MINUTES TO NOW] WHERE prox >10 SELECT prox FROM sensors.win:time(5 minute) WHERE prox >10 http://montblanc.slf.ch:22001/multidata? vs[0]=sensors& field[0]=proximity_field&c_min[0]=10& from=15/05/2012+05:00:00&to=15/05/2012+10:00: 00 http://api.cosm.com/v2/feeds/14321/datastreams/ 4? start=2012-05-15T05:00:00Z&end=2012-05-15T1 0:00:00Z

slide-15
SLIDE 15

http://streamreasoning.org/sr4ld2013

Underlying Query Processors

15

SELECT ?proximity FROM STREAM <http://streamreasoning.org/SensorReadings.srdf> [NOW–5 S] WHERE { ?obs a ssn:ObservationValue; qudt:numericalValue ?proximity; FILTER (?proximity>10) } SELECT prox FROM sensors [FROM NOW-5 MINUTES TO NOW] WHERE prox >10 timed, prox

π ω σ

prox>10

5 Seconds

sensors

SELECT prox FROM sensors.win:time(5 minute) WHERE prox >10 http://montblanc.slf.ch:22001/multidata? vs[0]=sensors&field[0]=proximity_field&c_min[0]=10& from=15/05/2012+05:00:00&to=15/05/2012+10:00:00 http://api.cosm.com/v2/feeds/14321/datastreams/4? start=2012-05-15T05:00:00Z&end=2012-05-15T10:00:00Z

Query rewriting

R2RML

SNEE (DSMS) Esper (CEP) GSN (middlwr) Cosm Xively SPARQLStream

slide-16
SLIDE 16

http://streamreasoning.org/sr4ld2013

Underlying query processors

Features Esper SNEE GSN Cosm/Xively Projection ✔ ✔ ✔ Fixed Proj expression ✔ ✔ ✖ ✖ Joins ✔ ✔✖ only window ✖ ✖ Union ✖ ✔✖ not windows ✔ ✖ Selection ✔ ✔ ✔ ✖✔ limited Aggregates ✔ ✔ ✔✖ ✖ Time window ✔ ✔ ✔ ✔ Tuple window ✔ ✔ ✔ ✖ R2S ✔ ✔ ✖ ✖ Conjunction, Disj ✔ ✖ ✖ ✖ Repetition pattern ✔ ✖ ✖ ✖ Sequence ✔ ✖ ✖ ✖

16

slide-17
SLIDE 17

http://streamreasoning.org/sr4ld2013

Configuring Morph-streams

§ Main ingredients:

17

  • 1. Data streams
  • 2. Ontology (network)
  • 3. R2RML mappings

Link both models

slide-18
SLIDE 18

http://streamreasoning.org/sr4ld2013

SSN Ontology with other ontologies

18

W3C SSN Ontology modeling our streaming data combine with domain ontologies

slide-19
SLIDE 19

http://streamreasoning.org/sr4ld2013

Our simpler ontology…

19

Observation Sensor Person Post Room where discusses who

  • bserves

subClassOf subClassOf authorOf subPropOf

We can use different ontologies for the same data

slide-20
SLIDE 20

http://streamreasoning.org/sr4ld2013

Our simpler ontology…

20

Observation Sensor Person Room where who

  • bserves

subClassOf

(person, ¡ ¡room,…) detec4ons Define mappings

slide-21
SLIDE 21

http://streamreasoning.org/sr4ld2013

R2RML - Overview

21

slide-22
SLIDE 22

http://streamreasoning.org/sr4ld2013

R2RML - Overview

22

slide-23
SLIDE 23

http://streamreasoning.org/sr4ld2013

Encoding in R2RML

23

:triplesMap a rr:TriplesMap; rr:logicalTable [ rr:tableName ”sensors"; ] rr:subjectMap [ rr:template "http://streamreasoning.org/data/Observation/{person}{timed}"; rr:class sr4ld:Observation; rr:graph sr4ld:socialstream.srdf ]; rr:predicateObjectMap [ rr:predicate sr4ld:who ; rr:objectMap [ rr:template “http://streamreasoning.org/data/Person/{person}” ]];.

the stream name

subject URI triple predicate + object Mapping definition

stream attributes

the object (a URI in this case)

slide-24
SLIDE 24

http://streamreasoning.org/sr4ld2013

Now some code

24

Morph-streams: § Coded in Scala § JAR bundle, use it from Scala or Java code § Maven, Sbt § Examples

  • One off query
  • Register continuous query
  • Pull data
  • Push
  • Basic REST

§ https://github.com/jpcik/morph-streams

slide-25
SLIDE 25

http://streamreasoning.org/sr4ld2013

Code examples

§ Parse SPARQLStream val query= “PREFIX sr4ld: <…>. SELECT ?a …”

val syntax= StreamQueryFactory.create(query);

§ Execute One-off query

val query= “PREFIX sr4ld: <…>. SELECT ?a …” mapping=Mapping(new URI(mappings/social.ttl)) val adapter:QueryEvaluator=Application.adapter(system) val results= adapter.executeQuery(query,mapping) 25

Mapping Bindings

slide-26
SLIDE 26

http://streamreasoning.org/sr4ld2013

Code examples

§ Register and Pull

val queryid= adapter.registerQuery(query,mapping) val results1=adapter.pull(queryid) val results2=adapter.pull(queryid)

§ Register and Push

class ExampleReceiver extends StreamReceiver{

  • verride def receiveData(s:SparqlResults):Unit=

Logger.debug("got: "+res) } val receiver=new ExampleReceiver val queryid= adapter.listenToQuery(query,mapping,receiver) 26

Query identifier Implement receiver

slide-27
SLIDE 27

http://streamreasoning.org/sr4ld2013

SPARQLStream from command line

  • encoded_value=$(python -c "import urllib; print urllib.quote('''SELECT

DISTINCT ?timeto ?obs FROM NAMED STREAM <http:// emt.linkeddata.es/data#busstops.srdf> [NOW - 30 S] WHERE { ?obs a <http://emt.linkeddata.es/data#BusObservation>. ?obs <http:// purl.oclc.org/NET/ssnx/ssn#observedBy><http:// transporte.linkeddata.es/emt/busstop/id/2018>. ?obs <http:// purl.oclc.org/NET/ssnx/ssn#observationResult> ?output. ?output <http://emt.linkeddata.es/data#timeToBusValue> ?av. ?av <http:// data.nasa.gov/qudt/owl/qudt#numericValue> ?timeto. }''')")

  • curl "http://streams.linkeddata.es/emt/sparqlstream?query=

$encoded_value”

27

Disclaimer: Simplistic, not implementing all of the SPARQL protocol

Just encoding query

slide-28
SLIDE 28

http://streamreasoning.org/sr4ld2013

Sample result

{ "head": { "vars": [ "timeto" , "obs" ] } , "results": { "bindings": [ { "timeto": { "datatype": "http://www.w3.org/2001/XMLSchema#string" , "type": "typed- literal" , "value": "0" } , "obs": { "type": "uri" , "value": "http://transporte.linkeddata.es/emt/busstop/id/2018/ busline/9/observation/20/09/2013%2010:28:19%20%2B0200" } } ] } } 28

Bindings in JSON

slide-29
SLIDE 29

http://streamreasoning.org/sr4ld2013

Resources

§ Morph-Streams

  • https://github.com/jpcik/morph-streams

§ See demos

  • http://transporte.linkeddata.es/ (SPARQL-Stream tab)
  • Check our Madrid buses demo at SSN2013 workshop tomorrow

§ Read out more

  • Enabling Query Technologies for the Semantic Sensor Web.

J.-P. Calbimonte, H. Jeung, O. Corcho and K. Aberer. International Journal on Semantic Web and Information Systems IJSWIS, Volume 8(1)., 2012

§ Contact point

  • jp.calbimonte@upm.es
  • corcho@fi.upm.es

29

slide-30
SLIDE 30

Stream Reasoning For Linked Data

  • M. Balduini, J-P Calbimonte, O. Corcho,
  • D. Dell'Aglio, E. Della Valle, and J.Z. Pan

http://streamreasoning.org/sr4ld2013

SPARQLStream: Ontology- based access to data streams

Jean Paul Calbimonte, Oscar Corcho

jp.calbimonte@upm.es, ocorcho@fi.upm.es http://www.oeg-upm.net/

slide-31
SLIDE 31

http://streamreasoning.org/sr4ld2013

RDF Streams

31

〈s,p,o〉

<aemet:observation1, qudt:hasNumericValue, “15.5”> <aemet:observation1, ssn:observedBy, aemet:Sensor3>

For streams?

(〈s,p,o〉,τ)

(<aemet:observation1, qudt:hasNumericValue, “15.5”>,34532)

timestamped triples

  • Gutierrez et al. (2007) Introducing time into RDF. IEEE TKDE
  • Rodríguez et al. (2009) Semantic management of streaming data. SSN
slide-32
SLIDE 32

http://streamreasoning.org/sr4ld2013

Streaming SPARQL execution approaches

32

Extend RDF for streaming data Extend SPARQL for streaming RDF Use a SPE internally for evaluation

Query rewriting to SPEs

RDF Streaming engine from scratch Logic-programming based query evaluation

~Similarities Divergence

streams DSMSs CEPs Middleware

SPARQLStream