Skip to content

Commit cca2ccb

Browse files
feat: improve performance of classes SPARQL query by changing the values clause to an equivalent inline data clause. This also accommodates a bug in qlever. (#342)
1 parent 827038c commit cca2ccb

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

prez/services/query_generation/classes.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
SubSelect,
1313
TriplesBlock,
1414
TriplesSameSubjectPath,
15-
ValuesClause,
1615
Var,
1716
WhereClause,
17+
GraphPatternNotTriples,
18+
InlineData,
1819
)
1920

2021
log = logging.getLogger(__name__)
@@ -45,20 +46,23 @@ def __init__(
4546
predicate=IRI(value=RDF.type),
4647
object=class_var,
4748
)
48-
)
49-
)
50-
)
51-
)
52-
values_clause = ValuesClause(
53-
data_block=DataBlock(
54-
block=InlineDataOneVar(
55-
variable=uris_var,
56-
datablockvalues=[DataBlockValue(value=uri) for uri in iris],
49+
),
50+
graph_patterns_or_triples_blocks=[
51+
GraphPatternNotTriples(
52+
content=InlineData(
53+
data_block=DataBlock(
54+
block=InlineDataOneVar(
55+
variable=uris_var,
56+
datablockvalues=[DataBlockValue(value=uri) for uri in iris],
57+
)
58+
)
59+
)
60+
)
61+
]
5762
)
5863
)
5964
)
6065
super().__init__(
6166
select_clause=select_clause,
6267
where_clause=where_clause,
63-
values_clause=values_clause,
6468
)

0 commit comments

Comments
 (0)