diff --git a/docs/performance/index.md b/docs/performance/index.md
index 1493e02..55e228b 100644
--- a/docs/performance/index.md
+++ b/docs/performance/index.md
@@ -1,7 +1,7 @@
# Performance benchmarks
-[Jelly-JVM]({{ jvm_link() }}) 4.0.0 was benchmarked against the serialization formats built into Apache Jena and Eclipse RDF4J:
+[Jelly-JVM]({{ jvm_link() }}) 4.0.0 was benchmarked against the serialization formats built into Apache Jena and Eclipse RDF4J, and [pyjelly]({{ python_link() }}) 0.9.0 against the formats built into RDFLib:
-- **[Jelly-RDF](rdf.md)** – RDF triples and quads, compared with N-Triples / N-Quads, Turtle / TriG, RDF/XML, JSON-LD, RDF/JSON, Jena's binary formats, and RDF4J Binary.
-- **[Jelly-SPARQL](sparql.md)** – SPARQL query results, compared with the XML, JSON, and TSV results formats, Jena's binary formats, and RDF4J Binary.
-- **[Jelly-RDF 1.1 vs 1.2](rdf-1-1-vs-1-2.md)** – Jelly-RDF 1.2 (the default in Jelly-JVM 4.0.0) compared with Jelly-RDF 1.1.
+- **[Jelly-RDF](rdf.md)** – RDF triples and quads, compared with the formats in Apache Jena, Eclipse RDF4J, and RDFLib.
+- **[Jelly-SPARQL](sparql.md)** – SPARQL query results, compared with the formats in Apache Jena, Eclipse RDF4J, and RDFLib.
+- **[Jelly-RDF 1.1 vs 1.2](rdf-1-1-vs-1-2.md)** – Jelly-RDF 1.2 (the default in Jelly-JVM 4.0.0 and pyjelly 0.9.0) compared with Jelly-RDF 1.1.
diff --git a/docs/performance/rdf-1-1-vs-1-2.md b/docs/performance/rdf-1-1-vs-1-2.md
index e04ea4a..f126ed7 100644
--- a/docs/performance/rdf-1-1-vs-1-2.md
+++ b/docs/performance/rdf-1-1-vs-1-2.md
@@ -1,10 +1,17 @@
# Jelly-RDF 1.1 vs 1.2
-Jelly-RDF 1.2 features a new column layout for stream frames, which improves throughput and reduces serialized size (see the [changes from Jelly-RDF 1.1](../specification/serialization.md#changes-from-jelly-rdf-11)). The first version of Jelly-JVM to support it is 4.0.0, which also includes other performance improvements in the implementation itself that made Jelly-RDF 1.1 faster as well. This page compares Jelly-RDF 1.2 with Jelly-RDF 1.1, and also shows the performance improvements coming from the implementation.
+Jelly-RDF 1.2 features a new column layout for stream frames, which improves throughput and reduces serialized size (see the [changes from Jelly-RDF 1.1](../specification/serialization.md#changes-from-jelly-rdf-11)). The first versions to support it are Jelly-JVM 4.0.0 and pyjelly 0.9.0. Both also include other performance improvements in the implementation itself that made Jelly-RDF 1.1 faster as well. This page compares Jelly-RDF 1.2 with Jelly-RDF 1.1, and also shows the performance improvements coming from the implementations.
The charts are interactive – hover over them for details.
-## Benchmark setup
+**Jump to:**
+
+- **[Jelly-JVM](#jelly-jvm)** – Apache Jena and Eclipse RDF4J
+- **[pyjelly](#pyjelly)** – RDFLib and the generic API
+
+## Jelly-JVM
+
+### Benchmark setup
The same datasets, hardware, software, and method were used as in the [Jelly-RDF benchmarks](rdf.md#benchmark-setup), with the "big" preset. Three versions were compared:
@@ -14,9 +21,9 @@ The same datasets, hardware, software, and method were used as in the [Jelly-RDF
Each of the three versions was run 6 times for every dataset. The result for a dataset is the median of the 6 runs.
-## Results
+### Results
-### Throughput
+#### Throughput
--8<-- "snippets/performance/e-versions.html"
@@ -32,7 +39,7 @@ Throughput on each of the 13 datasets (median of 6 runs). Log scale.
--8<-- "snippets/performance/k-speed-variants.data.html"
-### Serialized size
+#### Serialized size
--8<-- "snippets/performance/i-size-summary.html"
@@ -52,7 +59,7 @@ Serialized size on each of the 13 datasets, uncompressed and with zstd. Sorted b
--8<-- "snippets/performance/j-size-variants.data.html"
-### Throughput and serialized size
+#### Throughput and serialized size
--8<-- "snippets/performance/l-speed-size-variants.html"
@@ -61,8 +68,64 @@ Size (uncompressed) against throughput on each of the 13 datasets. Each line con
--8<-- "snippets/performance/l-speed-size-variants.data.html"
+## pyjelly
+
+### Benchmark setup
+
+The same datasets, hardware, software, and method were used as in the [pyjelly Jelly-RDF benchmarks](rdf.md#pyjelly), with pyjelly's streaming API and the "big" preset. Throughput was measured with RDFLib terms and with the terms of pyjelly's [generic API]({{ python_link('generic-sink') }}), which does not use RDFLib. Three versions were compared:
+
+- **0.8 (Jelly-RDF 1.0)** – pyjelly 0.8.2, Jelly-RDF 1.0, frame size 250 (its defaults)
+- **0.9 (Jelly-RDF 1.1)** – pyjelly 0.9.0 writing Jelly-RDF 1.1, frame size 1024
+- **0.9 (Jelly-RDF 1.2)** – pyjelly 0.9.0, Jelly-RDF 1.2, frame size 1024
+
+Each of the three versions was run 6 times for every dataset. The result for a dataset is the median of the 6 runs. Serialized sizes are from the RDFLib integration (the generic API writes the same bytes in 0.9.0, and within 3% of them in 0.8.2).
+
+### Results
+
+#### Throughput
+
+--8<-- "snippets/performance/py-e-versions.html"
+
+Step-by-step throughput improvements: the code changes in pyjelly 0.9.0 (with Jelly-RDF 1.1), and the Jelly-RDF 1.2 format. Teal: geometric mean over 13 datasets, gray: each dataset.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-e-versions.data.html"
+
+--8<-- "snippets/performance/py-k-speed-variants.html"
+
+Throughput on each of the 13 datasets (median of 6 runs). Log scale.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-k-speed-variants.data.html"
+
+#### Serialized size
+
+--8<-- "snippets/performance/py-i-size-summary.html"
+
+Serialized size, geometric mean over 13 datasets.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-i-size-summary.data.html"
+
+--8<-- "snippets/performance/py-j-size-variants.html"
+
+Serialized size on each of the 13 datasets, uncompressed and with zstd. Sorted by how much smaller Jelly-RDF 1.2 is. Log scale.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-j-size-variants.data.html"
+
+#### Throughput and serialized size
+
+--8<-- "snippets/performance/py-l-speed-size-variants.html"
+
+Size (uncompressed) against throughput on each of the 13 datasets. Each line connects a dataset's results for 0.8 (Jelly-RDF 1.0) and 0.9 (Jelly-RDF 1.2). Up and to the left is better. Log scales.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-l-speed-size-variants.data.html"
+
## See also
- [Jelly-RDF benchmarks](rdf.md)
- [Jelly-RDF 1.2 specification](../specification/serialization.md)
-- [Benchmark code](https://github.com/Jelly-RDF/jelly-jvm/tree/main/jmh)
+- [Jelly-JVM benchmark code](https://github.com/Jelly-RDF/jelly-jvm/tree/main/jmh)
+- [pyjelly benchmark code](https://github.com/Jelly-RDF/pyjelly/tree/main/benchmarks)
diff --git a/docs/performance/rdf.md b/docs/performance/rdf.md
index 33d8db2..0aaa885 100644
--- a/docs/performance/rdf.md
+++ b/docs/performance/rdf.md
@@ -1,12 +1,19 @@
# Jelly-RDF benchmarks
-The following results were obtained by benchmarking [Jelly-JVM]({{ jvm_link() }}) 4.0.0 against the RDF serialization formats built into Apache Jena and Eclipse RDF4J. For SPARQL query results, see [Jelly-SPARQL benchmarks](sparql.md).
+The following results were obtained by benchmarking [Jelly-JVM]({{ jvm_link() }}) 4.0.0 against the RDF serialization formats built into Apache Jena and Eclipse RDF4J, and [pyjelly]({{ python_link() }}) 0.9.0 against the formats built into RDFLib. For SPARQL query results, see [Jelly-SPARQL benchmarks](sparql.md).
The benchmarks were performed on flat streams of RDF triples or quads.
The charts are interactive – hover over them for details.
-## Benchmark setup
+**Jump to:**
+
+- **[Jelly-JVM](#jelly-jvm)** – Apache Jena and Eclipse RDF4J
+- **[pyjelly](#pyjelly)** – RDFLib
+
+## Jelly-JVM
+
+### Benchmark setup
All benchmarks were performed on the first 100,000 statements of each dataset in [RiverBench](https://w3id.org/riverbench/v/dev) (development version, October 2026), except `yago-annotated-facts`, which uses RDF-star. Out of the 13 used datasets, 3 include RDF quads (`assist-iot-weather-graphs`, `citypulse-traffic-graphs`, `nanopubs`).
@@ -20,7 +27,7 @@ Hardware: NVIDIA DGX Spark (GB10 Grace Blackwell Superchip with 10 Cortex-X925 a
Software: Linux kernel 6.17, GraalVM CE 25.4 (Java 25.0.4), Apache Jena 6.2.0, Eclipse RDF4J 6.1.0, [Jelly-JVM]({{ jvm_link() }}) 4.0.0.
-### Tested methods
+#### Tested methods
- W3C N-Triples / N-Quads (Apache Jena, Eclipse RDF4J)
- W3C Turtle / TriG (Apache Jena `TURTLE_BLOCKS` and `TRIG_BLOCKS`, Eclipse RDF4J without pretty-printing)
@@ -40,9 +47,9 @@ Software: Linux kernel 6.17, GraalVM CE 25.4 (Java 25.0.4), Apache Jena 6.2.0, E
See the [dedicated Jelly-RDF 1.1 vs 1.2 comparison](rdf-1-1-vs-1-2.md) for details on the performance improvements.
-## Results
+### Results
-### Throughput
+#### Throughput
--8<-- "snippets/performance/a-overview-rdf.html"
@@ -51,14 +58,14 @@ Throughput, geometric mean over 13 datasets (10 for RDF/JSON and RDF/XML, which
-- \* buffering writer: drops duplicate statements (write throughput still counts every input statement)
+- \* buffering writer: deduplicates statements (write throughput still counts every input statement)
- ° RDF4J's writer is given an OutputStream and writes it one character at a time. With a BufferedWriter it could be 1.28–1.56× faster
--8<-- "snippets/performance/a-overview-rdf.data.html"
-### Throughput and serialized size
+#### Throughput and serialized size
--8<-- "snippets/performance/b-speed-size-rdf-triples.html"
@@ -67,14 +74,14 @@ Serialized size (uncompressed) against throughput, geometric mean over 10 datase
-- \* buffering writer: drops duplicate statements (write throughput still counts every input statement)
+- \* buffering writer: deduplicates statements (write throughput still counts every input statement)
- ° RDF4J's writer is given an OutputStream and writes it one character at a time. With a BufferedWriter it could be 1.28–1.56× faster
--8<-- "snippets/performance/b-speed-size-rdf-triples.data.html"
-### Throughput per dataset
+#### Throughput per dataset
--8<-- "snippets/performance/c-heatmap-rdf.html"
@@ -83,7 +90,7 @@ Throughput on each dataset, in statements/s. The last 3 datasets contain quads.
-- \* buffering writer: drops duplicate statements (write throughput still counts every input statement)
+- \* buffering writer: deduplicates statements (write throughput still counts every input statement)
- § the 3 sweeps differ by more than 10%
- ° RDF4J's writer is given an OutputStream and writes it one character at a time. With a BufferedWriter it could be 1.28–1.56× faster
@@ -98,7 +105,7 @@ Throughput on each dataset (dots) and the geometric mean over 10 datasets (bar).
-- \* buffering writer: drops duplicate statements (write throughput still counts every input statement)
+- \* buffering writer: deduplicates statements (write throughput still counts every input statement)
- § the 3 sweeps differ by more than 10%
- ° RDF4J's writer is given an OutputStream and writes it one character at a time. With a BufferedWriter it could be 1.28–1.56× faster
@@ -106,7 +113,7 @@ Throughput on each dataset (dots) and the geometric mean over 10 datasets (bar).
--8<-- "snippets/performance/d-spread-rdf-triples.data.html"
-### Serialized size
+#### Serialized size
--8<-- "snippets/performance/f-size-rdf-triples.html"
@@ -115,16 +122,125 @@ Serialized size in bytes/statement, uncompressed and with zstd, geometric mean o
-- \* buffering writer: drops duplicate statements (write throughput still counts every input statement)
+- \* buffering writer: deduplicates statements (write throughput still counts every input statement)
--8<-- "snippets/performance/f-size-rdf-triples.data.html"
+## pyjelly
+
+### Benchmark setup
+
+The same 13 datasets (first 100,000 statements of each) and the same hardware were used as for [Jelly-JVM](#benchmark-setup).
+
+- Each method/dataset combination was run in 3 separate Python processes (sweeps), each with 1 × 1 s warmup and 5 × 1 s measurement. The result for a dataset is the median of the 3 sweeps.
+- Serialization: the data was preloaded into memory as a list of RDFLib terms and serialized to a null output stream. RDFLib can write Turtle, RDF/XML, and JSON-LD only from a whole `Graph` or `Dataset`, so for these formats the graph was built beforehand, and only `serialize` was measured.
+- Deserialization: the data was parsed from bytes in memory. Only the parsed statements were counted in the throughput numbers.
+- Writers were given the prefixes of the dataset.
+- Averages are geometric means over the datasets.
+
+Hardware: the same NVIDIA DGX Spark, pinned to 5 Cortex-X925 cores. The benchmarks are single-threaded.
+
+Software: Linux kernel 6.17, CPython 3.15.1, RDFLib 7.6.0, protobuf 7.36.2 (upb backend), [pyjelly]({{ python_link() }}) 0.9.0 (compiled with mypyc).
+
+#### Tested methods
+
+- W3C N-Triples / N-Quads (RDFLib's serializer, run line by line over the list of statements)
+- W3C Turtle / TriG (RDFLib)
+- W3C RDF/XML (RDFLib) – triples only. RDFLib can't parse its own RDF/XML for 4 of the datasets, so there are results for 6 datasets.
+- W3C JSON-LD (RDFLib)
+- Jelly (pyjelly 0.9.0, Jelly-RDF 1.2, "big" preset), with pyjelly's streaming API (`flat_stream_to_file` and `parse_jelly_flat`)
+ ```protobuf
+ max_name_table_size = 4000;
+ max_prefix_table_size = 150;
+ max_datatype_table_size = 32;
+ ```
+- Jelly (Graph API) – the same, through RDFLib's plugin API (`Graph.serialize(format="jelly")` and `Graph.parse(format="jelly")`)
+
+RDFLib changes some literals when parsing them (e.g., `"73"^^xsd:float` is parsed as `"73.0"`), so N-Triples, Turtle, RDF/XML, and JSON-LD don't round-trip exactly on 7 of the 13 datasets. These results are still included. Jelly round-trips exactly on all datasets.
+
+### Results
+
+#### Throughput
+
+--8<-- "snippets/performance/py-a-overview-rdf.html"
+
+Throughput, geometric mean over 13 datasets (6 for RDF/XML). Log scale.
+{ .jc-caption }
+
+
+
+- \* writes from an RDFLib `Graph`, which deduplicates statements (throughput counts only the statements written)
+
+
+
+--8<-- "snippets/performance/py-a-overview-rdf.data.html"
+
+#### Throughput and serialized size
+
+--8<-- "snippets/performance/py-b-speed-size-rdf-triples.html"
+
+Serialized size (uncompressed) against throughput, geometric mean over 10 datasets (6 for RDF/XML). Log scale. Top left is better.
+{ .jc-caption }
+
+
+
+- \* writes from an RDFLib `Graph`, which deduplicates statements (throughput counts only the statements written)
+
+
+
+--8<-- "snippets/performance/py-b-speed-size-rdf-triples.data.html"
+
+#### Throughput per dataset
+
+--8<-- "snippets/performance/py-c-heatmap-rdf.html"
+
+Throughput on each dataset, in statements/s. The last 3 datasets contain quads.
+{ .jc-caption }
+
+
+
+- \* writes from an RDFLib `Graph`, which deduplicates statements (throughput counts only the statements written)
+
+
+
+--8<-- "snippets/performance/py-c-heatmap-rdf.data.html"
+
+--8<-- "snippets/performance/py-d-spread-rdf-triples.html"
+
+Throughput on each dataset (dots) and the geometric mean over 10 datasets (bar; 6 for RDF/XML). Log scale.
+{ .jc-caption }
+
+
+
+- \* writes from an RDFLib `Graph`, which deduplicates statements (throughput counts only the statements written)
+
+
+
+--8<-- "snippets/performance/py-d-spread-rdf-triples.data.html"
+
+#### Serialized size
+
+--8<-- "snippets/performance/py-f-size-rdf-triples.html"
+
+Serialized size in bytes/statement, uncompressed and with zstd, geometric mean over 10 datasets (6 for RDF/XML). Log scale.
+{ .jc-caption }
+
+
+
+- \* writes from an RDFLib `Graph`, which deduplicates statements (throughput counts only the statements written)
+
+
+
+--8<-- "snippets/performance/py-f-size-rdf-triples.data.html"
+
## See also
- [Jelly-SPARQL benchmarks](sparql.md)
-- [Benchmark code](https://github.com/Jelly-RDF/jelly-jvm/tree/main/jmh)
+- [Jelly-JVM benchmark code](https://github.com/Jelly-RDF/jelly-jvm/tree/main/jmh)
- [RiverBench benchmark suite](https://w3id.org/riverbench/)
- [Jelly-JVM]({{ jvm_link() }}) – the Jelly implementation used in the benchmarks
- [User guide](../user-guide.md)
+- [pyjelly benchmark code](https://github.com/Jelly-RDF/pyjelly/tree/main/benchmarks)
+- [pyjelly]({{ python_link() }}) – the Jelly implementation for Python
diff --git a/docs/performance/sparql.md b/docs/performance/sparql.md
index d3d11fb..cbf0951 100644
--- a/docs/performance/sparql.md
+++ b/docs/performance/sparql.md
@@ -1,14 +1,21 @@
# Jelly-SPARQL benchmarks
-The following results were obtained by benchmarking [Jelly-JVM]({{ jvm_link() }}) 4.0.0 against the SPARQL query results formats built into Apache Jena and Eclipse RDF4J. For RDF serialization, see [Jelly-RDF benchmarks](rdf.md).
+The following results were obtained by benchmarking [Jelly-JVM]({{ jvm_link() }}) 4.0.0 against the SPARQL query results formats built into Apache Jena and Eclipse RDF4J, and [pyjelly]({{ python_link() }}) 0.9.0 against the formats built into RDFLib. For RDF serialization, see [Jelly-RDF benchmarks](rdf.md).
The charts are interactive – hover over them for details.
-## Benchmark setup
+**Jump to:**
+
+- **[Jelly-JVM](#jelly-jvm)** – Apache Jena and Eclipse RDF4J
+- **[pyjelly](#pyjelly)** – RDFLib
+
+## Jelly-JVM
+
+### Benchmark setup
The same datasets, hardware, software, and method were used as in the [Jelly-RDF benchmarks](rdf.md#benchmark-setup). Each of the 13 datasets was turned into a single SPARQL result set with one row per statement. Throughput is given in cells (bound values) per second.
-### Tested methods
+#### Tested methods
- [SPARQL Query Results XML Format](https://www.w3.org/TR/rdf-sparql-XMLres/) (SRX) (Apache Jena, Eclipse RDF4J)
- [SPARQL Query Results JSON Format](https://www.w3.org/TR/sparql11-results-json/) (SRJ) (Apache Jena, Eclipse RDF4J)
@@ -23,9 +30,9 @@ The same datasets, hardware, software, and method were used as in the [Jelly-RDF
max_datatype_table_size = 64;
```
-## Results
+### Results
-### Throughput
+#### Throughput
--8<-- "snippets/performance/a-overview-sparql.html"
@@ -40,7 +47,7 @@ Throughput, geometric mean over 10 datasets. Log scale.
--8<-- "snippets/performance/a-overview-sparql.data.html"
-### Throughput and serialized size
+#### Throughput and serialized size
--8<-- "snippets/performance/b-speed-size-sparql.html"
@@ -55,7 +62,7 @@ Serialized size (uncompressed) against throughput, geometric mean over 10 datase
--8<-- "snippets/performance/b-speed-size-sparql.data.html"
-### Throughput per dataset
+#### Throughput per dataset
--8<-- "snippets/performance/c-heatmap-sparql.html"
@@ -87,7 +94,7 @@ Throughput on each dataset (dots) and the geometric mean over 10 datasets (bar).
--8<-- "snippets/performance/d-spread-sparql.data.html"
-### Serialized size
+#### Serialized size
--8<-- "snippets/performance/f-size-sparql.html"
@@ -96,10 +103,78 @@ Serialized size in bytes/row, uncompressed and with zstd, geometric mean over 10
--8<-- "snippets/performance/f-size-sparql.data.html"
+## pyjelly
+
+### Benchmark setup
+
+The same hardware, software, and method were used as in the [pyjelly Jelly-RDF benchmarks](rdf.md#pyjelly). Each of the 13 datasets was turned into a single SPARQL result set with one row per statement (`?s ?p ?o`, plus `?g` for quads). Throughput is given in cells (rows × variables) per second.
+
+#### Tested methods
+
+- [SPARQL Query Results XML Format](https://www.w3.org/TR/rdf-sparql-XMLres/) (SRX) (RDFLib)
+- [SPARQL Query Results JSON Format](https://www.w3.org/TR/sparql11-results-json/) (SRJ) (RDFLib)
+- [SPARQL Query Results TSV Format](https://www.w3.org/TR/sparql11-results-csv-tsv/) (RDFLib) – read only, because RDFLib can't write TSV results
+ - CSV was not included, because it does not preserve datatypes or language tags.
+- Jelly-SPARQL (pyjelly 0.9.0, through RDFLib's plugin API: `Result.serialize(format="jelly")` and `Result.parse(format="jelly")`, default preset)
+ ```protobuf
+ max_name_table_size = 8192;
+ max_prefix_table_size = 1024;
+ max_datatype_table_size = 64;
+ ```
+
+Writing starts from an RDFLib `Result`, and reading returns a whole `Result`. As with RDF, RDFLib changes some literals when parsing SRX and SRJ (on 8 of the 13 datasets). These results are still included.
+
+### Results
+
+#### Throughput
+
+--8<-- "snippets/performance/py-a-overview-sparql.html"
+
+Throughput, geometric mean over 13 datasets (12 for TSV). Log scale.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-a-overview-sparql.data.html"
+
+#### Throughput and serialized size
+
+--8<-- "snippets/performance/py-b-speed-size-sparql.html"
+
+Serialized size (uncompressed) against throughput, geometric mean over 13 datasets. Log scale. Top left is better.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-b-speed-size-sparql.data.html"
+
+#### Throughput per dataset
+
+--8<-- "snippets/performance/py-c-heatmap-sparql.html"
+
+Throughput on each dataset, in cells/s. RDFLib can't parse the TSV for `linked-spending`.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-c-heatmap-sparql.data.html"
+
+--8<-- "snippets/performance/py-d-spread-sparql.html"
+
+Throughput on each dataset (dots) and the geometric mean over 13 datasets (bar; 12 for TSV). Log scale.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-d-spread-sparql.data.html"
+
+#### Serialized size
+
+--8<-- "snippets/performance/py-f-size-sparql.html"
+
+Serialized size in bytes/row, uncompressed and with zstd, geometric mean over 13 datasets. Log scale.
+{ .jc-caption }
+
+--8<-- "snippets/performance/py-f-size-sparql.data.html"
+
## See also
- [Jelly-RDF benchmarks](rdf.md)
- [Jelly-SPARQL specification](../specification/sparql.md)
-- [Benchmark code](https://github.com/Jelly-RDF/jelly-jvm/tree/main/jmh)
+- [Jelly-JVM benchmark code](https://github.com/Jelly-RDF/jelly-jvm/tree/main/jmh)
- [RiverBench benchmark suite](https://w3id.org/riverbench/)
- [Jelly-JVM]({{ jvm_link() }}) – the Jelly implementation used in the benchmarks
+- [pyjelly benchmark code](https://github.com/Jelly-RDF/pyjelly/tree/main/benchmarks)
+- [pyjelly]({{ python_link() }}) – the Jelly implementation for Python
diff --git a/snippets/performance/a-overview-sparql.html b/snippets/performance/a-overview-sparql.html
index 89176b6..22b3843 100644
--- a/snippets/performance/a-overview-sparql.html
+++ b/snippets/performance/a-overview-sparql.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/b-speed-size-rdf-triples.html b/snippets/performance/b-speed-size-rdf-triples.html
index 12a9f20..e179be8 100644
--- a/snippets/performance/b-speed-size-rdf-triples.html
+++ b/snippets/performance/b-speed-size-rdf-triples.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/b-speed-size-sparql.html b/snippets/performance/b-speed-size-sparql.html
index fcfcf38..ec4c6c4 100644
--- a/snippets/performance/b-speed-size-sparql.html
+++ b/snippets/performance/b-speed-size-sparql.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/c-heatmap-rdf.html b/snippets/performance/c-heatmap-rdf.html
index 86d9207..4b50830 100644
--- a/snippets/performance/c-heatmap-rdf.html
+++ b/snippets/performance/c-heatmap-rdf.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/c-heatmap-sparql.html b/snippets/performance/c-heatmap-sparql.html
index e2d0b3d..c8e1fab 100644
--- a/snippets/performance/c-heatmap-sparql.html
+++ b/snippets/performance/c-heatmap-sparql.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/d-spread-rdf-triples.html b/snippets/performance/d-spread-rdf-triples.html
index 31b276e..ad9adb5 100644
--- a/snippets/performance/d-spread-rdf-triples.html
+++ b/snippets/performance/d-spread-rdf-triples.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/d-spread-sparql.html b/snippets/performance/d-spread-sparql.html
index 2b232f2..b1ec0d0 100644
--- a/snippets/performance/d-spread-sparql.html
+++ b/snippets/performance/d-spread-sparql.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/k-speed-variants.html b/snippets/performance/k-speed-variants.html
index aeeb59a..ac5192c 100644
--- a/snippets/performance/k-speed-variants.html
+++ b/snippets/performance/k-speed-variants.html
@@ -1 +1 @@
-
+
diff --git a/snippets/performance/py-a-overview-rdf.data.html b/snippets/performance/py-a-overview-rdf.data.html
new file mode 100644
index 0000000..d9a17b6
--- /dev/null
+++ b/snippets/performance/py-a-overview-rdf.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Format
Throughput (statements/s, geomean)
Slowest dataset
Fastest dataset
Datasets
Notes
Write
Jelly
2,180,409
1,453,147
2,666,478
13
Write
Jelly (Graph API)
1,897,977
1,298,373
2,301,996
13
*
Write
N-Triples / N-Quads
810,316
617,124
915,760
13
Write
RDF/XML
268,656
247,785
324,074
6
*
Write
JSON-LD
92,660
8,394
188,557
13
*
Write
Turtle / TriG
48,399
13,649
105,832
13
*
Read
Jelly
2,558,978
996,234
4,176,665
13
Read
Jelly (Graph API)
1,844,129
856,220
2,656,142
13
*
Read
JSON-LD
206,427
173,672
252,923
13
*
Read
N-Triples / N-Quads
178,315
137,486
205,172
13
Read
Turtle / TriG
135,959
97,294
163,876
13
*
Read
RDF/XML
117,679
103,891
149,491
6
*
diff --git a/snippets/performance/py-a-overview-rdf.html b/snippets/performance/py-a-overview-rdf.html
new file mode 100644
index 0000000..d28a808
--- /dev/null
+++ b/snippets/performance/py-a-overview-rdf.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-a-overview-sparql.data.html b/snippets/performance/py-a-overview-sparql.data.html
new file mode 100644
index 0000000..a4f78f8
--- /dev/null
+++ b/snippets/performance/py-a-overview-sparql.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Format
Throughput (cells/s, geomean)
Slowest dataset
Fastest dataset
Datasets
Notes
Write
Jelly
7,002,774
4,386,462
9,788,516
13
Write
SRJ (JSON)
1,307,458
1,170,269
1,481,835
13
Write
SRX (XML)
328,068
305,757
338,640
13
Read
Jelly
6,546,422
2,460,429
11,210,260
13
Read
SRJ (JSON)
554,048
457,414
604,520
13
Read
SRX (XML)
322,576
277,064
351,174
13
Read
TSV
32,424
30,009
33,831
12
diff --git a/snippets/performance/py-a-overview-sparql.html b/snippets/performance/py-a-overview-sparql.html
new file mode 100644
index 0000000..c1203a9
--- /dev/null
+++ b/snippets/performance/py-a-overview-sparql.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-b-speed-size-rdf-triples.data.html b/snippets/performance/py-b-speed-size-rdf-triples.data.html
new file mode 100644
index 0000000..5734cbc
--- /dev/null
+++ b/snippets/performance/py-b-speed-size-rdf-triples.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Format
Throughput (statements/s, geomean)
Size (bytes/statement, raw)
zstd
Notes
Write
Jelly (Graph API)
1,952,123
21.2
4.39
*
Write
Jelly
2,169,373
22
4.58
Write
Turtle
60,497
64.8
4.54
*
Write
RDF/XML
268,656
105.5
6.32
*
Write
JSON-LD
160,998
148.6
8.2
*
Write
N-Triples
871,760
190.9
8.75
Read
Jelly (Graph API)
1,755,134
21.2
4.39
*
Read
Jelly
2,346,025
22
4.58
Read
Turtle
143,110
64.8
4.54
*
Read
RDF/XML
117,679
105.5
6.32
*
Read
JSON-LD
209,174
148.6
8.2
*
Read
N-Triples
190,408
190.9
8.75
diff --git a/snippets/performance/py-b-speed-size-rdf-triples.html b/snippets/performance/py-b-speed-size-rdf-triples.html
new file mode 100644
index 0000000..41a6eca
--- /dev/null
+++ b/snippets/performance/py-b-speed-size-rdf-triples.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-b-speed-size-sparql.data.html b/snippets/performance/py-b-speed-size-sparql.data.html
new file mode 100644
index 0000000..fd86472
--- /dev/null
+++ b/snippets/performance/py-b-speed-size-sparql.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Format
Throughput (cells/s, geomean)
Size (bytes/row, raw)
zstd
Notes
Write
Jelly
7,002,774
20.9
3.82
Write
SRJ (JSON)
1,307,458
317.5
9.02
Write
SRX (XML)
328,068
346.5
9.2
Read
Jelly
6,546,422
20.9
3.82
Read
SRJ (JSON)
554,048
317.5
9.02
Read
SRX (XML)
322,576
346.5
9.2
diff --git a/snippets/performance/py-b-speed-size-sparql.html b/snippets/performance/py-b-speed-size-sparql.html
new file mode 100644
index 0000000..170e914
--- /dev/null
+++ b/snippets/performance/py-b-speed-size-sparql.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-c-heatmap-rdf.data.html b/snippets/performance/py-c-heatmap-rdf.data.html
new file mode 100644
index 0000000..d504dea
--- /dev/null
+++ b/snippets/performance/py-c-heatmap-rdf.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Dataset
Format
Throughput (statements/s, median)
Run min
Run max
Notes
Write
assist-iot-weather
JSON-LD
156,131
155,902
156,181
*
Write
assist-iot-weather
Jelly
2,323,361
2,320,772
2,333,926
Write
assist-iot-weather
Jelly (Graph API)
1,975,091
1,964,769
1,975,111
*
Write
assist-iot-weather
N-Triples
845,453
842,094
850,094
Write
assist-iot-weather
RDF/XML
247,785
247,692
250,234
*
Write
assist-iot-weather
Turtle
57,522
57,235
58,084
*
Write
assist-iot-weather-graphs
JSON-LD
14,089
14,083
14,639
Write
assist-iot-weather-graphs
Jelly
2,666,478
2,659,005
2,678,633
Write
assist-iot-weather-graphs
Jelly (Graph API)
2,169,312
2,159,909
2,187,469
Write
assist-iot-weather-graphs
N-Quads
626,041
621,878
631,902
Write
assist-iot-weather-graphs
TriG
13,649
13,425
13,816
Write
citypulse-traffic
JSON-LD
149,329
148,545
149,464
Write
citypulse-traffic
Jelly
2,118,056
2,113,622
2,134,360
Write
citypulse-traffic
Jelly (Graph API)
1,919,632
1,913,096
1,953,681
Write
citypulse-traffic
N-Triples
915,183
912,858
917,191
Write
citypulse-traffic
Turtle
65,332
65,301
65,538
Write
citypulse-traffic-graphs
JSON-LD
26,824
26,611
26,855
Write
citypulse-traffic-graphs
Jelly
2,079,018
2,078,658
2,080,320
Write
citypulse-traffic-graphs
Jelly (Graph API)
1,624,870
1,614,594
1,631,401
Write
citypulse-traffic-graphs
N-Quads
663,074
659,315
665,575
Write
citypulse-traffic-graphs
TriG
24,153
24,080
24,620
Write
dbpedia-live
JSON-LD
147,932
145,168
148,968
*
Write
dbpedia-live
Jelly
1,453,147
1,407,394
1,459,057
Write
dbpedia-live
Jelly (Graph API)
1,298,373
1,298,050
1,304,836
*
Write
dbpedia-live
N-Triples
883,399
874,407
898,223
Write
dbpedia-live
Turtle
14,614
14,579
14,651
*
Write
digital-agenda-indicators
JSON-LD
157,671
157,013
157,998
Write
digital-agenda-indicators
Jelly
2,454,513
2,425,026
2,515,395
Write
digital-agenda-indicators
Jelly (Graph API)
2,286,997
2,283,431
2,302,487
Write
digital-agenda-indicators
N-Triples
840,795
836,188
846,117
Write
digital-agenda-indicators
RDF/XML
278,630
278,029
280,148
Write
digital-agenda-indicators
Turtle
86,419
86,275
86,460
Write
linked-spending
JSON-LD
167,549
163,909
168,538
*
Write
linked-spending
Jelly
2,511,900
2,479,122
2,519,046
Write
linked-spending
Jelly (Graph API)
2,272,301
2,247,494
2,272,459
*
Write
linked-spending
N-Triples
874,912
871,192
878,037
Write
linked-spending
Turtle
64,629
64,601
65,120
*
Write
lod-katrina
JSON-LD
156,475
155,867
159,234
*
Write
lod-katrina
Jelly
2,147,431
2,102,062
2,149,892
Write
lod-katrina
Jelly (Graph API)
1,955,748
1,948,222
1,972,898
*
Write
lod-katrina
N-Triples
840,381
836,291
842,402
Write
lod-katrina
RDF/XML
252,535
250,919
253,427
*
Write
lod-katrina
Turtle
46,667
46,562
46,790
*
Write
muziekweb
JSON-LD
169,966
168,316
170,641
Write
muziekweb
Jelly
1,997,337
1,994,877
2,015,253
Write
muziekweb
Jelly (Graph API)
1,798,531
1,785,751
1,806,807
Write
muziekweb
N-Triples
890,581
887,392
897,987
Write
muziekweb
RDF/XML
260,730
257,794
260,835
Write
muziekweb
Turtle
63,957
63,727
64,243
Write
nanopubs
JSON-LD
8,394
8,322
8,429
Write
nanopubs
Jelly
1,967,226
1,965,897
1,974,967
Write
nanopubs
Jelly (Graph API)
1,464,099
1,459,724
1,469,605
Write
nanopubs
N-Quads
617,124
613,516
621,115
Write
nanopubs
TriG
36,940
36,887
37,927
Write
officegraph
JSON-LD
158,183
157,835
160,391
*
Write
officegraph
Jelly
2,104,226
2,026,969
2,139,060
Write
officegraph
Jelly (Graph API)
1,865,806
1,864,217
1,874,540
*
Write
officegraph
N-Triples
852,482
849,263
855,189
Write
officegraph
RDF/XML
255,226
254,408
257,742
*
Write
officegraph
Turtle
105,832
101,676
105,869
*
Write
openaire-lod
JSON-LD
188,557
188,178
189,927
Write
openaire-lod
Jelly
2,611,959
2,599,205
2,640,322
Write
openaire-lod
Jelly (Graph API)
2,301,996
2,244,798
2,310,131
Write
openaire-lod
N-Triples
915,760
915,730
916,758
Write
openaire-lod
RDF/XML
324,074
321,590
324,879
Write
openaire-lod
Turtle
76,565
76,501
76,650
Write
osm2rdf-denmark
JSON-LD
161,884
161,485
162,425
Write
osm2rdf-denmark
Jelly
2,221,167
2,216,903
2,231,552
Write
osm2rdf-denmark
Jelly (Graph API)
2,079,378
2,065,946
2,081,731
Write
osm2rdf-denmark
N-Triples
862,871
861,131
867,697
Write
osm2rdf-denmark
Turtle
88,511
88,019
88,551
Read
assist-iot-weather
JSON-LD
196,570
196,148
197,559
*
Read
assist-iot-weather
Jelly
4,176,665
4,168,743
4,181,203
Read
assist-iot-weather
Jelly (Graph API)
2,634,927
2,620,711
2,638,942
*
Read
assist-iot-weather
N-Triples
200,264
199,260
202,180
Read
assist-iot-weather
RDF/XML
106,564
106,152
106,966
*
Read
assist-iot-weather
Turtle
134,939
134,628
135,129
*
Read
assist-iot-weather-graphs
JSON-LD
199,224
198,862
200,215
Read
assist-iot-weather-graphs
Jelly
3,837,199
3,835,581
3,839,647
Read
assist-iot-weather-graphs
Jelly (Graph API)
2,595,270
2,588,172
2,596,418
Read
assist-iot-weather-graphs
N-Quads
149,740
147,901
151,040
Read
assist-iot-weather-graphs
TriG
128,066
127,420
128,438
Read
citypulse-traffic
JSON-LD
213,154
212,053
213,192
Read
citypulse-traffic
Jelly
3,251,234
3,161,011
3,264,163
Read
citypulse-traffic
Jelly (Graph API)
2,242,104
2,240,151
2,249,524
Read
citypulse-traffic
N-Triples
188,333
185,972
189,312
Read
citypulse-traffic
Turtle
163,310
163,087
163,864
Read
citypulse-traffic-graphs
JSON-LD
199,249
198,572
200,060
Read
citypulse-traffic-graphs
Jelly
3,123,477
3,122,107
3,138,406
Read
citypulse-traffic-graphs
Jelly (Graph API)
2,065,867
2,060,981
2,072,279
Read
citypulse-traffic-graphs
N-Quads
137,486
136,398
137,900
Read
citypulse-traffic-graphs
TriG
120,805
119,690
121,394
Read
dbpedia-live
JSON-LD
173,672
173,533
187,528
*
Read
dbpedia-live
Jelly
996,234
994,520
1,003,894
Read
dbpedia-live
Jelly (Graph API)
856,220
854,554
864,097
*
Read
dbpedia-live
N-Triples
172,743
172,400
173,771
Read
dbpedia-live
Turtle
120,993
120,172
121,178
*
Read
digital-agenda-indicators
JSON-LD
211,369
211,324
212,160
Read
digital-agenda-indicators
Jelly
2,520,473
2,519,898
2,529,169
Read
digital-agenda-indicators
Jelly (Graph API)
1,895,359
1,888,014
1,909,028
Read
digital-agenda-indicators
N-Triples
190,676
189,270
192,255
Read
digital-agenda-indicators
RDF/XML
120,992
120,992
121,339
Read
digital-agenda-indicators
Turtle
145,354
142,971
145,896
Read
linked-spending
JSON-LD
210,246
209,017
210,841
*
Read
linked-spending
Jelly
2,493,829
2,485,041
2,498,485
Read
linked-spending
Jelly (Graph API)
1,863,722
1,858,817
1,863,746
*
Read
linked-spending
N-Triples
184,520
183,612
184,558
Read
linked-spending
Turtle
143,786
143,658
144,139
*
Read
lod-katrina
JSON-LD
212,648
211,686
213,172
*
Read
lod-katrina
Jelly
3,876,593
3,870,078
3,885,309
Read
lod-katrina
Jelly (Graph API)
2,656,142
2,653,059
2,657,495
*
Read
lod-katrina
N-Triples
205,172
201,226
205,413
Read
lod-katrina
RDF/XML
109,666
109,167
110,681
*
Read
lod-katrina
Turtle
160,282
158,487
160,507
*
Read
muziekweb
JSON-LD
197,866
197,079
198,236
Read
muziekweb
Jelly
1,262,114
1,255,990
1,266,458
Read
muziekweb
Jelly (Graph API)
1,081,314
1,078,165
1,087,105
Read
muziekweb
N-Triples
190,055
188,608
190,915
Read
muziekweb
RDF/XML
120,940
120,892
122,057
Read
muziekweb
Turtle
135,936
135,831
136,196
Read
nanopubs
JSON-LD
194,162
193,719
194,386
Read
nanopubs
Jelly
3,333,392
3,313,941
3,340,791
Read
nanopubs
Jelly (Graph API)
1,918,218
1,893,326
1,924,251
Read
nanopubs
N-Quads
142,887
142,748
142,990
Read
nanopubs
TriG
97,294
97,081
98,323
Read
officegraph
JSON-LD
189,991
189,402
190,329
*
Read
officegraph
Jelly
3,674,820
3,665,794
3,678,711
Read
officegraph
Jelly (Graph API)
2,457,454
2,456,885
2,458,103
*
Read
officegraph
N-Triples
188,013
186,215
189,876
Read
officegraph
RDF/XML
103,891
102,514
104,133
*
Read
officegraph
Turtle
114,737
114,356
115,140
*
Read
openaire-lod
JSON-LD
252,923
252,708
253,074
Read
openaire-lod
Jelly
1,977,949
1,968,608
2,006,915
Read
openaire-lod
Jelly (Graph API)
1,574,626
1,565,568
1,581,004
Read
openaire-lod
N-Triples
184,602
184,437
184,742
Read
openaire-lod
RDF/XML
149,491
147,074
149,491
Read
openaire-lod
Turtle
157,839
157,663
158,744
Read
osm2rdf-denmark
JSON-LD
245,248
245,063
246,916
Read
osm2rdf-denmark
Jelly
1,670,086
1,665,073
1,671,799
Read
osm2rdf-denmark
Jelly (Graph API)
1,396,870
1,384,911
1,398,277
Read
osm2rdf-denmark
N-Triples
201,913
199,129
204,132
Read
osm2rdf-denmark
Turtle
163,876
163,135
164,735
diff --git a/snippets/performance/py-c-heatmap-rdf.html b/snippets/performance/py-c-heatmap-rdf.html
new file mode 100644
index 0000000..3474937
--- /dev/null
+++ b/snippets/performance/py-c-heatmap-rdf.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-c-heatmap-sparql.data.html b/snippets/performance/py-c-heatmap-sparql.data.html
new file mode 100644
index 0000000..6219c6b
--- /dev/null
+++ b/snippets/performance/py-c-heatmap-sparql.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Dataset
Format
Throughput (cells/s, median)
Run min
Run max
Notes
Write
assist-iot-weather
Jelly
7,248,530
6,659,919
7,310,541
Write
assist-iot-weather
SRJ (JSON)
1,445,110
1,435,769
1,472,195
Write
assist-iot-weather
SRX (XML)
330,673
328,283
336,313
Write
assist-iot-weather-graphs
Jelly
9,788,516
9,736,850
10,021,440
Write
assist-iot-weather-graphs
SRJ (JSON)
1,448,171
1,436,248
1,448,516
Write
assist-iot-weather-graphs
SRX (XML)
338,640
334,702
342,787
Write
citypulse-traffic
Jelly
6,778,735
6,634,768
6,854,170
Write
citypulse-traffic
SRJ (JSON)
1,234,548
1,214,480
1,267,459
Write
citypulse-traffic
SRX (XML)
325,732
318,169
326,076
Write
citypulse-traffic-graphs
Jelly
8,283,946
8,151,876
8,356,206
Write
citypulse-traffic-graphs
SRJ (JSON)
1,297,095
1,284,884
1,329,894
Write
citypulse-traffic-graphs
SRX (XML)
335,688
326,280
336,575
Write
dbpedia-live
Jelly
4,386,462
4,358,171
4,443,046
Write
dbpedia-live
SRJ (JSON)
1,202,536
1,187,617
1,208,595
Write
dbpedia-live
SRX (XML)
305,757
301,868
306,079
Write
digital-agenda-indicators
Jelly
7,466,402
7,390,011
7,524,708
Write
digital-agenda-indicators
SRJ (JSON)
1,299,829
1,294,731
1,305,172
Write
digital-agenda-indicators
SRX (XML)
336,552
333,682
337,111
Write
linked-spending
Jelly
7,336,993
7,220,850
7,399,349
Write
linked-spending
SRJ (JSON)
1,180,580
1,174,260
1,185,876
Write
linked-spending
SRX (XML)
326,442
326,292
327,836
Write
lod-katrina
Jelly
6,347,624
6,296,575
6,366,590
Write
lod-katrina
SRJ (JSON)
1,404,880
1,404,505
1,413,132
Write
lod-katrina
SRX (XML)
336,666
333,968
339,943
Write
muziekweb
Jelly
5,943,737
5,931,845
5,970,280
Write
muziekweb
SRJ (JSON)
1,207,758
1,201,283
1,220,714
Write
muziekweb
SRX (XML)
319,484
316,789
322,737
Write
nanopubs
Jelly
7,963,360
7,833,788
7,976,921
Write
nanopubs
SRJ (JSON)
1,481,835
1,466,145
1,512,440
Write
nanopubs
SRX (XML)
327,132
323,147
330,449
Write
officegraph
Jelly
6,383,296
6,379,871
6,452,792
Write
officegraph
SRJ (JSON)
1,416,947
1,397,655
1,418,703
Write
officegraph
SRX (XML)
326,480
322,094
330,744
Write
openaire-lod
Jelly
7,796,575
7,729,595
7,898,431
Write
openaire-lod
SRJ (JSON)
1,170,269
1,149,232
1,171,386
Write
openaire-lod
SRX (XML)
329,350
322,173
335,485
Write
osm2rdf-denmark
Jelly
6,802,972
6,791,395
6,838,110
Write
osm2rdf-denmark
SRJ (JSON)
1,265,377
1,256,931
1,276,056
Write
osm2rdf-denmark
SRX (XML)
327,700
320,398
332,650
Read
assist-iot-weather
Jelly
9,873,885
9,856,756
9,955,616
Read
assist-iot-weather
SRJ (JSON)
591,801
587,869
594,789
Read
assist-iot-weather
SRX (XML)
308,469
305,544
308,681
Read
assist-iot-weather
TSV
32,851
32,744
33,076
Read
assist-iot-weather-graphs
Jelly
11,210,260
11,196,586
11,271,504
Read
assist-iot-weather-graphs
SRJ (JSON)
599,294
599,165
610,833
Read
assist-iot-weather-graphs
SRX (XML)
323,955
322,507
325,890
Read
assist-iot-weather-graphs
TSV
33,699
33,670
33,736
Read
citypulse-traffic
Jelly
7,489,121
7,474,374
7,518,502
Read
citypulse-traffic
SRJ (JSON)
576,287
572,470
585,653
Read
citypulse-traffic
SRX (XML)
338,365
338,099
338,467
Read
citypulse-traffic
TSV
33,118
32,947
33,218
Read
citypulse-traffic-graphs
Jelly
9,171,859
9,149,133
9,250,792
Read
citypulse-traffic-graphs
SRJ (JSON)
567,985
565,084
570,857
Read
citypulse-traffic-graphs
SRX (XML)
331,402
327,168
335,062
Read
citypulse-traffic-graphs
TSV
33,745
33,669
33,845
Read
dbpedia-live
Jelly
2,460,429
2,441,178
2,461,789
Read
dbpedia-live
SRJ (JSON)
457,414
452,880
461,107
Read
dbpedia-live
SRX (XML)
277,064
276,841
278,633
Read
dbpedia-live
TSV
30,009
29,651
30,106
Read
digital-agenda-indicators
Jelly
6,610,937
6,586,406
6,649,320
Read
digital-agenda-indicators
SRJ (JSON)
585,121
575,512
588,009
Read
digital-agenda-indicators
SRX (XML)
351,174
348,470
355,152
Read
digital-agenda-indicators
TSV
32,862
32,696
33,229
Read
linked-spending
Jelly
6,158,168
6,132,571
6,175,924
Read
linked-spending
SRJ (JSON)
547,359
543,943
549,355
Read
linked-spending
SRX (XML)
347,101
345,334
348,806
Read
lod-katrina
Jelly
9,152,314
9,118,518
9,161,061
Read
lod-katrina
SRJ (JSON)
596,770
594,926
597,739
Read
lod-katrina
SRX (XML)
316,652
316,441
317,535
Read
lod-katrina
TSV
33,288
33,200
33,352
Read
muziekweb
Jelly
3,153,044
3,126,267
3,169,813
Read
muziekweb
SRJ (JSON)
501,624
501,024
503,458
Read
muziekweb
SRX (XML)
318,083
315,053
318,460
Read
muziekweb
TSV
31,305
31,290
31,736
Read
nanopubs
Jelly
10,172,622
10,165,446
10,202,990
Read
nanopubs
SRJ (JSON)
604,520
601,557
616,270
Read
nanopubs
SRX (XML)
339,157
337,610
339,179
Read
nanopubs
TSV
33,831
33,684
34,077
Read
officegraph
Jelly
8,980,374
8,940,740
8,998,422
Read
officegraph
SRJ (JSON)
553,825
550,456
555,855
Read
officegraph
SRX (XML)
310,235
309,793
310,308
Read
officegraph
TSV
31,582
31,440
32,084
Read
openaire-lod
Jelly
4,885,692
4,867,945
4,903,117
Read
openaire-lod
SRJ (JSON)
505,431
504,579
509,347
Read
openaire-lod
SRX (XML)
306,620
306,437
308,451
Read
openaire-lod
TSV
31,585
31,212
31,755
Read
osm2rdf-denmark
Jelly
4,134,472
4,107,872
4,135,831
Read
osm2rdf-denmark
SRJ (JSON)
538,106
535,619
540,486
Read
osm2rdf-denmark
SRX (XML)
332,974
332,536
333,612
Read
osm2rdf-denmark
TSV
31,474
31,366
31,599
diff --git a/snippets/performance/py-c-heatmap-sparql.html b/snippets/performance/py-c-heatmap-sparql.html
new file mode 100644
index 0000000..4d0be2c
--- /dev/null
+++ b/snippets/performance/py-c-heatmap-sparql.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-d-spread-rdf-triples.data.html b/snippets/performance/py-d-spread-rdf-triples.data.html
new file mode 100644
index 0000000..4f9c730
--- /dev/null
+++ b/snippets/performance/py-d-spread-rdf-triples.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Format
Dataset
Throughput (statements/s, median)
Notes
Write
JSON-LD
assist-iot-weather
156,131
*
Write
JSON-LD
citypulse-traffic
149,329
Write
JSON-LD
dbpedia-live
147,932
*
Write
JSON-LD
digital-agenda-indicators
157,671
Write
JSON-LD
linked-spending
167,549
*
Write
JSON-LD
lod-katrina
156,475
*
Write
JSON-LD
muziekweb
169,966
Write
JSON-LD
officegraph
158,183
*
Write
JSON-LD
openaire-lod
188,557
Write
JSON-LD
osm2rdf-denmark
161,884
Write
Jelly
assist-iot-weather
2,323,361
Write
Jelly
citypulse-traffic
2,118,056
Write
Jelly
dbpedia-live
1,453,147
Write
Jelly
digital-agenda-indicators
2,454,513
Write
Jelly
linked-spending
2,511,900
Write
Jelly
lod-katrina
2,147,431
Write
Jelly
muziekweb
1,997,337
Write
Jelly
officegraph
2,104,226
Write
Jelly
openaire-lod
2,611,959
Write
Jelly
osm2rdf-denmark
2,221,167
Write
Jelly (Graph API)
assist-iot-weather
1,975,091
*
Write
Jelly (Graph API)
citypulse-traffic
1,919,632
Write
Jelly (Graph API)
dbpedia-live
1,298,373
*
Write
Jelly (Graph API)
digital-agenda-indicators
2,286,997
Write
Jelly (Graph API)
linked-spending
2,272,301
*
Write
Jelly (Graph API)
lod-katrina
1,955,748
*
Write
Jelly (Graph API)
muziekweb
1,798,531
Write
Jelly (Graph API)
officegraph
1,865,806
*
Write
Jelly (Graph API)
openaire-lod
2,301,996
Write
Jelly (Graph API)
osm2rdf-denmark
2,079,378
Write
N-Triples
assist-iot-weather
845,453
Write
N-Triples
citypulse-traffic
915,183
Write
N-Triples
dbpedia-live
883,399
Write
N-Triples
digital-agenda-indicators
840,795
Write
N-Triples
linked-spending
874,912
Write
N-Triples
lod-katrina
840,381
Write
N-Triples
muziekweb
890,581
Write
N-Triples
officegraph
852,482
Write
N-Triples
openaire-lod
915,760
Write
N-Triples
osm2rdf-denmark
862,871
Write
RDF/XML
assist-iot-weather
247,785
*
Write
RDF/XML
digital-agenda-indicators
278,630
Write
RDF/XML
lod-katrina
252,535
*
Write
RDF/XML
muziekweb
260,730
Write
RDF/XML
officegraph
255,226
*
Write
RDF/XML
openaire-lod
324,074
Write
Turtle
assist-iot-weather
57,522
*
Write
Turtle
citypulse-traffic
65,332
Write
Turtle
dbpedia-live
14,614
*
Write
Turtle
digital-agenda-indicators
86,419
Write
Turtle
linked-spending
64,629
*
Write
Turtle
lod-katrina
46,667
*
Write
Turtle
muziekweb
63,957
Write
Turtle
officegraph
105,832
*
Write
Turtle
openaire-lod
76,565
Write
Turtle
osm2rdf-denmark
88,511
Read
JSON-LD
assist-iot-weather
196,570
*
Read
JSON-LD
citypulse-traffic
213,154
Read
JSON-LD
dbpedia-live
173,672
*
Read
JSON-LD
digital-agenda-indicators
211,369
Read
JSON-LD
linked-spending
210,246
*
Read
JSON-LD
lod-katrina
212,648
*
Read
JSON-LD
muziekweb
197,866
Read
JSON-LD
officegraph
189,991
*
Read
JSON-LD
openaire-lod
252,923
Read
JSON-LD
osm2rdf-denmark
245,248
Read
Jelly
assist-iot-weather
4,176,665
Read
Jelly
citypulse-traffic
3,251,234
Read
Jelly
dbpedia-live
996,234
Read
Jelly
digital-agenda-indicators
2,520,473
Read
Jelly
linked-spending
2,493,829
Read
Jelly
lod-katrina
3,876,593
Read
Jelly
muziekweb
1,262,114
Read
Jelly
officegraph
3,674,820
Read
Jelly
openaire-lod
1,977,949
Read
Jelly
osm2rdf-denmark
1,670,086
Read
Jelly (Graph API)
assist-iot-weather
2,634,927
*
Read
Jelly (Graph API)
citypulse-traffic
2,242,104
Read
Jelly (Graph API)
dbpedia-live
856,220
*
Read
Jelly (Graph API)
digital-agenda-indicators
1,895,359
Read
Jelly (Graph API)
linked-spending
1,863,722
*
Read
Jelly (Graph API)
lod-katrina
2,656,142
*
Read
Jelly (Graph API)
muziekweb
1,081,314
Read
Jelly (Graph API)
officegraph
2,457,454
*
Read
Jelly (Graph API)
openaire-lod
1,574,626
Read
Jelly (Graph API)
osm2rdf-denmark
1,396,870
Read
N-Triples
assist-iot-weather
200,264
Read
N-Triples
citypulse-traffic
188,333
Read
N-Triples
dbpedia-live
172,743
Read
N-Triples
digital-agenda-indicators
190,676
Read
N-Triples
linked-spending
184,520
Read
N-Triples
lod-katrina
205,172
Read
N-Triples
muziekweb
190,055
Read
N-Triples
officegraph
188,013
Read
N-Triples
openaire-lod
184,602
Read
N-Triples
osm2rdf-denmark
201,913
Read
RDF/XML
assist-iot-weather
106,564
*
Read
RDF/XML
digital-agenda-indicators
120,992
Read
RDF/XML
lod-katrina
109,666
*
Read
RDF/XML
muziekweb
120,940
Read
RDF/XML
officegraph
103,891
*
Read
RDF/XML
openaire-lod
149,491
Read
Turtle
assist-iot-weather
134,939
*
Read
Turtle
citypulse-traffic
163,310
Read
Turtle
dbpedia-live
120,993
*
Read
Turtle
digital-agenda-indicators
145,354
Read
Turtle
linked-spending
143,786
*
Read
Turtle
lod-katrina
160,282
*
Read
Turtle
muziekweb
135,936
Read
Turtle
officegraph
114,737
*
Read
Turtle
openaire-lod
157,839
Read
Turtle
osm2rdf-denmark
163,876
diff --git a/snippets/performance/py-d-spread-rdf-triples.html b/snippets/performance/py-d-spread-rdf-triples.html
new file mode 100644
index 0000000..3e3818e
--- /dev/null
+++ b/snippets/performance/py-d-spread-rdf-triples.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-d-spread-sparql.data.html b/snippets/performance/py-d-spread-sparql.data.html
new file mode 100644
index 0000000..23352a3
--- /dev/null
+++ b/snippets/performance/py-d-spread-sparql.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Operation
Format
Dataset
Throughput (cells/s, median)
Notes
Write
Jelly
assist-iot-weather
7,248,530
Write
Jelly
assist-iot-weather-graphs
9,788,516
Write
Jelly
citypulse-traffic
6,778,735
Write
Jelly
citypulse-traffic-graphs
8,283,946
Write
Jelly
dbpedia-live
4,386,462
Write
Jelly
digital-agenda-indicators
7,466,402
Write
Jelly
linked-spending
7,336,993
Write
Jelly
lod-katrina
6,347,624
Write
Jelly
muziekweb
5,943,737
Write
Jelly
nanopubs
7,963,360
Write
Jelly
officegraph
6,383,296
Write
Jelly
openaire-lod
7,796,575
Write
Jelly
osm2rdf-denmark
6,802,972
Write
SRJ (JSON)
assist-iot-weather
1,445,110
Write
SRJ (JSON)
assist-iot-weather-graphs
1,448,171
Write
SRJ (JSON)
citypulse-traffic
1,234,548
Write
SRJ (JSON)
citypulse-traffic-graphs
1,297,095
Write
SRJ (JSON)
dbpedia-live
1,202,536
Write
SRJ (JSON)
digital-agenda-indicators
1,299,829
Write
SRJ (JSON)
linked-spending
1,180,580
Write
SRJ (JSON)
lod-katrina
1,404,880
Write
SRJ (JSON)
muziekweb
1,207,758
Write
SRJ (JSON)
nanopubs
1,481,835
Write
SRJ (JSON)
officegraph
1,416,947
Write
SRJ (JSON)
openaire-lod
1,170,269
Write
SRJ (JSON)
osm2rdf-denmark
1,265,377
Write
SRX (XML)
assist-iot-weather
330,673
Write
SRX (XML)
assist-iot-weather-graphs
338,640
Write
SRX (XML)
citypulse-traffic
325,732
Write
SRX (XML)
citypulse-traffic-graphs
335,688
Write
SRX (XML)
dbpedia-live
305,757
Write
SRX (XML)
digital-agenda-indicators
336,552
Write
SRX (XML)
linked-spending
326,442
Write
SRX (XML)
lod-katrina
336,666
Write
SRX (XML)
muziekweb
319,484
Write
SRX (XML)
nanopubs
327,132
Write
SRX (XML)
officegraph
326,480
Write
SRX (XML)
openaire-lod
329,350
Write
SRX (XML)
osm2rdf-denmark
327,700
Read
Jelly
assist-iot-weather
9,873,885
Read
Jelly
assist-iot-weather-graphs
11,210,260
Read
Jelly
citypulse-traffic
7,489,121
Read
Jelly
citypulse-traffic-graphs
9,171,859
Read
Jelly
dbpedia-live
2,460,429
Read
Jelly
digital-agenda-indicators
6,610,937
Read
Jelly
linked-spending
6,158,168
Read
Jelly
lod-katrina
9,152,314
Read
Jelly
muziekweb
3,153,044
Read
Jelly
nanopubs
10,172,622
Read
Jelly
officegraph
8,980,374
Read
Jelly
openaire-lod
4,885,692
Read
Jelly
osm2rdf-denmark
4,134,472
Read
SRJ (JSON)
assist-iot-weather
591,801
Read
SRJ (JSON)
assist-iot-weather-graphs
599,294
Read
SRJ (JSON)
citypulse-traffic
576,287
Read
SRJ (JSON)
citypulse-traffic-graphs
567,985
Read
SRJ (JSON)
dbpedia-live
457,414
Read
SRJ (JSON)
digital-agenda-indicators
585,121
Read
SRJ (JSON)
linked-spending
547,359
Read
SRJ (JSON)
lod-katrina
596,770
Read
SRJ (JSON)
muziekweb
501,624
Read
SRJ (JSON)
nanopubs
604,520
Read
SRJ (JSON)
officegraph
553,825
Read
SRJ (JSON)
openaire-lod
505,431
Read
SRJ (JSON)
osm2rdf-denmark
538,106
Read
SRX (XML)
assist-iot-weather
308,469
Read
SRX (XML)
assist-iot-weather-graphs
323,955
Read
SRX (XML)
citypulse-traffic
338,365
Read
SRX (XML)
citypulse-traffic-graphs
331,402
Read
SRX (XML)
dbpedia-live
277,064
Read
SRX (XML)
digital-agenda-indicators
351,174
Read
SRX (XML)
linked-spending
347,101
Read
SRX (XML)
lod-katrina
316,652
Read
SRX (XML)
muziekweb
318,083
Read
SRX (XML)
nanopubs
339,157
Read
SRX (XML)
officegraph
310,235
Read
SRX (XML)
openaire-lod
306,620
Read
SRX (XML)
osm2rdf-denmark
332,974
Read
TSV
assist-iot-weather
32,851
Read
TSV
assist-iot-weather-graphs
33,699
Read
TSV
citypulse-traffic
33,118
Read
TSV
citypulse-traffic-graphs
33,745
Read
TSV
dbpedia-live
30,009
Read
TSV
digital-agenda-indicators
32,862
Read
TSV
lod-katrina
33,288
Read
TSV
muziekweb
31,305
Read
TSV
nanopubs
33,831
Read
TSV
officegraph
31,582
Read
TSV
openaire-lod
31,585
Read
TSV
osm2rdf-denmark
31,474
diff --git a/snippets/performance/py-d-spread-sparql.html b/snippets/performance/py-d-spread-sparql.html
new file mode 100644
index 0000000..f0655f9
--- /dev/null
+++ b/snippets/performance/py-d-spread-sparql.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-e-versions.data.html b/snippets/performance/py-e-versions.data.html
new file mode 100644
index 0000000..67bc5db
--- /dev/null
+++ b/snippets/performance/py-e-versions.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Library
Operation
Version
Throughput (statements/s, geomean)
vs previous
vs 0.8
Generic API
Write
0.8 (Jelly-RDF 1.0)
360,367
1.00×
Generic API
Write
0.9 (Jelly-RDF 1.1)
1,029,357
2.9×
2.9×
Generic API
Write
0.9 (Jelly-RDF 1.2)
2,990,137
2.9×
8.3×
RDFLib
Write
0.8 (Jelly-RDF 1.0)
301,073
1.00×
RDFLib
Write
0.9 (Jelly-RDF 1.1)
893,548
3.0×
3.0×
RDFLib
Write
0.9 (Jelly-RDF 1.2)
2,184,721
2.4×
7.3×
Generic API
Read
0.8 (Jelly-RDF 1.0)
634,419
1.00×
Generic API
Read
0.9 (Jelly-RDF 1.1)
915,057
1.44×
1.44×
Generic API
Read
0.9 (Jelly-RDF 1.2)
3,853,163
4.2×
6.1×
RDFLib
Read
0.8 (Jelly-RDF 1.0)
380,218
1.00×
RDFLib
Read
0.9 (Jelly-RDF 1.1)
783,610
2.1×
2.1×
RDFLib
Read
0.9 (Jelly-RDF 1.2)
2,561,141
3.3×
6.7×
diff --git a/snippets/performance/py-e-versions.html b/snippets/performance/py-e-versions.html
new file mode 100644
index 0000000..4d983a9
--- /dev/null
+++ b/snippets/performance/py-e-versions.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-f-size-rdf-triples.data.html b/snippets/performance/py-f-size-rdf-triples.data.html
new file mode 100644
index 0000000..e27da8f
--- /dev/null
+++ b/snippets/performance/py-f-size-rdf-triples.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Format
Raw (bytes/statement)
zstd
Jelly (Graph API)
21.24
4.39
Jelly
22.04
4.58
Turtle
64.83
4.54
RDF/XML
105.46
6.32
JSON-LD
148.64
8.2
N-Triples
190.91
8.75
diff --git a/snippets/performance/py-f-size-rdf-triples.html b/snippets/performance/py-f-size-rdf-triples.html
new file mode 100644
index 0000000..485e191
--- /dev/null
+++ b/snippets/performance/py-f-size-rdf-triples.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-f-size-sparql.data.html b/snippets/performance/py-f-size-sparql.data.html
new file mode 100644
index 0000000..321a28b
--- /dev/null
+++ b/snippets/performance/py-f-size-sparql.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Format
Raw (bytes/row)
zstd
Jelly
20.95
3.82
SRJ (JSON)
317.46
9.02
SRX (XML)
346.47
9.2
diff --git a/snippets/performance/py-f-size-sparql.html b/snippets/performance/py-f-size-sparql.html
new file mode 100644
index 0000000..14cccee
--- /dev/null
+++ b/snippets/performance/py-f-size-sparql.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-i-size-summary.data.html b/snippets/performance/py-i-size-summary.data.html
new file mode 100644
index 0000000..73a6f2d
--- /dev/null
+++ b/snippets/performance/py-i-size-summary.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Version
Uncompressed (bytes/statement)
zstd (bytes/statement)
0.8 (Jelly-RDF 1.0)
32.43
4.8
0.9 (Jelly-RDF 1.1)
32.13
4.49
0.9 (Jelly-RDF 1.2)
21.04
3.9
diff --git a/snippets/performance/py-i-size-summary.html b/snippets/performance/py-i-size-summary.html
new file mode 100644
index 0000000..9d5e2fb
--- /dev/null
+++ b/snippets/performance/py-i-size-summary.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-j-size-variants.data.html b/snippets/performance/py-j-size-variants.data.html
new file mode 100644
index 0000000..0e78a81
--- /dev/null
+++ b/snippets/performance/py-j-size-variants.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Compression
Dataset
0.8 (Jelly-RDF 1.0)
0.9 (Jelly-RDF 1.1)
0.9 (Jelly-RDF 1.2)
1.2 vs 1.1 (%)
zstd
assist-iot-weather
0.85
0.82
0.62
24
zstd
assist-iot-weather-graphs
0.54
0.49
0.33
32
zstd
citypulse-traffic
7.6
7.49
6.82
9
zstd
citypulse-traffic-graphs
8.12
7.61
6.9
9
zstd
dbpedia-live
11.46
9.83
9.07
8
zstd
digital-agenda-indicators
2.47
2.44
1.71
30
zstd
linked-spending
8.15
8.12
7.53
7
zstd
lod-katrina
2.74
2.37
2.11
11
zstd
muziekweb
14.05
13.72
13.04
5
zstd
nanopubs
6.5
5.8
5.16
11
zstd
officegraph
2.56
2.41
2.22
8
zstd
openaire-lod
19.31
18.97
18.34
3
zstd
osm2rdf-denmark
8.86
7.91
7.37
7
Uncompressed
assist-iot-weather
19.63
19.52
9.02
54
Uncompressed
assist-iot-weather-graphs
19.65
19.54
9.07
54
Uncompressed
citypulse-traffic
33.1
33.1
23.89
28
Uncompressed
citypulse-traffic-graphs
34.55
34.1
24.47
28
Uncompressed
dbpedia-live
42.08
39.73
29.02
27
Uncompressed
digital-agenda-indicators
22.37
22.37
11.54
48
Uncompressed
linked-spending
37.9
37.9
29.47
22
Uncompressed
lod-katrina
30.73
30.67
18.41
40
Uncompressed
muziekweb
43.94
43.81
32.17
27
Uncompressed
nanopubs
38.37
37.79
26.37
30
Uncompressed
officegraph
26.05
26.38
16.23
38
Uncompressed
openaire-lod
61.68
61.46
54.04
12
Uncompressed
osm2rdf-denmark
33.54
32.58
24.48
25
diff --git a/snippets/performance/py-j-size-variants.html b/snippets/performance/py-j-size-variants.html
new file mode 100644
index 0000000..297274d
--- /dev/null
+++ b/snippets/performance/py-j-size-variants.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-k-speed-variants.data.html b/snippets/performance/py-k-speed-variants.data.html
new file mode 100644
index 0000000..f867c01
--- /dev/null
+++ b/snippets/performance/py-k-speed-variants.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Library
Operation
Dataset
0.8 (Jelly-RDF 1.0)
0.9 (Jelly-RDF 1.1)
0.9 (Jelly-RDF 1.2)
1.2 vs 1.1
Generic API
Write
assist-iot-weather
398,064
1,109,557
3,335,948
3.0×
Generic API
Write
assist-iot-weather-graphs
381,441
1,136,653
3,754,279
3.3×
Generic API
Write
citypulse-traffic
372,940
1,080,053
3,126,093
2.9×
Generic API
Write
citypulse-traffic-graphs
347,332
1,018,665
2,973,564
2.9×
Generic API
Write
dbpedia-live
299,685
786,843
1,846,528
2.3×
Generic API
Write
digital-agenda-indicators
392,559
1,115,158
3,492,524
3.1×
Generic API
Write
linked-spending
392,545
1,138,795
3,612,864
3.2×
Generic API
Write
lod-katrina
339,556
968,928
2,804,579
2.9×
Generic API
Write
muziekweb
344,645
953,223
2,661,662
2.8×
Generic API
Write
nanopubs
319,541
940,151
2,624,723
2.8×
Generic API
Write
officegraph
349,332
985,282
2,898,727
2.9×
Generic API
Write
openaire-lod
399,227
1,156,141
3,517,703
3.0×
Generic API
Write
osm2rdf-denmark
364,920
1,062,130
2,818,648
2.7×
RDFLib
Write
assist-iot-weather
331,808
954,091
2,325,027
2.4×
RDFLib
Write
assist-iot-weather-graphs
317,746
974,992
2,671,681
2.7×
RDFLib
Write
citypulse-traffic
308,660
919,777
2,129,673
2.3×
RDFLib
Write
citypulse-traffic-graphs
286,127
867,497
2,092,595
2.4×
RDFLib
Write
dbpedia-live
253,174
701,292
1,446,528
2.1×
RDFLib
Write
digital-agenda-indicators
331,117
969,737
2,500,778
2.6×
RDFLib
Write
linked-spending
323,432
966,170
2,496,262
2.6×
RDFLib
Write
lod-katrina
289,622
849,425
2,147,602
2.5×
RDFLib
Write
muziekweb
282,581
832,353
1,989,737
2.4×
RDFLib
Write
nanopubs
271,350
831,383
1,980,348
2.4×
RDFLib
Write
officegraph
291,546
849,528
2,088,426
2.5×
RDFLib
Write
openaire-lod
330,360
1,002,653
2,623,669
2.6×
RDFLib
Write
osm2rdf-denmark
309,273
948,031
2,228,573
2.4×
Generic API
Read
assist-iot-weather
698,599
1,024,231
4,774,153
4.7×
Generic API
Read
assist-iot-weather-graphs
631,962
988,962
4,508,324
4.6×
Generic API
Read
citypulse-traffic
648,501
958,675
4,275,766
4.5×
Generic API
Read
citypulse-traffic-graphs
587,689
919,977
3,997,295
4.3×
Generic API
Read
dbpedia-live
551,355
719,752
2,529,275
3.5×
Generic API
Read
digital-agenda-indicators
707,860
1,009,623
5,040,248
5.0×
Generic API
Read
linked-spending
662,637
945,439
3,879,073
4.1×
Generic API
Read
lod-katrina
624,854
935,499
4,416,853
4.7×
Generic API
Read
muziekweb
597,594
766,163
2,620,170
3.4×
Generic API
Read
nanopubs
567,489
875,241
3,844,533
4.4×
Generic API
Read
officegraph
623,889
914,098
4,194,588
4.6×
Generic API
Read
openaire-lod
687,697
950,421
3,503,062
3.7×
Generic API
Read
osm2rdf-denmark
681,732
942,813
3,470,042
3.7×
RDFLib
Read
assist-iot-weather
412,358
983,395
4,159,400
4.2×
RDFLib
Read
assist-iot-weather-graphs
384,123
938,090
3,829,270
4.1×
RDFLib
Read
citypulse-traffic
400,448
876,231
3,273,744
3.7×
RDFLib
Read
citypulse-traffic-graphs
365,892
845,476
3,128,880
3.7×
RDFLib
Read
dbpedia-live
273,835
478,394
997,753
2.1×
RDFLib
Read
digital-agenda-indicators
437,550
823,823
2,517,802
3.1×
RDFLib
Read
linked-spending
395,584
800,377
2,489,345
3.1×
RDFLib
Read
lod-katrina
408,052
895,368
3,891,334
4.3×
RDFLib
Read
muziekweb
350,855
551,758
1,254,932
2.3×
RDFLib
Read
nanopubs
367,226
842,187
3,325,920
3.9×
RDFLib
Read
officegraph
338,770
882,282
3,688,611
4.2×
RDFLib
Read
openaire-lod
417,099
755,370
1,993,550
2.6×
RDFLib
Read
osm2rdf-denmark
424,717
702,694
1,674,190
2.4×
diff --git a/snippets/performance/py-k-speed-variants.html b/snippets/performance/py-k-speed-variants.html
new file mode 100644
index 0000000..f1e44fa
--- /dev/null
+++ b/snippets/performance/py-k-speed-variants.html
@@ -0,0 +1 @@
+
diff --git a/snippets/performance/py-l-speed-size-variants.data.html b/snippets/performance/py-l-speed-size-variants.data.html
new file mode 100644
index 0000000..9ff99a4
--- /dev/null
+++ b/snippets/performance/py-l-speed-size-variants.data.html
@@ -0,0 +1 @@
+
Data behind this chart
Library
Operation
Dataset
Version
Size (bytes/statement)
Throughput (statements/s)
Generic API
Write
assist-iot-weather
0.8 (Jelly-RDF 1.0)
19.63
398,064
Generic API
Write
assist-iot-weather
0.9 (Jelly-RDF 1.2)
9.02
3,335,948
Generic API
Write
assist-iot-weather-graphs
0.8 (Jelly-RDF 1.0)
19.65
381,441
Generic API
Write
assist-iot-weather-graphs
0.9 (Jelly-RDF 1.2)
9.07
3,754,279
Generic API
Write
citypulse-traffic
0.8 (Jelly-RDF 1.0)
33.1
372,940
Generic API
Write
citypulse-traffic
0.9 (Jelly-RDF 1.2)
23.89
3,126,093
Generic API
Write
citypulse-traffic-graphs
0.8 (Jelly-RDF 1.0)
34.55
347,332
Generic API
Write
citypulse-traffic-graphs
0.9 (Jelly-RDF 1.2)
24.47
2,973,564
Generic API
Write
dbpedia-live
0.8 (Jelly-RDF 1.0)
42.08
299,685
Generic API
Write
dbpedia-live
0.9 (Jelly-RDF 1.2)
29.02
1,846,528
Generic API
Write
digital-agenda-indicators
0.8 (Jelly-RDF 1.0)
22.37
392,559
Generic API
Write
digital-agenda-indicators
0.9 (Jelly-RDF 1.2)
11.54
3,492,524
Generic API
Write
linked-spending
0.8 (Jelly-RDF 1.0)
37.9
392,545
Generic API
Write
linked-spending
0.9 (Jelly-RDF 1.2)
29.47
3,612,864
Generic API
Write
lod-katrina
0.8 (Jelly-RDF 1.0)
30.73
339,556
Generic API
Write
lod-katrina
0.9 (Jelly-RDF 1.2)
18.41
2,804,579
Generic API
Write
muziekweb
0.8 (Jelly-RDF 1.0)
43.94
344,645
Generic API
Write
muziekweb
0.9 (Jelly-RDF 1.2)
32.17
2,661,662
Generic API
Write
nanopubs
0.8 (Jelly-RDF 1.0)
38.37
319,541
Generic API
Write
nanopubs
0.9 (Jelly-RDF 1.2)
26.37
2,624,723
Generic API
Write
officegraph
0.8 (Jelly-RDF 1.0)
26.05
349,332
Generic API
Write
officegraph
0.9 (Jelly-RDF 1.2)
16.23
2,898,727
Generic API
Write
openaire-lod
0.8 (Jelly-RDF 1.0)
61.68
399,227
Generic API
Write
openaire-lod
0.9 (Jelly-RDF 1.2)
54.04
3,517,703
Generic API
Write
osm2rdf-denmark
0.8 (Jelly-RDF 1.0)
33.54
364,920
Generic API
Write
osm2rdf-denmark
0.9 (Jelly-RDF 1.2)
24.48
2,818,648
RDFLib
Write
assist-iot-weather
0.8 (Jelly-RDF 1.0)
19.63
331,808
RDFLib
Write
assist-iot-weather
0.9 (Jelly-RDF 1.2)
9.02
2,325,027
RDFLib
Write
assist-iot-weather-graphs
0.8 (Jelly-RDF 1.0)
19.65
317,746
RDFLib
Write
assist-iot-weather-graphs
0.9 (Jelly-RDF 1.2)
9.07
2,671,681
RDFLib
Write
citypulse-traffic
0.8 (Jelly-RDF 1.0)
33.1
308,660
RDFLib
Write
citypulse-traffic
0.9 (Jelly-RDF 1.2)
23.89
2,129,673
RDFLib
Write
citypulse-traffic-graphs
0.8 (Jelly-RDF 1.0)
34.55
286,127
RDFLib
Write
citypulse-traffic-graphs
0.9 (Jelly-RDF 1.2)
24.47
2,092,595
RDFLib
Write
dbpedia-live
0.8 (Jelly-RDF 1.0)
42.08
253,174
RDFLib
Write
dbpedia-live
0.9 (Jelly-RDF 1.2)
29.02
1,446,528
RDFLib
Write
digital-agenda-indicators
0.8 (Jelly-RDF 1.0)
22.37
331,117
RDFLib
Write
digital-agenda-indicators
0.9 (Jelly-RDF 1.2)
11.54
2,500,778
RDFLib
Write
linked-spending
0.8 (Jelly-RDF 1.0)
37.9
323,432
RDFLib
Write
linked-spending
0.9 (Jelly-RDF 1.2)
29.47
2,496,262
RDFLib
Write
lod-katrina
0.8 (Jelly-RDF 1.0)
30.73
289,622
RDFLib
Write
lod-katrina
0.9 (Jelly-RDF 1.2)
18.41
2,147,602
RDFLib
Write
muziekweb
0.8 (Jelly-RDF 1.0)
43.94
282,581
RDFLib
Write
muziekweb
0.9 (Jelly-RDF 1.2)
32.17
1,989,737
RDFLib
Write
nanopubs
0.8 (Jelly-RDF 1.0)
38.37
271,350
RDFLib
Write
nanopubs
0.9 (Jelly-RDF 1.2)
26.37
1,980,348
RDFLib
Write
officegraph
0.8 (Jelly-RDF 1.0)
26.05
291,546
RDFLib
Write
officegraph
0.9 (Jelly-RDF 1.2)
16.23
2,088,426
RDFLib
Write
openaire-lod
0.8 (Jelly-RDF 1.0)
61.68
330,360
RDFLib
Write
openaire-lod
0.9 (Jelly-RDF 1.2)
54.04
2,623,669
RDFLib
Write
osm2rdf-denmark
0.8 (Jelly-RDF 1.0)
33.54
309,273
RDFLib
Write
osm2rdf-denmark
0.9 (Jelly-RDF 1.2)
24.48
2,228,573
Generic API
Read
assist-iot-weather
0.8 (Jelly-RDF 1.0)
19.63
698,599
Generic API
Read
assist-iot-weather
0.9 (Jelly-RDF 1.2)
9.02
4,774,153
Generic API
Read
assist-iot-weather-graphs
0.8 (Jelly-RDF 1.0)
19.65
631,962
Generic API
Read
assist-iot-weather-graphs
0.9 (Jelly-RDF 1.2)
9.07
4,508,324
Generic API
Read
citypulse-traffic
0.8 (Jelly-RDF 1.0)
33.1
648,501
Generic API
Read
citypulse-traffic
0.9 (Jelly-RDF 1.2)
23.89
4,275,766
Generic API
Read
citypulse-traffic-graphs
0.8 (Jelly-RDF 1.0)
34.55
587,689
Generic API
Read
citypulse-traffic-graphs
0.9 (Jelly-RDF 1.2)
24.47
3,997,295
Generic API
Read
dbpedia-live
0.8 (Jelly-RDF 1.0)
42.08
551,355
Generic API
Read
dbpedia-live
0.9 (Jelly-RDF 1.2)
29.02
2,529,275
Generic API
Read
digital-agenda-indicators
0.8 (Jelly-RDF 1.0)
22.37
707,860
Generic API
Read
digital-agenda-indicators
0.9 (Jelly-RDF 1.2)
11.54
5,040,248
Generic API
Read
linked-spending
0.8 (Jelly-RDF 1.0)
37.9
662,637
Generic API
Read
linked-spending
0.9 (Jelly-RDF 1.2)
29.47
3,879,073
Generic API
Read
lod-katrina
0.8 (Jelly-RDF 1.0)
30.73
624,854
Generic API
Read
lod-katrina
0.9 (Jelly-RDF 1.2)
18.41
4,416,853
Generic API
Read
muziekweb
0.8 (Jelly-RDF 1.0)
43.94
597,594
Generic API
Read
muziekweb
0.9 (Jelly-RDF 1.2)
32.17
2,620,170
Generic API
Read
nanopubs
0.8 (Jelly-RDF 1.0)
38.37
567,489
Generic API
Read
nanopubs
0.9 (Jelly-RDF 1.2)
26.37
3,844,533
Generic API
Read
officegraph
0.8 (Jelly-RDF 1.0)
26.05
623,889
Generic API
Read
officegraph
0.9 (Jelly-RDF 1.2)
16.23
4,194,588
Generic API
Read
openaire-lod
0.8 (Jelly-RDF 1.0)
61.68
687,697
Generic API
Read
openaire-lod
0.9 (Jelly-RDF 1.2)
54.04
3,503,062
Generic API
Read
osm2rdf-denmark
0.8 (Jelly-RDF 1.0)
33.54
681,732
Generic API
Read
osm2rdf-denmark
0.9 (Jelly-RDF 1.2)
24.48
3,470,042
RDFLib
Read
assist-iot-weather
0.8 (Jelly-RDF 1.0)
19.63
412,358
RDFLib
Read
assist-iot-weather
0.9 (Jelly-RDF 1.2)
9.02
4,159,400
RDFLib
Read
assist-iot-weather-graphs
0.8 (Jelly-RDF 1.0)
19.65
384,123
RDFLib
Read
assist-iot-weather-graphs
0.9 (Jelly-RDF 1.2)
9.07
3,829,270
RDFLib
Read
citypulse-traffic
0.8 (Jelly-RDF 1.0)
33.1
400,448
RDFLib
Read
citypulse-traffic
0.9 (Jelly-RDF 1.2)
23.89
3,273,744
RDFLib
Read
citypulse-traffic-graphs
0.8 (Jelly-RDF 1.0)
34.55
365,892
RDFLib
Read
citypulse-traffic-graphs
0.9 (Jelly-RDF 1.2)
24.47
3,128,880
RDFLib
Read
dbpedia-live
0.8 (Jelly-RDF 1.0)
42.08
273,835
RDFLib
Read
dbpedia-live
0.9 (Jelly-RDF 1.2)
29.02
997,753
RDFLib
Read
digital-agenda-indicators
0.8 (Jelly-RDF 1.0)
22.37
437,550
RDFLib
Read
digital-agenda-indicators
0.9 (Jelly-RDF 1.2)
11.54
2,517,802
RDFLib
Read
linked-spending
0.8 (Jelly-RDF 1.0)
37.9
395,584
RDFLib
Read
linked-spending
0.9 (Jelly-RDF 1.2)
29.47
2,489,345
RDFLib
Read
lod-katrina
0.8 (Jelly-RDF 1.0)
30.73
408,052
RDFLib
Read
lod-katrina
0.9 (Jelly-RDF 1.2)
18.41
3,891,334
RDFLib
Read
muziekweb
0.8 (Jelly-RDF 1.0)
43.94
350,855
RDFLib
Read
muziekweb
0.9 (Jelly-RDF 1.2)
32.17
1,254,932
RDFLib
Read
nanopubs
0.8 (Jelly-RDF 1.0)
38.37
367,226
RDFLib
Read
nanopubs
0.9 (Jelly-RDF 1.2)
26.37
3,325,920
RDFLib
Read
officegraph
0.8 (Jelly-RDF 1.0)
26.05
338,770
RDFLib
Read
officegraph
0.9 (Jelly-RDF 1.2)
16.23
3,688,611
RDFLib
Read
openaire-lod
0.8 (Jelly-RDF 1.0)
61.68
417,099
RDFLib
Read
openaire-lod
0.9 (Jelly-RDF 1.2)
54.04
1,993,550
RDFLib
Read
osm2rdf-denmark
0.8 (Jelly-RDF 1.0)
33.54
424,717
RDFLib
Read
osm2rdf-denmark
0.9 (Jelly-RDF 1.2)
24.48
1,674,190
diff --git a/snippets/performance/py-l-speed-size-variants.html b/snippets/performance/py-l-speed-size-variants.html
new file mode 100644
index 0000000..0b0ef94
--- /dev/null
+++ b/snippets/performance/py-l-speed-size-variants.html
@@ -0,0 +1 @@
+