Skip to main content

5.3.0

RDF4J 5.3.0 is a minor release that fixes 22 issues since 5.2.2.

Highlights

  • Query observability is much stronger in 5.3.0. Query explanations now carry richer runtime telemetry (GH-5701), can be requested and cancelled over HTTP, and are exposed in Workbench with text, JSON, and DOT views plus side-by-side comparison support (GH-5713). The new experimental QueryPlanSnapshotCli helps capture and compare plans across benchmark runs (GH-5691).
  • Server deployment is easier. RDF4J now ships a self-contained Spring Boot distribution for Server and Workbench as rdf4j-server-boot (GH-1502), and the Spring components now include a lightweight rdf4j-spring-boot-sparql-web wrapper for SPARQL-only HTTP services.
  • Several hot paths were optimized. LMDB writes are faster when transaction isolation is enabled (GH-5748), DISTINCT evaluation and related query-engine paths were tightened (GH-5716), and AbstractMemoryOverflowModel now uses DynamicModel to reduce intermediate-model overhead (GH-5711).
  • Result export and parsing grew more capable. Tuple query results can now be written directly as .xlsx and .ods spreadsheets (GH-5290), and the JSON-LD parser can be supplied with an expansion context to refine how incoming documents are interpreted (GH-5573).

Query Engine And APIs

  • RDF4J now ships an experimental rdf4j-queryrender module with a more complete SPARQL renderer and IR-based algebra-to-text pipeline (GH-5604).
  • Var.of(...) factories and the Var.Provider SPI allow libraries to plug in custom query-model variable implementations without changing call sites (GH-5604).
  • SHACL now includes a fluent ShaclValidator builder API (GH-5646) and more precise control over inferred statements during validation (GH-5676).
  • Custom SPARQL aggregate functions can now accept positioned additional parameters (GH-5626).
  • NativeStore’s ValueStore now uses a write-ahead log to improve recovery from value corruption (GH-5520).

Server, Workbench, And Operations

  • Workbench query pages can run asynchronous EXPLAIN requests, cancel long-running explanations, and render plans as text, JSON, or DOT graphs. Compare mode makes it easier to inspect plan changes side by side (GH-5713).
  • Server and Workbench data-import flows can now choose a transaction isolation level during upload, instead of always relying on the repository default (GH-5565). The console load command gained the same option.
  • LuceneSail no longer has to fsync on every transaction commit. Applications can now choose between commit() and flush() behavior to trade raw durability against much better ingest throughput (GH-5291).
  • Docker images were updated to newer JDK baselines (JDK 21 and JDK 25) (GH-5608).

Bug Fixes And Compatibility Notes

  • Fixed a 5.2.2 regression where RepositoryFederatedService could lose application-specific thread context during background SERVICE evaluation (GH-5732).
  • GraphPatterns.filterNotExists(...) is no longer lost when appended to an empty GraphPatterns.and() in the query builder (GH-5561).
  • Solr Sail is now deprecated for removal in the next major release (GH-5631).
  • A broad set of Elasticsearch integration APIs were deprecated for removal in preparation for a future client refresh.
  • FedX now carries deprecation notices on several legacy evaluation, join, and demo APIs as federation internals move toward a more unified strategy (GH-5663).

For a complete overview, see all issues fixed in 5.3.0.

Acknowledgements

This release was made possible by contributions from Jerven Bolleman, Piotr Sowiński, Andreas Schwarte, Håvard M. Ottestad, Nikita Kozlov, Christian Kleinbölting.

Back to the top