Hi Minto Great work updating the modules!
Now to the questions. > > - Forward query to fast- or slowlane using the Preparerser Hasan recently > > implemented > Questions: Where is this decision taken? How to decide whether to use > QueryEngine of QueryableTcProvider ? Are these both fast-lane? > (Deferring the where question to when I write the code.) The QueryEngine is the slow-lane it works on any set of TripleCollections. QueryableTcProvider is the FastLane in that it might benefit from any optimization the backend provides it can only be used if the query only affects TripleCollections that are all provided by the same TcProvider (and this implements QueryableTcProvider). > - Make TdbTcProvider implement QueryableTcProvider > Question: Why is this needed if JenaSparqlEngine (implementation of > previous bullet) already takes care of this? > The JenaSparqleEngine works on any TripleCollections which are passed to Jena wrapped as Jena Graphs. JenaSparqlEngine can only access the data in these graphs via the provided filter method. The assumption is that TDB can handle (some) queries more efficiently by using its internal quad-store or other optimization techniques it could provide. > > Of coarse I could wire Tdb*Providers to use JenaSparqlEngine. But I > don't see the point. > This shouldn't be wired to JenaSparqlEngine (only probably reuse response wrapping code) but forward the query directly to Jena rather than wrapping JenaGraphs as TripleCollections in the Tdb*Provider and wrapping these back to Jena Graphs for querying in the JenaSparqlEngine. Hope this makes things clearer. Cheers, Reto
