SlideShare a Scribd company logo
Linked Data Notifications for
RDF Streams
Jean-Paul Calbimonte
Institute of Information Systems
University of Applied Sciences and Arts Western Switzerland (HES-SO Valais-Wallis)
International Semantic Web Conference ISWC
Vienna, October 2017
@jpcik
2
HES-SO:
University of Applied Sciences and Arts Western Switzerland
We are here,
surrounded by mountains!
3
Linked Data Notifications for RDF Streams
1
4
RDF Streams
triplesRDF graph:
graph Triple Store
store
post query
triples
graph+ timestampRDF stream graph:
(graph, t)
feed
register query
triplesRDF Stream
Processor
5
RSP Data Model
https://github.com/streamreasoning/RSP-QL/blob/master/Semantics.md
Timestamped Graph
:g1 {:axel :isIn :RedRoom. :darko :isIn :RedRoom}
{:g1 prov:generatedAtTime "2001-10-26T21:32:52"}
 Many/One-triple graphs
 Multiple time predicates
 Implicit timestamp
 Different timestamp representations
 Contemporaneity
Allows:
A RDF stream S consists of a sequence of timestamped graphs (with a partial order)
RDF Stream
:g1 {:axel :isIn :RedRoom. :darko :isIn :RedRoom} {:g1,prov:generatedAtTime,t1}
:g2 {:axel :isIn :BlueRoom. } {:g2,prov:generatedAtTime,t2}
:g3 {:minh :isIn :RedRoom. } {:g3,prov:generatedAtTime,t3} ...
https://www.w3.org/community/rsp/
http://w3id.org/rsp/abstract-syntax
6
RDF Stream Processors
Triple
Wave
CSPARQL
Etalis
TrOWL
CQELS
Morph
streams
RDF stream
RDF stream
RDF stream
RDF stream
RDF stream
7
Linked Data Notifications for RDF Streams
2
8
9
LDN: Basics
Sender
Target
Receiver
Consumer
Resource which notifications
is to/about
sends notifications consumes notifications
exposes notifications through inbox
creates notifications in inbox
inbox
10
LDN: Discovery
Sender Consumer
Target
GET/HEAD GET/HEAD
inbox inbox
11
LDN Interactions
Sender Consumer
ReceiverPOST GET
notifications
Inbox
Consumer
Receiver
GET
ldp:contains
Inbox
notifications
12
LDN for RDF Streams
3
13
We think LDN can help to get here:
Triple
Wave
CSPARQL
Etalis
TrOWL
CQELS
Morph
streams
RDF stream
RDF stream
RDF stream
RDF stream
RDF stream
14
Streams and IRIs
• An RDF stream is uniquely identified by an IRI
• Stream IRI: obtain information about the stream
• endpoints
• RDF stream is a read/write Web resource detached
from potentially multiple endpoints used to interact with
its contents.
15
Endpoint discovery
The endpoints of an RDF stream:
GET http://example.org/streams/my-stream
Response should include metadata about the stream:
{
"@context": "http://www.w3.org/ns/ldp",
"@id": "http://example.org/streams/my-stream",
"inbox": "http://example.org/streams/my-stream/inbox"
}
RSP Sender RSP Consumer
RDF StreamGET/HEAD GET/HEAD
inbox inbox
16
Input/output stream
• Specialize it in two distinct types: an input inbox and an output
inbox.
• Input stream: receiving notifications (i.e. to be fed) by senders.
• Output stream: only meant to be consumed, as they are produced
by an RSP engine.
{
"@context": "http://w3id.org/rsp/ldn-s",
"@id": "http://example.org/streams/my-stream",
"input": "http://example.org/streams/my-stream/input"
}
17
Sending stream notification
• POST stream elements
• body should contain the stream element that will be fed to the stream
POST /streams/my-stream/input HTTP/1.1
Host: example.org
Content-Type: application/ld+json
{
"prov:generatedAtTime": "2017-07-22T05:00:00.000Z",
"@id": "ex:Graph1",
"@graph": [
{ "@id": "ex:humidityObservation",
"ex:hasValue": 34.5}],
"@context": {
"prov": "http://www.w3.org/ns/prov#",
"ex": "http://example.org#"} }
RSP
ReceiverPOST
stream
inputRSP Sender
18
• GET stream elements from an RDF stream endpoint
• return the notification URIs listed as objects to the LDP
ldp:contains predicate.
• stream elements "fade" with time
• listed stream contents may progressively change.
{
"@context": "http://www.w3.org/ns/ldp",
"@id": "http://example.org/streams/my-stream/output",
"contains": [
"http://example.org/streams/my-stream/output/graph1",
"http://example.org/streams/my-stream/output/graph2" ]
}
Publicizing stream elements
RSP
ReceiverPOST GET
stream
input
stream
outputRSP Sender RSP Consumer
19
Pulling stream elements
• Consumer explicitly requests for stream sub-sequences
• Practical to limit through size, time, filter parameters
{
"@context": {
"prov": "http://www.w3.org/ns/prov#",
"ex": "http://example.org#"},
"@graph": [
{ "prov:generatedAtTime": "2017-07-22T05:00:00.000Z",
"@id": "ex:Graph1",
"@graph": [
{ "@id": "ex:humidityObservation","ex:hasValue": 34.5 }]
},
{ "prov:generatedAtTime": "2017-07-22T06:00:00.000Z",
"@id": "ex:Graph2",
"@graph": [
{ "@id": "ex:humidityObservation","ex:hasValue": 44.5 }]
}
]
}
20
Pushing stream elements
Proactively send stream elements to the consumer
Example: Server-Sent Events protocol (HTTP-based).
• Continuously push RDF stream elements,
• One-directional (vs. bidirectional in WebSocket)
• Each data item is prefixed by the data: annotation.
Provide additional push protocols (different endpoints)
diverges from LDN  can only advertise one inbox
21
Register a query
• An actor may POST a query to an RSP endpoint
• Query must reference a valid registered RDF stream.
• RSP endpoint should return the URI of the resulting output stream, so that its
results can be retrieved (pulling or pushing).
RDF stream:
http://example.org/streams/my-stream
Query:
SELECT ?s ?p ?o
WHERE {
STREAM <http://example.org/streams/my-stream> [RANGE 2s]
{?s ?p ?o}
}
22
LDN for RDF streams
• Simple, generic, extensible protocol
• Encapsulate behavior or heterogeneous implementations
• Use of existing Standards/recommendations
• Decentralized communication
• Potential for interoperability
23
http://w3id.org/wesp/web-of-data-streams
gracias! ¿tienes preguntas?
Jean-Paul Calbimonte
University of Applied Sciences and Arts Western Switzerland
HES-SO Valais-Wallis
@jpcik

More Related Content

PPTX
Connecting Stream Reasoners on the Web
PDF
Triplewave: a step towards RDF Stream Processing on the Web
PPTX
Query Rewriting in RDF Stream Processing
PPTX
RDF Stream Processing Tutorial: RSP implementations
PPTX
TripleWave: Spreading RDF Streams on the Web
PPTX
RDF Stream Processing and the role of Semantics
PDF
Querying the Web of Data with XSPARQL 1.1
PPTX
Presto@Netflix Presto Meetup 03-19-15
Connecting Stream Reasoners on the Web
Triplewave: a step towards RDF Stream Processing on the Web
Query Rewriting in RDF Stream Processing
RDF Stream Processing Tutorial: RSP implementations
TripleWave: Spreading RDF Streams on the Web
RDF Stream Processing and the role of Semantics
Querying the Web of Data with XSPARQL 1.1
Presto@Netflix Presto Meetup 03-19-15

What's hot (20)

PDF
Flink Gelly - Karlsruhe - June 2015
PPTX
Continuous Processing with Apache Flink - Strata London 2016
PPT
LarKC Tutorial at ISWC 2009 - Data Model
PPTX
Analysis of Air Pollution in Nova Scotia Presentation
PDF
Harvard Hypermap: An Open Source Framework for Making the World’s Geospatial ...
PDF
Stateful Distributed Stream Processing
PPTX
First Flink Bay Area meetup
PPTX
Apache Flink@ Strata & Hadoop World London
PDF
Dynamic Community Detection for Large-scale e-Commerce data with Spark Stream...
PPTX
Stream Analytics with SQL on Apache Flink
PPTX
Air Pollution in Nova Scotia: Analysis and Predictions
PDF
Machine Learning with Apache Flink at Stockholm Machine Learning Group
PPTX
SRAdb Bioconductor Package Overview
PDF
Big Data, Mob Scale.
PDF
Flink Streaming Berlin Meetup
PPTX
Flink Streaming @BudapestData
PDF
Managing and Consuming Completeness Information for Wikidata Using COOL-WD
PPTX
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...
PDF
Flink forward SF 2017: Ufuk Celebi - The Stream Processor as a Database: Buil...
PPTX
Flink internals web
Flink Gelly - Karlsruhe - June 2015
Continuous Processing with Apache Flink - Strata London 2016
LarKC Tutorial at ISWC 2009 - Data Model
Analysis of Air Pollution in Nova Scotia Presentation
Harvard Hypermap: An Open Source Framework for Making the World’s Geospatial ...
Stateful Distributed Stream Processing
First Flink Bay Area meetup
Apache Flink@ Strata & Hadoop World London
Dynamic Community Detection for Large-scale e-Commerce data with Spark Stream...
Stream Analytics with SQL on Apache Flink
Air Pollution in Nova Scotia: Analysis and Predictions
Machine Learning with Apache Flink at Stockholm Machine Learning Group
SRAdb Bioconductor Package Overview
Big Data, Mob Scale.
Flink Streaming Berlin Meetup
Flink Streaming @BudapestData
Managing and Consuming Completeness Information for Wikidata Using COOL-WD
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...
Flink forward SF 2017: Ufuk Celebi - The Stream Processor as a Database: Buil...
Flink internals web
Ad

Similar to Linked Data Notifications for RDF Streams (15)

PDF
On a web of data streams
PPTX
RDF Stream Processing: Let's React
PDF
On web stream processing
PDF
RDF Stream Processing Models (SR4LD2013)
PPT
OrdRing 2013 keynote - On the need for a W3C community group on RDF Stream Pr...
PPT
On the need for a W3C community group on RDF Stream Processing
PPTX
Streams of RDF Events Derive2015
PDF
Multi-service reactive streams using Spring, Reactor, RSocket
PDF
RDF Stream Processing Models (RSP2014)
PDF
RSP-QL*: Querying Data-Level Annotations in RDF Streams
PPTX
Multi-agent interactions on the Web through Linked Data Notifications
PDF
On the need for applications aware adaptive middleware in real-time RDF data ...
PDF
Distributed Reactive Services with Reactor & Spring - Stéphane Maldini
PDF
End-to-End Reactive Data Access Using R2DBC with RSocket and Proteus
PDF
Linked Data Notifications Distributed Update Notification and Propagation on ...
On a web of data streams
RDF Stream Processing: Let's React
On web stream processing
RDF Stream Processing Models (SR4LD2013)
OrdRing 2013 keynote - On the need for a W3C community group on RDF Stream Pr...
On the need for a W3C community group on RDF Stream Processing
Streams of RDF Events Derive2015
Multi-service reactive streams using Spring, Reactor, RSocket
RDF Stream Processing Models (RSP2014)
RSP-QL*: Querying Data-Level Annotations in RDF Streams
Multi-agent interactions on the Web through Linked Data Notifications
On the need for applications aware adaptive middleware in real-time RDF data ...
Distributed Reactive Services with Reactor & Spring - Stéphane Maldini
End-to-End Reactive Data Access Using R2DBC with RSocket and Proteus
Linked Data Notifications Distributed Update Notification and Propagation on ...
Ad

More from Jean-Paul Calbimonte (20)

PDF
Towards Collaborative Creativity in Persuasive Multi-agent Systems
PDF
A Platform for Difficulty Assessment and Recommendation of Hiking Trails
PDF
Stream reasoning agents
PPTX
Decentralized Management of Patient Profiles and Trajectories through Semanti...
PDF
Personal Data Privacy Semantics in Multi-Agent Systems Interactions
PPTX
RDF data validation 2017 SHACL
PPTX
SanTour: Personalized Recommendation of Hiking Trails to Health Pro files
PPTX
The MedRed Ontology for Representing Clinical Data Acquisition Metadata
PPTX
Fundamentos de Scala (Scala Basics) (español) Catecbol
PPTX
Toward Semantic Sensor Data Archives on the Web
PPTX
Detection of hypoglycemic events through wearable sensors
PPTX
The Schema Editor of OpenIoT for Semantic Sensor Networks
PPTX
Scala Programming for Semantic Web Developers ESWC Semdev2015
PPTX
XGSN: An Open-source Semantic Sensing Middleware for the Web of Things
PPT
X-GSN in OpenIoT SummerSchool
PPTX
GSN Global Sensor Networks for Environmental Data Management
PPTX
SSN2013 Demo: tablet based visualization of transport data with SPARQLStream
PPTX
Tutorial Stream Reasoning SPARQLstream and Morph-streams
PPTX
SPARQLstream and Morph-streams
Towards Collaborative Creativity in Persuasive Multi-agent Systems
A Platform for Difficulty Assessment and Recommendation of Hiking Trails
Stream reasoning agents
Decentralized Management of Patient Profiles and Trajectories through Semanti...
Personal Data Privacy Semantics in Multi-Agent Systems Interactions
RDF data validation 2017 SHACL
SanTour: Personalized Recommendation of Hiking Trails to Health Pro files
The MedRed Ontology for Representing Clinical Data Acquisition Metadata
Fundamentos de Scala (Scala Basics) (español) Catecbol
Toward Semantic Sensor Data Archives on the Web
Detection of hypoglycemic events through wearable sensors
The Schema Editor of OpenIoT for Semantic Sensor Networks
Scala Programming for Semantic Web Developers ESWC Semdev2015
XGSN: An Open-source Semantic Sensing Middleware for the Web of Things
X-GSN in OpenIoT SummerSchool
GSN Global Sensor Networks for Environmental Data Management
SSN2013 Demo: tablet based visualization of transport data with SPARQLStream
Tutorial Stream Reasoning SPARQLstream and Morph-streams
SPARQLstream and Morph-streams

Recently uploaded (20)

PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PPTX
international classification of diseases ICD-10 review PPT.pptx
PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
DOCX
Unit-3 cyber security network security of internet system
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
SAP Ariba Sourcing PPT for learning material
PPTX
E -tech empowerment technologies PowerPoint
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PPTX
artificial intelligence overview of it and more
PDF
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
PPTX
innovation process that make everything different.pptx
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PDF
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPT
tcp ip networks nd ip layering assotred slides
INTERNET------BASICS-------UPDATED PPT PRESENTATION
international classification of diseases ICD-10 review PPT.pptx
Job_Card_System_Styled_lorem_ipsum_.pptx
Unit-3 cyber security network security of internet system
SASE Traffic Flow - ZTNA Connector-1.pdf
522797556-Unit-2-Temperature-measurement-1-1.pptx
SAP Ariba Sourcing PPT for learning material
E -tech empowerment technologies PowerPoint
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
artificial intelligence overview of it and more
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
innovation process that make everything different.pptx
Module 1 - Cyber Law and Ethics 101.pptx
PptxGenJS_Demo_Chart_20250317130215833.pptx
introduction about ICD -10 & ICD-11 ppt.pptx
Tenda Login Guide: Access Your Router in 5 Easy Steps
Slides PDF The World Game (s) Eco Economic Epochs.pdf
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
The New Creative Director: How AI Tools for Social Media Content Creation Are...
tcp ip networks nd ip layering assotred slides

Linked Data Notifications for RDF Streams

  • 1. Linked Data Notifications for RDF Streams Jean-Paul Calbimonte Institute of Information Systems University of Applied Sciences and Arts Western Switzerland (HES-SO Valais-Wallis) International Semantic Web Conference ISWC Vienna, October 2017 @jpcik
  • 2. 2 HES-SO: University of Applied Sciences and Arts Western Switzerland We are here, surrounded by mountains!
  • 3. 3 Linked Data Notifications for RDF Streams 1
  • 4. 4 RDF Streams triplesRDF graph: graph Triple Store store post query triples graph+ timestampRDF stream graph: (graph, t) feed register query triplesRDF Stream Processor
  • 5. 5 RSP Data Model https://github.com/streamreasoning/RSP-QL/blob/master/Semantics.md Timestamped Graph :g1 {:axel :isIn :RedRoom. :darko :isIn :RedRoom} {:g1 prov:generatedAtTime "2001-10-26T21:32:52"}  Many/One-triple graphs  Multiple time predicates  Implicit timestamp  Different timestamp representations  Contemporaneity Allows: A RDF stream S consists of a sequence of timestamped graphs (with a partial order) RDF Stream :g1 {:axel :isIn :RedRoom. :darko :isIn :RedRoom} {:g1,prov:generatedAtTime,t1} :g2 {:axel :isIn :BlueRoom. } {:g2,prov:generatedAtTime,t2} :g3 {:minh :isIn :RedRoom. } {:g3,prov:generatedAtTime,t3} ... https://www.w3.org/community/rsp/ http://w3id.org/rsp/abstract-syntax
  • 6. 6 RDF Stream Processors Triple Wave CSPARQL Etalis TrOWL CQELS Morph streams RDF stream RDF stream RDF stream RDF stream RDF stream
  • 7. 7 Linked Data Notifications for RDF Streams 2
  • 8. 8
  • 9. 9 LDN: Basics Sender Target Receiver Consumer Resource which notifications is to/about sends notifications consumes notifications exposes notifications through inbox creates notifications in inbox inbox
  • 11. 11 LDN Interactions Sender Consumer ReceiverPOST GET notifications Inbox Consumer Receiver GET ldp:contains Inbox notifications
  • 12. 12 LDN for RDF Streams 3
  • 13. 13 We think LDN can help to get here: Triple Wave CSPARQL Etalis TrOWL CQELS Morph streams RDF stream RDF stream RDF stream RDF stream RDF stream
  • 14. 14 Streams and IRIs • An RDF stream is uniquely identified by an IRI • Stream IRI: obtain information about the stream • endpoints • RDF stream is a read/write Web resource detached from potentially multiple endpoints used to interact with its contents.
  • 15. 15 Endpoint discovery The endpoints of an RDF stream: GET http://example.org/streams/my-stream Response should include metadata about the stream: { "@context": "http://www.w3.org/ns/ldp", "@id": "http://example.org/streams/my-stream", "inbox": "http://example.org/streams/my-stream/inbox" } RSP Sender RSP Consumer RDF StreamGET/HEAD GET/HEAD inbox inbox
  • 16. 16 Input/output stream • Specialize it in two distinct types: an input inbox and an output inbox. • Input stream: receiving notifications (i.e. to be fed) by senders. • Output stream: only meant to be consumed, as they are produced by an RSP engine. { "@context": "http://w3id.org/rsp/ldn-s", "@id": "http://example.org/streams/my-stream", "input": "http://example.org/streams/my-stream/input" }
  • 17. 17 Sending stream notification • POST stream elements • body should contain the stream element that will be fed to the stream POST /streams/my-stream/input HTTP/1.1 Host: example.org Content-Type: application/ld+json { "prov:generatedAtTime": "2017-07-22T05:00:00.000Z", "@id": "ex:Graph1", "@graph": [ { "@id": "ex:humidityObservation", "ex:hasValue": 34.5}], "@context": { "prov": "http://www.w3.org/ns/prov#", "ex": "http://example.org#"} } RSP ReceiverPOST stream inputRSP Sender
  • 18. 18 • GET stream elements from an RDF stream endpoint • return the notification URIs listed as objects to the LDP ldp:contains predicate. • stream elements "fade" with time • listed stream contents may progressively change. { "@context": "http://www.w3.org/ns/ldp", "@id": "http://example.org/streams/my-stream/output", "contains": [ "http://example.org/streams/my-stream/output/graph1", "http://example.org/streams/my-stream/output/graph2" ] } Publicizing stream elements RSP ReceiverPOST GET stream input stream outputRSP Sender RSP Consumer
  • 19. 19 Pulling stream elements • Consumer explicitly requests for stream sub-sequences • Practical to limit through size, time, filter parameters { "@context": { "prov": "http://www.w3.org/ns/prov#", "ex": "http://example.org#"}, "@graph": [ { "prov:generatedAtTime": "2017-07-22T05:00:00.000Z", "@id": "ex:Graph1", "@graph": [ { "@id": "ex:humidityObservation","ex:hasValue": 34.5 }] }, { "prov:generatedAtTime": "2017-07-22T06:00:00.000Z", "@id": "ex:Graph2", "@graph": [ { "@id": "ex:humidityObservation","ex:hasValue": 44.5 }] } ] }
  • 20. 20 Pushing stream elements Proactively send stream elements to the consumer Example: Server-Sent Events protocol (HTTP-based). • Continuously push RDF stream elements, • One-directional (vs. bidirectional in WebSocket) • Each data item is prefixed by the data: annotation. Provide additional push protocols (different endpoints) diverges from LDN  can only advertise one inbox
  • 21. 21 Register a query • An actor may POST a query to an RSP endpoint • Query must reference a valid registered RDF stream. • RSP endpoint should return the URI of the resulting output stream, so that its results can be retrieved (pulling or pushing). RDF stream: http://example.org/streams/my-stream Query: SELECT ?s ?p ?o WHERE { STREAM <http://example.org/streams/my-stream> [RANGE 2s] {?s ?p ?o} }
  • 22. 22 LDN for RDF streams • Simple, generic, extensible protocol • Encapsulate behavior or heterogeneous implementations • Use of existing Standards/recommendations • Decentralized communication • Potential for interoperability
  • 24. gracias! ¿tienes preguntas? Jean-Paul Calbimonte University of Applied Sciences and Arts Western Switzerland HES-SO Valais-Wallis @jpcik