Jeen Broekstra is a principal engineer at metaphacts GmbH and the project lead for Eclipse RDF4J. RDF4J is a modular collection of Java libraries for working with RDF data, including reading, writing, storing, querying, and updating RDF databases or remote SPARQL endpoints. It provides a vendor-neutral API and tools like RDF4J Server, Workbench, and Console. RDF4J aims to support modern Java versions while focusing on SHACL, SPARQL 1.2, and experimental RDF* and SPARQL* features.
2. About me
● Jeen Broekstra
● Principal Engineer at metaphacts GmbH
● Dutch Kiwi living in Melbourne, Australia
● One of the original designers of Sesame
● Current project lead of Eclipse RDF4J
3. A brief history
2001
Sesame is born
Online storage and querying
service, developed in the EU
project “On-To-Knowledge”
2002
OpenRDF Sesame
First open source release
Shift from online service to API /
toolkit for RDF in Java
2003
Rio parsers
Increased focus on application
as library and RDF API in Java
2008
Sesame 2.0
Complete redesign
SPARQL 1.0 support
2016
Eclipse RDF4J
Focus on modern Java
Vendor-neutral API
2020
RDF4J continued
Regular new releases
Focus on SHACL, SPARQL 1.2,
RDF*/SPARQL*, Java 11-12-13-14
4. So what is RDF4J?
● A modular collection of Java libraries for working with RDF data
○ Reading, writing, creating, updating, converting
○ Storing, querying and updating in RDF databases or remote SPARQL endpoints
○ Out-of-the box scalable, persistent, transactional storage
■ Native Store
■ Memory Store
○ A vendor-neutral API for connecting with RDF stores
● A set of tools
○ RDF4J Server: an RDF database manager
○ RDF4J Workbench: a web-based client tool for interacting with RDF4J Server or other endpoints
○ RDF4J Console: a command line tool
5. Quick recap: RDF
● Graph data model
● IRIs as a means of decoupling and
global identification of resources
and concepts
Jeen RDF4J
project lead
Person Project
6. Quick recap: RDF
● Graph data model
● IRIs as a means of decoupling and
global identification of resources
and concepts
Jeen RDF4J
project lead
Person Project
Different owners and locations
7. SAIL API
Storage And Inference Layer
Memory Store
Native Store
Custom Store
RDFS Inference
SHACL Validation
Full-Text Search
GeoSPARQL
Custom Inference
storage reasoning extensions
Repository API SPARQLRio: RDF I/O
Parser/Writer API
Model API
SAIL accessRDF4J Server access SPARQL endpoint accessRDF/XML
Turtle
N-Triples
JSON-LD
TriG
TriX
N-Quads
Binary
RDF/JSON
Federated Query
Architecture
HDT
9. RDF4J Server
● RDF4J REST API
○ Transaction support
○ Database management operations
○ SPARQL 1.1 Protocol
■ “SPARQL endpoints”
■ REST API for sending SPARQL queries and updates
○ SPARQL 1.1 Graph Store Protocol
■ REST API for communicating with RDF graph stores
■ Retrieving and manipulating RDF (named) graphs directly
11. RDF4J Console
● Command line tool for RDF and
SPARQL
○ Verify and convert RDF files
○ Create new local database on the fly
○ Connect to RDF4J Server to manage
databases, add and query data
○ Connect to any public SPARQL
endpoint to query
○ Can be used to batch/script
operations on RDF stores or files
13. RDF files and Models
The Rio parser is your one-stop shop for reading and writing RDF from code:
A Model is a collection of statements you can filter, map, stream, slice and dice:
14. Adding data to a database
The Repository API is a “JDBC-inspired” transactional interface for RDF databases
15. Transactions
● Operations on a connection can be grouped in transactions for improved performance
and better consistency control
● Each transaction is atomic: it either fully succeeds or not at all
● Repositories can support concurrent read and write
● Transactions can have different isolation levels
16. SHACL
● Shapes Constraint Language - specify constraints on your data
○ “All persons must have at least one first name”
● RDF4J supports SHACL through the ShaclSail
○ Validation against shapes on transaction commit
ex:PersonShape
a sh:NodeShape ;
sh:targetClass ex:Person ;
sh:property [
sh:path ex:firstName ;
sh:minCount 1 ;
].
17. FedX: federated query
● Allows treating any combination of databases and SPARQL endpoints as a federated
“virtual” repository
● Clever query planning and optimization routes relevant parts of complex queries to the
relevant federation members
● A drop-in replacement for any existing Repository
19. Current focus areas
● Experimental support for RDF* and SPARQL*
● Performance improvements
● Improve and extend SHACL support
● Query plan explanation / analysis
20. Find out more
● RDF4J project website - https://rdf4j.org/
● RDF4J on Github - https://github.com/eclipse/rdf4j
● Community support
○ Google group - https://groups.google.com/d/forum/rdf4j-users
○ Github issue tracker - https://github.com/eclipse/rdf4j/issues
● Become a contributor!
○ Get in touch via community channels, or just submit a patch
○ See https://github.com/eclipse/rdf4j/README.md
Major contributors and sponsors
Core committer team:
Jeen Broekstra
Håvard Ottestad
Bart Hanssens
Andreas Schwarte
Damyan Ognyanov