[
https://issues.apache.org/jira/browse/JENA-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15872146#comment-15872146
]
Andy Seaborne commented on JENA-329:
------------------------------------
This could go into {{QueryExcutionBase.execConstructTriples}},
{{execConstructQuads}}. There is no contract to say duplicates are delivered.
Even in {{TemplateLib.calcTriples}}, {{calcQuads}} (ouch - they don't stream),
with bonus points for creating the triple/quad. In teh case of a template,
there is duplication from the row before, let alone a sliding window, because
not all variables are used in each triple template. That might be more trouble
than it's work.
Digression: in {{FactoryRDFCaching}} the code does a similar sliding window via
a Google Guava cache. The performance impact was more than I expected. I
wonder if there is a more efficient way to a non-thread-safe sliding LRU window.
> Add streaming CONSTRUCT results to Fuseki
> -----------------------------------------
>
> Key: JENA-329
> URL: https://issues.apache.org/jira/browse/JENA-329
> Project: Apache Jena
> Issue Type: Improvement
> Components: Fuseki
> Reporter: Stephen Allen
>
> As a result of JENA-205, streaming results are now available for CONSTRUCT
> queries. However there can be duplicate triples in the iterator. This task
> is to allow Fuseki to stream back results, while at the same time performing
> a distinct operation.
> The fix would be to modify SPARQL_Query to use
> QueryExecution.execConstructTriples() and filter the results through a
> DistinctDataNet<Triple> as they are being streamed back to the client.
> This also requires RDFWriter implementations that can accept Iterator<Triple>
> instead of Model.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)