[ 
https://issues.apache.org/jira/browse/JENA-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13715081#comment-13715081
 ] 

Andy Seaborne commented on JENA-329:
------------------------------------

Proposal:

Add a custom argument to query requests:

{noformat}
&stream=
{noformat}

which enables streamed CONSTRUCT (and DESCRIBE) results if the MIME type is 
suitable (N-Triples, N-Quads; maybe Turtle and a streamed variant).  If the 
MIME is not compatible, then the argument is effectively ignored (e.g. RDF/XML, 
which is RDF-XML-ABBREV written).

* {{stream=off}} --- default RDF behaviour - no special action
* {{stream=chunked}} --- the result is streamed back : some duplicate 
suppressed may be done (e.g. adjacent duplicates or a small sliding window)
* {{stream=yes}} --- same as '{{chunked}}'
* {{stream=all}} --- all triples generated are returned.

The preferred streaming form is '{{chunked}}', that is, with some (light) 
duplicate suppression because when duplicates occur, they can be a high 
proportion of the results due to not using all variables in all triple patterns 
of the template.

A further option is {{stream=template}} where each template instantiation is 
written back (without boundaries).  However, this does not seem to have any 
advantages as the common causes of duplicates are not within a single 
instantiation but across instantiations.



                
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to