You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Claus Stadler <cs...@informatik.uni-leipzig.de> on 2022/03/09 10:37:10 UTC

Streaming JSON RowSets (JENA-2302)

Dear all,


I want to inform you of an active PR for making RowSets over 
application/sparql-reults+json streaming


JIRA: https://issues.apache.org/jira/projects/JENA/issues/JENA-2302

PR: https://github.com/apache/jena/pull/1218


As nowadays JSON is the default content type used in Jena for sparql 
results, this PR is aimed at easing working with large sparql result 
sets by having streaming working out-of-the-box.

The implementation used by jena so far loaded json sparql result sets 
into memory first.


The JSON format itself allows for repeated keys (where the last one 
takes precedence) and keys may appear in any order - these things 
introduce a certain variety in how sparql result sets can be represented 
and that needs to be handled correctly by the implementation.


While the new implementation already succeeds on all existing jena 
tests, there is still the risk of breaking existing implementations that 
rely on certain behavior of the non-streaming approach.


Therefore, if you think this change might (negatively) affect you then 
please provide feedback on the proposed PR.


Best regards,

Claus Stadler

-- 
Dipl. Inf. Claus Stadler
Institute of Applied Informatics (InfAI) / University of Leipzig
Workpage & WebID: http://aksw.org/ClausStadler


Re: Streaming JSON RowSets (JENA-2302)

Posted by Andy Seaborne <an...@apache.org>.
This PR is looking good. It'll be great to have true stream 
implementation of JSON results for the normal cases of a result set that 
"head" then the "results" array.

     Andy

On 09/03/2022 10:37, Claus Stadler wrote:
> Dear all,
> 
> 
> I want to inform you of an active PR for making RowSets over 
> application/sparql-reults+json streaming
> 
> 
> JIRA: https://issues.apache.org/jira/projects/JENA/issues/JENA-2302
> 
> PR: https://github.com/apache/jena/pull/1218
> 
> 
> As nowadays JSON is the default content type used in Jena for sparql 
> results, this PR is aimed at easing working with large sparql result 
> sets by having streaming working out-of-the-box.
> 
> The implementation used by jena so far loaded json sparql result sets 
> into memory first.
> 
> 
> The JSON format itself allows for repeated keys (where the last one 
> takes precedence) and keys may appear in any order - these things 
> introduce a certain variety in how sparql result sets can be represented 
> and that needs to be handled correctly by the implementation.
> 
> 
> While the new implementation already succeeds on all existing jena 
> tests, there is still the risk of breaking existing implementations that 
> rely on certain behavior of the non-streaming approach.
> 
> 
> Therefore, if you think this change might (negatively) affect you then 
> please provide feedback on the proposed PR.
> 
> 
> Best regards,
> 
> Claus Stadler
>