Triplewave: a step towards RDF Stream Processing on the Web

30
Department of Informatics TripleWave: a step towards RDF Stream Processing on the Web Daniele Dell’Aglio [email protected] http: //dellaglio.org @dandellaglio Galway, 16.12.2016

Transcript of Triplewave: a step towards RDF Stream Processing on the Web

Page 1: Triplewave: a step towards RDF Stream Processing on the Web

Department of Informatics

TripleWave: a step towards

RDF Stream Processing on the

Web

Daniele Dell’Aglio

[email protected] http://dellaglio.org @dandellaglio

Galway, 16.12.2016

Page 2: Triplewave: a step towards RDF Stream Processing on the Web

An (incomplete) overview of the RSP/SR research

IMaRS

STARQL

DynamiTE

TROWL

Eu

rop

e M

ap

fro

m W

ikip

ed

ia

StreamRule

StarCITY

SPARKWAVE

LARS

Key

Daniele Dell'Aglio - TripleWave 2/28

Page 3: Triplewave: a step towards RDF Stream Processing on the Web

Connecting RSPs on the Web

MorphStreams

CSPARQL

Etalis

TrOWLStream

Rule

CQELS

How far are we?

• Working prototypes/systems

• Formal models for RSPs and reasoning

• Minimal agreements: standards, serialization, interfaces

Daniele Dell'Aglio - TripleWave 3/28

Page 4: Triplewave: a step towards RDF Stream Processing on the Web

Looking for minimal agreements: the RSP

Community group

Research work

Many Papers

PhD Theses

Datasets

Prototypes

Benchmarks

RDF Streams

Stream Reasoning

Complex Event Processing

Stream Query Processing

Stream Compression

Semantic Sensor WebMan

y t

op

ics

To

ns o

f w

ork

http://www.w3.org/community/rspW3C RSP Community Group

Effort to our work on RDF stream processing

discussstandardizecombineformalizeevangelize

Daniele Dell'Aglio - TripleWave 4/28

Page 5: Triplewave: a step towards RDF Stream Processing on the Web

W3C RSP Documents

https://www.w3.org/community/rsp/

http://streamreasoning.github.io/RSP-QL/RSP_Requirements_Design_Document/

Use cases

Implementations

State of the Art

Challenges & issues

Requirements

Design principles

• RDF Stream model

• RDF Stream query language

Abstract syntax RDF Streams

Daniele Dell'Aglio - TripleWave 5/28

Page 6: Triplewave: a step towards RDF Stream Processing on the Web

But...

W3C RSP set some foundations and requirements, but:

• Standard protocols and exchanging mechanisms for RDF stream are missing.

• We need generic and flexible solutions for making RDF streams available and exchangeable on the Web.

Daniele Dell'Aglio - TripleWave 6/28

Page 7: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave

TripleWave is an open-source framework for creating and publishing

RDF streams over the Web.

Triple

Wave

how?input?

RDF Stream

what is it?Daniele Dell'Aglio - TripleWave 7/28

Page 8: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave’s RDF streams

TripleWave should exploit and be compatible to existing standards and recommendations

• The data model should be compatible with the abstract model defined by the W3C RSP CG

• The output format compatible with RDF

Daniele Dell'Aglio - TripleWave 8/28

Page 9: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave serialization format

In TripleWave, an RDF stream is an (infinite) ordered sequence of time-annotated data items (RDF graphs)…

... serialized in JSON-LD[{ "@graph": {

"@id": "http://.../G1",

{"@id": "http://.../a",

"http://.../isIn": {"@id":"http://.../rRoom"}}

},{ "@id": "http://.../G1",

"generatedAt":"2016-16-12T00:01:00"

}

},

{ "@graph": {

"@id": "http://.../G2",

{"@id": "http://.../b",

"http://.../isIn": {"@id":"http://.../rRoom"}}

},{ "@id": "http://.../G2",

"generatedAt":" 2016-16-12T00:03:00"

}

},…

G1

G2

G3

{:a :isIn :rRoom}

{:b :isIn :bRoom}

{:c :talksIn :rRoom,

:d :talksIn :bRoom}

S

3

5

1

tDaniele Dell'Aglio - TripleWave 9/28

Page 10: Triplewave: a step towards RDF Stream Processing on the Web

Building TripleWave

Triple

Wave

how?input?

RDF Streams

Daniele Dell'Aglio - TripleWave 10/28

Page 11: Triplewave: a step towards RDF Stream Processing on the Web

Spreading the RDF streams

TripleWave must be able to provide the stream to RDF Stream Processing engines (query processors and reasoners) through the Web.

• HTTP

• HTTP chunk

• Web sockets

• MQTT (upcoming)

Daniele Dell'Aglio - TripleWave 11/28

Page 12: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave Stream Descriptor

TripleWave must provide information about how to access the stream

• TripleWave exposes an RDF description of the RDF stream

• RDF Stream Descriptor (sGraph)

• It contains:

• The identifier of the stream

• Data item samples (see next slide)

• A description of the schema

• The location of the stream endpoint (e.g. WebSocket URL)

Daniele Dell'Aglio - TripleWave 12/28

Page 13: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave Stream Descriptor - Example

Daniele Dell'Aglio - TripleWave 13/28

Page 14: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave Stream Descriptor - Example

Daniele Dell'Aglio - TripleWave 13/28

Page 15: Triplewave: a step towards RDF Stream Processing on the Web

Building TripleWave

Triple

Wave

input?

RDF Streams(Web socket |

HTTP-chunk |

etc.)

RDF Stream

Descriptor

Daniele Dell'Aglio - TripleWave 14/28

Page 16: Triplewave: a step towards RDF Stream Processing on the Web

Feeding TripleWave

TripleWave should support a variety of data sources.

• RDF dumps with temporal information

• RDF with temporal information exposed through SPARQL endpoints

• Streams available on the Web

Daniele Dell'Aglio - TripleWave 15/28

Page 17: Triplewave: a step towards RDF Stream Processing on the Web

From RDF to RDF streams

Converts RDF stored in files/SPARQL endpoints

• Containing some time information

… into an RDF stream

• continuous flow of RDF data

• ordered according the original timestamps

• the time between two items is preserved

Use Cases

• Evaluation, testing and benchmarking

• Simulation systems

Daniele Dell'Aglio - TripleWave 16/28

Page 18: Triplewave: a step towards RDF Stream Processing on the Web

From Web stream to RDF stream

Consumes an existing Web stream…

• through connectors

… and converts it into an RDF Stream

• Each data item is lifted to RDF

Use Cases

• Querying and reasoning

• Data integration

Web

ServiceConnector TW Core

Web Service API

Daniele Dell'Aglio - TripleWave 17/28

Page 19: Triplewave: a step towards RDF Stream Processing on the Web

From Web stream to RDF stream

Convertion is made through R2RML

• Mappings to convert each data item in RDF

Example: map a field

{

“userUrl”:”foo”

}

rr:predicateObjectMap [

rr:predicate schema:agent;

rr:objectMap [ rr:column "userUrl"] ];

{

"https://schema.org/agent": {"@id": ”foo"},

}

Daniele Dell'Aglio - TripleWave 18/28

Page 20: Triplewave: a step towards RDF Stream Processing on the Web

From Web stream to RDF stream

Convertion is made through R2RML

• Mappings to convert each data item in RDF

Example: map a field with template

{

“time”:”value”

}

rr:subjectMap [

rr:template ”something {time}”

{

“@id”:”something value”

}

Daniele Dell'Aglio - TripleWave 19/28

Page 21: Triplewave: a step towards RDF Stream Processing on the Web

From Web stream to RDF stream

Convertion is made through R2RML

• Mappings to convert each data item in RDF

Example: add a new constant field

rr:predicateObjectMap

[ rr:predicate rdf:type; rr:objectMap

[ rr:constant schema:UpdateAction]];

{

"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":

{"@id": "https://schema.org/UpdateAction"}

}

Daniele Dell'Aglio - TripleWave 20/28

Page 22: Triplewave: a step towards RDF Stream Processing on the Web

Building TripleWave

Replay

Conversion to

RDF Stream

R2RML

MappingsLive Non-RDF Streams

JSON

RDFTime-annotated

RDF datasetsFinite RDF

substreams

Replay Loop

Triple

Wave RDF Streams(Web socket |

HTTP-chunk |

etc.)

RDF Stream

Descriptor

Daniele Dell'Aglio - TripleWave 21/28

Page 23: Triplewave: a step towards RDF Stream Processing on the Web

Implementing TripleWave

TripleWave is a NodeJS Web Application

• NodeJS is a JavaScript runtime built on Chrome's V8 JavaScript engine.

TripleWave is open source

• Released with a Apache 2.0 licence

• Source code available at:

https://github.com/streamreasoning/TripleWave

Daniele Dell'Aglio - TripleWave 22/28

Page 24: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave Architecture

Web API

Transform

Stream

Graph

Stream

Connector

Stream

Datagen

Stream

Scheduler

Stream

Web

Service

SPARQL

Endpoint

File

R2RML

Mapping

Conversion

Daniele Dell'Aglio - TripleWave 23/28

Page 25: Triplewave: a step towards RDF Stream Processing on the Web

TripleWave Architecture

Web API

Transform

Stream

Graph

Stream

Connector

Stream

Datagen

Stream

Scheduler

Stream

Web

Service

SPARQL

Endpoint

File

R2RML

Mapping

Replay

Replay loop

Daniele Dell'Aglio - TripleWave 23/28

Page 26: Triplewave: a step towards RDF Stream Processing on the Web

Consuming TripleWave RDF Stream - Push

The TripleWave stream can be consumed via push by extending the RSP service framework1

1https://github.com/streamreasoning/rsp-services

TripleWaveRSP-

Service

C-SPARQL

Register the stream, the query

and the observers

Connect to the

RDF stream

descriptor

Connect to the

RDF stream

endpoint Declare the stream, the query

and the observersInject the stream

Daniele Dell'Aglio - TripleWave 24/28

Page 27: Triplewave: a step towards RDF Stream Processing on the Web

Show cases

Three demos have been deployed to show the capabilities of the system.

Wikipedia changes stream conversion.

http://131.175.141.249/TripleWave-transform/sgraph

Endlessly replay as a stream the Linked Sensor Data dataset.

http://131.175.141.249/TripleWave-endless/sgraph

Endlessly replay as a stream the LDBC social graph dataset.

http://131.175.141.249/TripleWave-ldbc/sgraph

Daniele Dell'Aglio - TripleWave 25/28

Page 28: Triplewave: a step towards RDF Stream Processing on the Web

Find more...

• Andrea Mauri, Jean-Paul Calbimonte, Daniele Dell’Aglio, Marco Balduini, Marco Brambilla, Emanuele Della Valle, Karl Aberer: TripleWave: Spreading RDF Streams on the Web. Resource Paper at International Semantic Web Conference 2016.

• Andrea Mauri, Jean-Paul Calbimonte, Daniele Dell’Aglio, Marco Balduini, Emanuele Della Valle, Karl Aberer: Where Are the RDF Streams?: On Deploying RDF Streams on the Web of Data with TripleWave. Poster at International Semantic Web Conference 2015.

• A special thanks to Jean-Paul Calbimonte and Andrea Mauri for supplying me parts of the today slides

Daniele Dell'Aglio - TripleWave 26/28

Page 29: Triplewave: a step towards RDF Stream Processing on the Web

Conclusions

RDF streams are getting a momentum

• Several active research groups

• Prototypes, methods and applications

TripleWave shows that it is possible to exchange RDF streams over the Web

• It uses standard technologies

• It feeds C-SPARQL (and soon CQELS)

There is a potential huge value in putting together the results we are obtaining

Daniele Dell'Aglio - TripleWave 27/28

Page 30: Triplewave: a step towards RDF Stream Processing on the Web

Thank you! Questions?

TripleWave: a step towards RDF Stream Processing on the Web

http://streamreasoning.github.io/TripleWave

Daniele Dell’Aglio

[email protected]

http://dellaglio.org

@dandellaglio

Daniele Dell'Aglio - TripleWave 28/28