Greg,
Could you create a JIRA ticket for this please? It is something that
looks addressable. The solution proposed (using union graph) is a bit
specialised.
Andy
The query may be better if written (but the "..." may be making a
difference.)
GRAPH dataset:SmallB {
?b rdf:type my:BThing.
?b my:hasData ?bData.
FILTER(my:filterFunction2(?bData, "1.0 3.0, 4.0 2.0"^^my:dataLiteral))
}
GRAPH dataset:BigA {
?a rdf:type my:AThing.
?a noa:hasGeometry ?aData.
}
FILTER(my:filterFunction1(?bData, ?aData))
On 19/06/18 10:59, Greg Albiston wrote:
Clone URL (Committers only):
https://cms.apache.org/redirect?new=anonymous;action=diff;uri=http://jena.apache.org/documentation%2Ftdb%2Fdatasets.mdtext
Greg Albiston
Index: trunk/content/documentation/tdb/datasets.mdtext
===================================================================
--- trunk/content/documentation/tdb/datasets.mdtext (revision 1833775)
+++ trunk/content/documentation/tdb/datasets.mdtext (working copy)
@@ -51,6 +51,51 @@
...
}
+### Named Graphs & Filters
+
+Named graphs provide a convenient way to organise and store your data.
+However, be aware that in certain situations named graphs can make it
difficult for the query optimiser.
+
+For example, a query with the following structure took 29 minutes to complete:
+
+ SELECT ?b ...
+ WHERE {
+
+ GRAPH dataset:BigA {
+ ?a rdf:type my:AThing.
+ ?a noa:hasGeometry ?aData.
+ ...
+ }
+
+ GRAPH dataset:SmallB {
+ ?b rdf:type my:BThing.
+ ?b my:hasData ?bData.
+ ...
+ }
+
+ FILTER(my:filterFunction1(?bData, ?aData))
+ FILTER(my:filterFunction2(?bData, "1.0 3.0, 4.0 2.0"^^my:dataLiteral) )
+
+ }
+
+The completion duration was reduced to 7 seconds by applying the global
TDB.symUnionDefaultGraph option (see above) to the dataset and modifying the
query as follows:
+
+ SELECT ?b ...
+ WHERE {
+
+ ?a rdf:type my:AThing.
+ ?a noa:hasGeometry ?aData.
+ ...
+
+ ?b rdf:type my:BThing.
+ ?b my:hasData ?bData.
+ ...
+
+ FILTER(my:filterFunction1(?bData, ?aData))
+ FILTER(my:filterFunction2(?bData, "1.0 3.0, 4.0 2.0"^^my:dataLiteral) )
+
+ }
+
## Special Graph Names
URI | Meaning