Hi,

I'd like to point you to a project of mine that might be useful to Jena
users. Jelly is a high-performance binary format and streaming protocol for
RDF based on Protobuf. It was designed to be extremely fast in
serialization/deserialization, while also offering decent compression
(about 1/6 of N-Triples and 1/3 of Turtle). In the benchmarks that I ran
<https://w3id.org/jelly/dev/performance/>, it was faster than all other
serializations in Apache Jena, including RDF Thrift and RDF Protobuf. Of
course, this is a first-party benchmark, so take it with a grain of salt. :)

Jelly-JVM <https://w3id.org/jelly/jelly-jvm/> is an Apache 2.0-licensed
implementation of Jelly that integrates with Jena (it works with RDF4J as
well). You can use it as either a drop-in JAR plugin
<https://w3id.org/jelly/jelly-jvm/dev/getting-started-plugins/> to quickly
add Jelly support to Fuseki and CLI tools of Jena, or as a Maven
dependency. Jelly-JVM 1.0.x supports Jena 4, while Jelly-JVM 2.0.x supports
only Jena 5. The two versions of the library are near-identical otherwise
(same binary format, same compression algorithm).

Jelly was specifically designed to work with streams, so if your
application involves streaming RDF over gRPC, Kafka, or similar, then Jelly
may be able offer you much better performance than traditional
serializations. It should also be faster for plain old files as well,
though.

Any questions, feature suggestions, pull requests, or bug reports are of
course very much welcome. :) I'm very curious if you will find this project
useful and if you see any possible areas of improvement. The issue tracker
is here: https://github.com/Jelly-RDF/jelly-jvm/issues

If you want to try out the Jena JAR plugin with Jelly, you can follow the
installation instructions here
<https://w3id.org/jelly/jelly-jvm/dev/getting-started-plugins/> and try
loading any of the datasets listed on the bottom of this page
<https://w3id.org/riverbench/v/dev/profiles/flat-mixed-rdfstar#jelly-distributions>.
They should "just work" by dropping the downloaded file into Fuseki UI, or
by using the usual CLI utilities of Jena. You can also download the
equivalent datasets in N-Triples for comparison.

Please reach out to me in case of any questions. And thanks to Andy for
suggesting posting this to the mailing list.

-- 
Piotr Sowiński / Ostrzyciel

Reply via email to