Skip to content

Commit 796334c

Browse files
jasperiqJervenBolleman
authored andcommitted
GH-5286 Added benchmarks for optional with filters
1 parent 157627b commit 796334c

3 files changed

Lines changed: 75 additions & 1 deletion

File tree

core/sail/memory/src/test/java/org/eclipse/rdf4j/sail/memory/benchmark/QueryBenchmark.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.eclipse.rdf4j.common.transaction.IsolationLevels;
2222
import org.eclipse.rdf4j.query.BindingSet;
2323
import org.eclipse.rdf4j.query.TupleQueryResult;
24-
import org.eclipse.rdf4j.query.explanation.Explanation;
2524
import org.eclipse.rdf4j.repository.sail.SailRepository;
2625
import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection;
2726
import org.eclipse.rdf4j.rio.RDFFormat;
@@ -61,6 +60,8 @@ public class QueryBenchmark {
6160
private static final String common_themes;
6261
private static final String different_datasets_with_similar_distributions;
6362
private static final String long_chain;
63+
private static final String optional_lhs_filter;
64+
private static final String optional_rhs_filter;
6465
private static final String lots_of_optional;
6566
private static final String minus;
6667
private static final String nested_optionals;
@@ -79,6 +80,10 @@ public class QueryBenchmark {
7980
getResourceAsStream("benchmarkFiles/different-datasets-with-similar-distributions.qr"),
8081
StandardCharsets.UTF_8);
8182
long_chain = IOUtils.toString(getResourceAsStream("benchmarkFiles/long-chain.qr"), StandardCharsets.UTF_8);
83+
optional_lhs_filter = IOUtils.toString(getResourceAsStream("benchmarkFiles/optional-lhs-filter.qr"),
84+
StandardCharsets.UTF_8);
85+
optional_rhs_filter = IOUtils.toString(getResourceAsStream("benchmarkFiles/optional-rhs-filter.qr"),
86+
StandardCharsets.UTF_8);
8287
lots_of_optional = IOUtils.toString(getResourceAsStream("benchmarkFiles/lots-of-optional.qr"),
8388
StandardCharsets.UTF_8);
8489
minus = IOUtils.toString(getResourceAsStream("benchmarkFiles/minus.qr"), StandardCharsets.UTF_8);
@@ -303,6 +308,24 @@ public long long_chain() {
303308
}
304309
}
305310

311+
@Benchmark
312+
public long optional_lhs_filter() {
313+
try (SailRepositoryConnection connection = repository.getConnection()) {
314+
return count(connection
315+
.prepareTupleQuery(optional_lhs_filter)
316+
.evaluate());
317+
}
318+
}
319+
320+
@Benchmark
321+
public long optional_rhs_filter() {
322+
try (SailRepositoryConnection connection = repository.getConnection()) {
323+
return count(connection
324+
.prepareTupleQuery(optional_rhs_filter)
325+
.evaluate());
326+
}
327+
}
328+
306329
@Benchmark
307330
public long lots_of_optional() {
308331
try (SailRepositoryConnection connection = repository.getConnection()) {
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
PREFIX ex: <http://example.com/ns#>
2+
PREFIX owl: <http://www.w3.org/2002/07/owl#>
3+
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
4+
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
5+
PREFIX sh: <http://www.w3.org/ns/shacl#>
6+
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
7+
PREFIX dcat: <http://www.w3.org/ns/dcat#>
8+
PREFIX dc: <http://purl.org/dc/terms/>
9+
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
10+
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
11+
PREFIX dct: <http://purl.org/dc/terms/>
12+
13+
SELECT * WHERE {
14+
15+
?dist a dcat:Distribution.
16+
17+
?dist dc:license ?license .
18+
19+
OPTIONAL {
20+
21+
?a dcat:distribution ?dist.
22+
23+
FILTER(?license = <http://wiki.data.gouv.fr/wiki/Licence_Ouverte_/_Open_Licence>)
24+
}
25+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
PREFIX eu-lang: <http://publications.europa.eu/resource/authority/language/>
2+
PREFIX ex: <http://example.com/ns#>
3+
PREFIX owl: <http://www.w3.org/2002/07/owl#>
4+
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
5+
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
6+
PREFIX sh: <http://www.w3.org/ns/shacl#>
7+
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
8+
PREFIX dcat: <http://www.w3.org/ns/dcat#>
9+
PREFIX dc: <http://purl.org/dc/terms/>
10+
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
11+
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
12+
PREFIX dct: <http://purl.org/dc/terms/>
13+
14+
SELECT * WHERE {
15+
16+
?dist a dcat:Distribution.
17+
18+
OPTIONAL {
19+
20+
?a dcat:distribution ?dist.
21+
22+
?a dct:language $lang.
23+
24+
FILTER(?lang = eu-lang:ENG)
25+
}
26+
}

0 commit comments

Comments
 (0)