EKAW - Publishing with Triple Pattern Fragments

Ruben Taelman
Ruben TaelmanPhD Researcher at iMinds - IDLab
Publishing with
Triple Pattern Fragments
Ruben Taelman - @rubensworks
imec - Ghent University
1
Publishing with Triple Pattern Fragments
TPF server software
TPF client-side querying
Quad Pattern Fragments
Demo
2
Publishing with Triple Pattern Fragments
TPF server software
TPF client-side querying
Quad Pattern Fragments
Demo
3
http://linkeddatafragments.org/software/
JavaScript LDF server
Python
Perl
Ruby
PHP
Java
...
TPF server implementations in different languages
4
Requires Node.js ≥ 4.0
Installing and running the LDF server with Node
5
[sudo] npm install -g ldf-server
ldf-server config.json <port> <workers>
Documentation: https://github.com/LinkedDataFragments/Server.js
Requires Docker
Installing and running the LDF server with Docker
6
docker pull linkeddatafragments/server.js
docker run -p <port>:3000 -it --rm 
-v $(pwd)/config.json:/tmp/config.json 
ldf-server /tmp/config.json
Preconfigured LDF server with NGINX cache and web-client
Setting up a full stack with Docker (Compose)
7
docker-compose up
https://github.com/LinkedDataFragments/FullStackServer
{
"title": "My Linked Data Fragments server",
"datasources": {
"dbpedia": {
"title": "DBpedia 2014",
"type": "HdtDatasource",
"description": "DBpedia 2014 with an HDT back-end",
"settings": { "file": "data/dbpedia2014.hdt" }
},
"dbpedia-sparql": {
"title": "DBpedia 3.9 (Virtuoso)",
"type": "SparqlDatasource",
"description": "DBpedia 3.9 with a Virtuoso back-end",
"settings": { "endpoint": "http://dbpedia.restdesc.org/",
"defaultGraph": "http://dbpedia.org" }
}
}
}
LDF server is configured with config.json
8
{
"title": "My Linked Data Fragments server",
"datasources": {
"dbpedia": {
"title": "DBpedia 2014",
"type": "HdtDatasource",
"description": "DBpedia 2014 with an HDT back-end",
"settings": { "file": "data/dbpedia2014.hdt" }
},
"dbpedia-sparql": {
"title": "DBpedia 3.9 (Virtuoso)",
"type": "SparqlDatasource",
"description": "DBpedia 3.9 with a Virtuoso back-end",
"settings": { "endpoint": "http://dbpedia.restdesc.org/",
"defaultGraph": "http://dbpedia.org" }
}
}
}
Configure list of datasources
9
{
"title": "My Linked Data Fragments server",
"datasources": {
"dbpedia": {
"title": "DBpedia 2014",
"type": "HdtDatasource",
"description": "DBpedia 2014 with an HDT back-end",
"settings": { "file": "data/dbpedia2014.hdt" }
},
"dbpedia-sparql": {
"title": "DBpedia 3.9 (Virtuoso)",
"type": "SparqlDatasource",
"description": "DBpedia 3.9 with a Virtuoso back-end",
"settings": { "endpoint": "http://dbpedia.restdesc.org/",
"defaultGraph": "http://dbpedia.org" }
}
}
}
Load an HDT file
10
{
"title": "My Linked Data Fragments server",
"datasources": {
"dbpedia": {
"title": "DBpedia 2014",
"type": "HdtDatasource",
"description": "DBpedia 2014 with an HDT back-end",
"settings": { "file": "data/dbpedia2014.hdt" }
},
"dbpedia-sparql": {
"title": "DBpedia 3.9 (Virtuoso)",
"type": "SparqlDatasource",
"description": "DBpedia 3.9 with a Virtuoso back-end",
"settings": { "endpoint": "http://dbpedia.restdesc.org/",
"defaultGraph": "http://dbpedia.org" }
}
}
}
Act as a proxy to a SPARQL endpoint
11
HDT
N-Triples
Turtle
JSON-LD
SPARQL-endpoint
Different data sources are possible
12
by extending lib/datasources/Datasource.js
Return triple stream given triple pattern, offset and limit
...or write your own datasource implementation
13
Exposing multiple datasources as if it was one
Useful for fragmented datasets that can’t be merged
Compose multiple datasources
14
https://github.com/LinkedDataFragments/Server.js/blob/master/config/config-composite.json
Publishing with Triple Pattern Fragments
TPF server software
TPF client-side querying
Quad Pattern Fragments
Demo
15
http://linkeddatafragments.org/software/
JavaScript LDF client
Python
Perl
Java
...
Different client implementations exist as well
16
No installation required at all!
http://client.linkeddatafragments.org/
Use the web client
17
Requires Node.js ≥ 4.0
Run from command line or include in your source code
Installing and running the LDF client with Node
18
[sudo] npm install -g ldf-client
ldf-client <tpf-endpoint-url> <sparql-query-path>
Documentation: https://github.com/LinkedDataFragments/Client.js
Requires Docker
Installing and running the LDF client with Docker
19
docker pull linkeddatafragments/client.js
docker run -it --rm 
-v <sparql-query-path>:/tmp/query.sparql 
linkeddatafragments/client.js 
<tpf-endpoint-url> /tmp/query.sparql
Publishing with Triple Pattern Fragments
TPF server software
TPF client-side querying
Quad Pattern Fragments
20
Quads are triples extended with a fourth element, the graph
<s> <p> <o> <g>.
Triples sometimes need some context
21
Quad Pattern Fragments (QPF)
Adding the fourth element to the interface
22
SELECT *
FROM <http://example.org/graph0>
FROM NAMED <http://example.org/graph1>
WHERE {
GRAPH ?g {
?s ?p ?o.
}
}
QPF Clients are able to use quad features
23
QPF is backwards-compatible with TPF
24
TPF
QPF
TPF
QPF
Ignores graphs
Quad Pattern Fragments (WIP)
https://github.com/LinkedDataFragments/Server.js/tree/feature-qpf-latest
https://github.com/LinkedDataFragments/Client.js/tree/feature-qpf-latest
25
Publishing with Triple Pattern Fragments
TPF server software
TPF client-side querying
Quad Pattern Fragments
Demo
26
Let’s try overloading the DBpedia TPF endpoint!
27
http://fragments.dbpedia.org/
Uptime of 99.9967%
28
29
30
Some query types are very slow
~1 hour!
Server running TPF server software with any dataset
31
TPF server
software
RDF dataset
HDT dataset
SPARQL endpoint
...
1 of 31

Recommended

Multidimensional Interfaces for Selecting Data with Order by
Multidimensional Interfaces for Selecting Data with OrderMultidimensional Interfaces for Selecting Data with Order
Multidimensional Interfaces for Selecting Data with OrderRuben Taelman
959 views24 slides
EKAW - Linked Data Publishing by
EKAW - Linked Data PublishingEKAW - Linked Data Publishing
EKAW - Linked Data PublishingRuben Taelman
433 views27 slides
Describing configurations of software experiments as Linked Data by
Describing configurations of software experiments as Linked DataDescribing configurations of software experiments as Linked Data
Describing configurations of software experiments as Linked DataJoachim Van Herwegen
654 views41 slides
Poster GraphQL-LD: Linked Data Querying with GraphQL by
Poster GraphQL-LD: Linked Data Querying with GraphQLPoster GraphQL-LD: Linked Data Querying with GraphQL
Poster GraphQL-LD: Linked Data Querying with GraphQLRuben Taelman
263 views1 slide
Versioned Triple Pattern Fragments by
Versioned Triple Pattern FragmentsVersioned Triple Pattern Fragments
Versioned Triple Pattern FragmentsRuben Taelman
933 views31 slides
Hadoop by
HadoopHadoop
HadoopAli Bahu
843 views14 slides

More Related Content

What's hot

OAXAL by
OAXALOAXAL
OAXALAndrzej Zydroń MBCS
443 views37 slides
HDF Product Designer: Using Templates to Achieve Interoperability by
HDF Product Designer: Using Templates to Achieve InteroperabilityHDF Product Designer: Using Templates to Achieve Interoperability
HDF Product Designer: Using Templates to Achieve InteroperabilityThe HDF-EOS Tools and Information Center
219 views12 slides
Integration between Filebeat and logstash by
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash DaeMyung Kang
1.8K views12 slides
Distributed Tracing with OpenTracing, ZipKin and Kubernetes by
Distributed Tracing with OpenTracing, ZipKin and KubernetesDistributed Tracing with OpenTracing, ZipKin and Kubernetes
Distributed Tracing with OpenTracing, ZipKin and KubernetesContainer Solutions
9.2K views35 slides
Introduction to Redis by
Introduction to RedisIntroduction to Redis
Introduction to RedisItamar Haber
251 views26 slides
A quick introduction to Storm Crawler by
A quick introduction to Storm CrawlerA quick introduction to Storm Crawler
A quick introduction to Storm CrawlerJulien Nioche
4.1K views15 slides

What's hot(20)

Integration between Filebeat and logstash by DaeMyung Kang
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash
DaeMyung Kang1.8K views
Distributed Tracing with OpenTracing, ZipKin and Kubernetes by Container Solutions
Distributed Tracing with OpenTracing, ZipKin and KubernetesDistributed Tracing with OpenTracing, ZipKin and Kubernetes
Distributed Tracing with OpenTracing, ZipKin and Kubernetes
Container Solutions9.2K views
Introduction to Redis by Itamar Haber
Introduction to RedisIntroduction to Redis
Introduction to Redis
Itamar Haber251 views
A quick introduction to Storm Crawler by Julien Nioche
A quick introduction to Storm CrawlerA quick introduction to Storm Crawler
A quick introduction to Storm Crawler
Julien Nioche4.1K views
Redis Modules API - an introduction by Itamar Haber
Redis Modules API - an introductionRedis Modules API - an introduction
Redis Modules API - an introduction
Itamar Haber558 views
Improve Presto Architectural Decisions with Shadow Cache by Alluxio, Inc.
 Improve Presto Architectural Decisions with Shadow Cache Improve Presto Architectural Decisions with Shadow Cache
Improve Presto Architectural Decisions with Shadow Cache
Alluxio, Inc.314 views
Functional Composition of Sensor Web APIs by Ruben Verborgh
Functional Composition of Sensor Web APIsFunctional Composition of Sensor Web APIs
Functional Composition of Sensor Web APIs
Ruben Verborgh1.3K views
RethinkDB - the open-source database for the realtime web by Alex Ivanov
RethinkDB - the open-source database for the realtime webRethinkDB - the open-source database for the realtime web
RethinkDB - the open-source database for the realtime web
Alex Ivanov814 views
Using Ceph for Large Hadron Collider Data by Rob Gardner
Using Ceph for Large Hadron Collider DataUsing Ceph for Large Hadron Collider Data
Using Ceph for Large Hadron Collider Data
Rob Gardner1.5K views
Investigating server logs by Animesh Shaw
Investigating server logsInvestigating server logs
Investigating server logs
Animesh Shaw1.3K views
Vitalii Kotliarenko “Data processing pipelines with Apache Spark: from protot... by Lviv Startup Club
Vitalii Kotliarenko “Data processing pipelines with Apache Spark: from protot...Vitalii Kotliarenko “Data processing pipelines with Apache Spark: from protot...
Vitalii Kotliarenko “Data processing pipelines with Apache Spark: from protot...
Lviv Startup Club167 views
Enabling Presto Caching at Uber with Alluxio by Alluxio, Inc.
Enabling Presto Caching at Uber with AlluxioEnabling Presto Caching at Uber with Alluxio
Enabling Presto Caching at Uber with Alluxio
Alluxio, Inc.306 views
Thrift vs Protocol Buffers vs Avro - Biased Comparison by Igor Anishchenko
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Igor Anishchenko240.8K views
An introduction to Storm Crawler by Julien Nioche
An introduction to Storm CrawlerAn introduction to Storm Crawler
An introduction to Storm Crawler
Julien Nioche3.4K views
Apache Tajo on Swift: Bringing SQL to the OpenStack World by Jihoon Son
Apache Tajo on Swift: Bringing SQL to the OpenStack WorldApache Tajo on Swift: Bringing SQL to the OpenStack World
Apache Tajo on Swift: Bringing SQL to the OpenStack World
Jihoon Son3.2K views

Viewers also liked

Docker Intro by
Docker IntroDocker Intro
Docker IntroRuben Taelman
508 views32 slides
Navagraha Guru Ashtothara Satha Namavali Tamil Transliteration by
Navagraha Guru Ashtothara Satha Namavali Tamil TransliterationNavagraha Guru Ashtothara Satha Namavali Tamil Transliteration
Navagraha Guru Ashtothara Satha Namavali Tamil TransliterationRavi Ramakrishnan
444 views29 slides
конкурс by
конкурсконкурс
конкурсЮрій Глущенко
186 views30 slides
Procesos cognitivos by
Procesos cognitivosProcesos cognitivos
Procesos cognitivosNisse33
178 views5 slides
Metric & DAE by
Metric & DAEMetric & DAE
Metric & DAEzaheer ahmad
143 views2 slides
Segundo simulador segunda parte by
Segundo simulador segunda parteSegundo simulador segunda parte
Segundo simulador segunda partePharmed Solutions Institute
4.8K views246 slides

Viewers also liked(16)

Navagraha Guru Ashtothara Satha Namavali Tamil Transliteration by Ravi Ramakrishnan
Navagraha Guru Ashtothara Satha Namavali Tamil TransliterationNavagraha Guru Ashtothara Satha Namavali Tamil Transliteration
Navagraha Guru Ashtothara Satha Namavali Tamil Transliteration
Ravi Ramakrishnan444 views
Procesos cognitivos by Nisse33
Procesos cognitivosProcesos cognitivos
Procesos cognitivos
Nisse33178 views
Hfst 6 emoties binnen sociale relaties by annekesomers
Hfst 6 emoties binnen sociale relatiesHfst 6 emoties binnen sociale relaties
Hfst 6 emoties binnen sociale relaties
annekesomers1.1K views
TP áulico de pintura by jalidf
TP áulico de pintura TP áulico de pintura
TP áulico de pintura
jalidf248 views
Gout in a nutshell by samthamby79
Gout in a nutshellGout in a nutshell
Gout in a nutshell
samthamby79475 views
Presentation EPINOR-lunsj by EPINOR
Presentation EPINOR-lunsjPresentation EPINOR-lunsj
Presentation EPINOR-lunsj
EPINOR2.7K views
2016 Asia Pacific mobile programmatic advertising report by Vpon by Yoshitaka Shinohara
2016 Asia Pacific mobile programmatic advertising report by Vpon2016 Asia Pacific mobile programmatic advertising report by Vpon
2016 Asia Pacific mobile programmatic advertising report by Vpon
Yoshitaka Shinohara1.1K views
( Big ) Data Management - Collect - Global concepts in 5 slides by Nicolas Sarramagna
( Big ) Data Management - Collect - Global concepts in 5 slides( Big ) Data Management - Collect - Global concepts in 5 slides
( Big ) Data Management - Collect - Global concepts in 5 slides
Nicolas Sarramagna191 views
CNIT 121: 13 Investigating Mac OS X Systems by Sam Bowne
CNIT 121: 13 Investigating Mac OS X SystemsCNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X Systems
Sam Bowne700 views

Similar to EKAW - Publishing with Triple Pattern Fragments

Introduction to Node.js by
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsWinston Hsieh
413 views27 slides
Federated Queries Across Both Different Storage Mediums and Different Data En... by
Federated Queries Across Both Different Storage Mediums and Different Data En...Federated Queries Across Both Different Storage Mediums and Different Data En...
Federated Queries Across Both Different Storage Mediums and Different Data En...VMware Tanzu
494 views33 slides
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud by
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDropsolid
3.5K views55 slides
Apache Spark Workshop, Apr. 2016, Euangelos Linardos by
Apache Spark Workshop, Apr. 2016, Euangelos LinardosApache Spark Workshop, Apr. 2016, Euangelos Linardos
Apache Spark Workshop, Apr. 2016, Euangelos LinardosEuangelos Linardos
404 views83 slides
Using R on High Performance Computers by
Using R on High Performance ComputersUsing R on High Performance Computers
Using R on High Performance ComputersDave Hiltbrand
81 views20 slides
Introducing JDBC for SPARQL by
Introducing JDBC for SPARQLIntroducing JDBC for SPARQL
Introducing JDBC for SPARQLRob Vesse
2.4K views27 slides

Similar to EKAW - Publishing with Triple Pattern Fragments(20)

Federated Queries Across Both Different Storage Mediums and Different Data En... by VMware Tanzu
Federated Queries Across Both Different Storage Mediums and Different Data En...Federated Queries Across Both Different Storage Mediums and Different Data En...
Federated Queries Across Both Different Storage Mediums and Different Data En...
VMware Tanzu494 views
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud by Dropsolid
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Dropsolid3.5K views
Apache Spark Workshop, Apr. 2016, Euangelos Linardos by Euangelos Linardos
Apache Spark Workshop, Apr. 2016, Euangelos LinardosApache Spark Workshop, Apr. 2016, Euangelos Linardos
Apache Spark Workshop, Apr. 2016, Euangelos Linardos
Euangelos Linardos404 views
Using R on High Performance Computers by Dave Hiltbrand
Using R on High Performance ComputersUsing R on High Performance Computers
Using R on High Performance Computers
Dave Hiltbrand81 views
Introducing JDBC for SPARQL by Rob Vesse
Introducing JDBC for SPARQLIntroducing JDBC for SPARQL
Introducing JDBC for SPARQL
Rob Vesse2.4K views
Graphing Nagios services with pnp4nagios by jasonholtzapple
Graphing Nagios services with pnp4nagiosGraphing Nagios services with pnp4nagios
Graphing Nagios services with pnp4nagios
jasonholtzapple3.9K views
Virtuoso RDF Triple Store Analysis Benchmark & mapping tools RDF / OO by Paolo Cristofaro
Virtuoso RDF Triple Store Analysis Benchmark & mapping tools RDF / OOVirtuoso RDF Triple Store Analysis Benchmark & mapping tools RDF / OO
Virtuoso RDF Triple Store Analysis Benchmark & mapping tools RDF / OO
Paolo Cristofaro4.3K views
2014 09 30_sparkling_water_hands_on by Sri Ambati
2014 09 30_sparkling_water_hands_on2014 09 30_sparkling_water_hands_on
2014 09 30_sparkling_water_hands_on
Sri Ambati3K views
HDPCD Spark using Python (pyspark) by Durga Gadiraju
HDPCD Spark using Python (pyspark)HDPCD Spark using Python (pyspark)
HDPCD Spark using Python (pyspark)
Durga Gadiraju2.1K views
PostgreSQL 9.5 Foreign Data Wrappers by Nicholas Kiraly
PostgreSQL 9.5 Foreign Data WrappersPostgreSQL 9.5 Foreign Data Wrappers
PostgreSQL 9.5 Foreign Data Wrappers
Nicholas Kiraly377 views
Spark (Structured) Streaming vs. Kafka Streams by Guido Schmutz
Spark (Structured) Streaming vs. Kafka StreamsSpark (Structured) Streaming vs. Kafka Streams
Spark (Structured) Streaming vs. Kafka Streams
Guido Schmutz5K views
Quadrupling your elephants - RDF and the Hadoop ecosystem by Rob Vesse
Quadrupling your elephants - RDF and the Hadoop ecosystemQuadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystem
Rob Vesse5K views
Exploring Node.jS by Deepu S Nath
Exploring Node.jSExploring Node.jS
Exploring Node.jS
Deepu S Nath1.6K views
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom by Valeriy Kravchuk
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB DevroomMore on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
Valeriy Kravchuk180 views
Reactive dashboard’s using apache spark by Rahul Kumar
Reactive dashboard’s using apache sparkReactive dashboard’s using apache spark
Reactive dashboard’s using apache spark
Rahul Kumar37.5K views
On-premise Spark as a Service with YARN by Jim Dowling
On-premise Spark as a Service with YARN On-premise Spark as a Service with YARN
On-premise Spark as a Service with YARN
Jim Dowling185 views

More from Ruben Taelman

Poster Demonstration of Comunica, a Web framework for querying heterogeneous ... by
Poster Demonstration of Comunica, a Web framework for querying heterogeneous ...Poster Demonstration of Comunica, a Web framework for querying heterogeneous ...
Poster Demonstration of Comunica, a Web framework for querying heterogeneous ...Ruben Taelman
230 views1 slide
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIs by
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIsPoster Declaratively Describing Responses of Hypermedia-Driven Web APIs
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIsRuben Taelman
287 views1 slide
Components.js by
Components.jsComponents.js
Components.jsRuben Taelman
510 views20 slides
Versioned Triple Pattern Fragments by
Versioned Triple Pattern FragmentsVersioned Triple Pattern Fragments
Versioned Triple Pattern FragmentsRuben Taelman
331 views1 slide
PoDiGG: Public Transport Dataset Generator based on Population Distributions by
PoDiGG: Public Transport Dataset Generator based on Population DistributionsPoDiGG: Public Transport Dataset Generator based on Population Distributions
PoDiGG: Public Transport Dataset Generator based on Population DistributionsRuben Taelman
317 views1 slide
Exposing RDF Archives using Triple Pattern Fragments by
Exposing RDF Archives using Triple Pattern FragmentsExposing RDF Archives using Triple Pattern Fragments
Exposing RDF Archives using Triple Pattern FragmentsRuben Taelman
306 views1 slide

More from Ruben Taelman(12)

Poster Demonstration of Comunica, a Web framework for querying heterogeneous ... by Ruben Taelman
Poster Demonstration of Comunica, a Web framework for querying heterogeneous ...Poster Demonstration of Comunica, a Web framework for querying heterogeneous ...
Poster Demonstration of Comunica, a Web framework for querying heterogeneous ...
Ruben Taelman230 views
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIs by Ruben Taelman
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIsPoster Declaratively Describing Responses of Hypermedia-Driven Web APIs
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIs
Ruben Taelman287 views
Versioned Triple Pattern Fragments by Ruben Taelman
Versioned Triple Pattern FragmentsVersioned Triple Pattern Fragments
Versioned Triple Pattern Fragments
Ruben Taelman331 views
PoDiGG: Public Transport Dataset Generator based on Population Distributions by Ruben Taelman
PoDiGG: Public Transport Dataset Generator based on Population DistributionsPoDiGG: Public Transport Dataset Generator based on Population Distributions
PoDiGG: Public Transport Dataset Generator based on Population Distributions
Ruben Taelman317 views
Exposing RDF Archives using Triple Pattern Fragments by Ruben Taelman
Exposing RDF Archives using Triple Pattern FragmentsExposing RDF Archives using Triple Pattern Fragments
Exposing RDF Archives using Triple Pattern Fragments
Ruben Taelman306 views
EKAW - Triple Pattern Fragments by Ruben Taelman
EKAW - Triple Pattern FragmentsEKAW - Triple Pattern Fragments
EKAW - Triple Pattern Fragments
Ruben Taelman448 views
Scalable Dynamic Data Consumption on the Web by Ruben Taelman
Scalable Dynamic Data Consumption on the WebScalable Dynamic Data Consumption on the Web
Scalable Dynamic Data Consumption on the Web
Ruben Taelman331 views
Moving RDF Stream Processing to the Client by Ruben Taelman
Moving RDF Stream Processing to the ClientMoving RDF Stream Processing to the Client
Moving RDF Stream Processing to the Client
Ruben Taelman350 views
Querying Dynamic Datasources with Continuously Mapped Sensor Data by Ruben Taelman
Querying Dynamic Datasources with Continuously Mapped Sensor DataQuerying Dynamic Datasources with Continuously Mapped Sensor Data
Querying Dynamic Datasources with Continuously Mapped Sensor Data
Ruben Taelman565 views
Continuous Self-Updating Query Results over Dynamic Linked Data by Ruben Taelman
Continuous Self-Updating Query Results over Dynamic Linked DataContinuous Self-Updating Query Results over Dynamic Linked Data
Continuous Self-Updating Query Results over Dynamic Linked Data
Ruben Taelman1.1K views
Continuously Updating Query Results over Real-Time Linked Data by Ruben Taelman
Continuously Updating Query Results over Real-Time Linked DataContinuously Updating Query Results over Real-Time Linked Data
Continuously Updating Query Results over Real-Time Linked Data
Ruben Taelman1.3K views

Recently uploaded

VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueShapeBlue
163 views54 slides
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPoolShapeBlue
84 views10 slides
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...ShapeBlue
154 views62 slides
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsPriyanka Aash
153 views59 slides
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
90 views46 slides
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...Bernd Ruecker
50 views69 slides

Recently uploaded(20)

VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue163 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue84 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue154 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash153 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker50 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue85 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue181 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li80 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue120 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue88 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue123 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue117 views
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue253 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays53 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely78 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue179 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue158 views

EKAW - Publishing with Triple Pattern Fragments

  • 1. Publishing with Triple Pattern Fragments Ruben Taelman - @rubensworks imec - Ghent University 1
  • 2. Publishing with Triple Pattern Fragments TPF server software TPF client-side querying Quad Pattern Fragments Demo 2
  • 3. Publishing with Triple Pattern Fragments TPF server software TPF client-side querying Quad Pattern Fragments Demo 3
  • 5. Requires Node.js ≥ 4.0 Installing and running the LDF server with Node 5 [sudo] npm install -g ldf-server ldf-server config.json <port> <workers> Documentation: https://github.com/LinkedDataFragments/Server.js
  • 6. Requires Docker Installing and running the LDF server with Docker 6 docker pull linkeddatafragments/server.js docker run -p <port>:3000 -it --rm -v $(pwd)/config.json:/tmp/config.json ldf-server /tmp/config.json
  • 7. Preconfigured LDF server with NGINX cache and web-client Setting up a full stack with Docker (Compose) 7 docker-compose up https://github.com/LinkedDataFragments/FullStackServer
  • 8. { "title": "My Linked Data Fragments server", "datasources": { "dbpedia": { "title": "DBpedia 2014", "type": "HdtDatasource", "description": "DBpedia 2014 with an HDT back-end", "settings": { "file": "data/dbpedia2014.hdt" } }, "dbpedia-sparql": { "title": "DBpedia 3.9 (Virtuoso)", "type": "SparqlDatasource", "description": "DBpedia 3.9 with a Virtuoso back-end", "settings": { "endpoint": "http://dbpedia.restdesc.org/", "defaultGraph": "http://dbpedia.org" } } } } LDF server is configured with config.json 8
  • 9. { "title": "My Linked Data Fragments server", "datasources": { "dbpedia": { "title": "DBpedia 2014", "type": "HdtDatasource", "description": "DBpedia 2014 with an HDT back-end", "settings": { "file": "data/dbpedia2014.hdt" } }, "dbpedia-sparql": { "title": "DBpedia 3.9 (Virtuoso)", "type": "SparqlDatasource", "description": "DBpedia 3.9 with a Virtuoso back-end", "settings": { "endpoint": "http://dbpedia.restdesc.org/", "defaultGraph": "http://dbpedia.org" } } } } Configure list of datasources 9
  • 10. { "title": "My Linked Data Fragments server", "datasources": { "dbpedia": { "title": "DBpedia 2014", "type": "HdtDatasource", "description": "DBpedia 2014 with an HDT back-end", "settings": { "file": "data/dbpedia2014.hdt" } }, "dbpedia-sparql": { "title": "DBpedia 3.9 (Virtuoso)", "type": "SparqlDatasource", "description": "DBpedia 3.9 with a Virtuoso back-end", "settings": { "endpoint": "http://dbpedia.restdesc.org/", "defaultGraph": "http://dbpedia.org" } } } } Load an HDT file 10
  • 11. { "title": "My Linked Data Fragments server", "datasources": { "dbpedia": { "title": "DBpedia 2014", "type": "HdtDatasource", "description": "DBpedia 2014 with an HDT back-end", "settings": { "file": "data/dbpedia2014.hdt" } }, "dbpedia-sparql": { "title": "DBpedia 3.9 (Virtuoso)", "type": "SparqlDatasource", "description": "DBpedia 3.9 with a Virtuoso back-end", "settings": { "endpoint": "http://dbpedia.restdesc.org/", "defaultGraph": "http://dbpedia.org" } } } } Act as a proxy to a SPARQL endpoint 11
  • 13. by extending lib/datasources/Datasource.js Return triple stream given triple pattern, offset and limit ...or write your own datasource implementation 13
  • 14. Exposing multiple datasources as if it was one Useful for fragmented datasets that can’t be merged Compose multiple datasources 14 https://github.com/LinkedDataFragments/Server.js/blob/master/config/config-composite.json
  • 15. Publishing with Triple Pattern Fragments TPF server software TPF client-side querying Quad Pattern Fragments Demo 15
  • 17. No installation required at all! http://client.linkeddatafragments.org/ Use the web client 17
  • 18. Requires Node.js ≥ 4.0 Run from command line or include in your source code Installing and running the LDF client with Node 18 [sudo] npm install -g ldf-client ldf-client <tpf-endpoint-url> <sparql-query-path> Documentation: https://github.com/LinkedDataFragments/Client.js
  • 19. Requires Docker Installing and running the LDF client with Docker 19 docker pull linkeddatafragments/client.js docker run -it --rm -v <sparql-query-path>:/tmp/query.sparql linkeddatafragments/client.js <tpf-endpoint-url> /tmp/query.sparql
  • 20. Publishing with Triple Pattern Fragments TPF server software TPF client-side querying Quad Pattern Fragments 20
  • 21. Quads are triples extended with a fourth element, the graph <s> <p> <o> <g>. Triples sometimes need some context 21
  • 22. Quad Pattern Fragments (QPF) Adding the fourth element to the interface 22
  • 23. SELECT * FROM <http://example.org/graph0> FROM NAMED <http://example.org/graph1> WHERE { GRAPH ?g { ?s ?p ?o. } } QPF Clients are able to use quad features 23
  • 24. QPF is backwards-compatible with TPF 24 TPF QPF TPF QPF Ignores graphs
  • 25. Quad Pattern Fragments (WIP) https://github.com/LinkedDataFragments/Server.js/tree/feature-qpf-latest https://github.com/LinkedDataFragments/Client.js/tree/feature-qpf-latest 25
  • 26. Publishing with Triple Pattern Fragments TPF server software TPF client-side querying Quad Pattern Fragments Demo 26
  • 27. Let’s try overloading the DBpedia TPF endpoint! 27 http://fragments.dbpedia.org/ Uptime of 99.9967%
  • 28. 28
  • 29. 29
  • 30. 30 Some query types are very slow ~1 hour!
  • 31. Server running TPF server software with any dataset 31 TPF server software RDF dataset HDT dataset SPARQL endpoint ...