You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (Jira)" <ji...@apache.org> on 2020/09/04 16:55:00 UTC

[jira] [Commented] (JENA-1945) Algebra.unionDefaultGraph: OpPath not handled

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

Andy Seaborne commented on JENA-1945:
-------------------------------------

Some system provide the default graphs as the union of named graphs.

The rewrites above work for Jena. There isn't a single triplestore independent, query level rewrite that I'm aware of that will do the same thing on all stores. The nearest I can think of is to add "GRAPH ?g" which is more limited.

"run on all named graphs" has different meanings (each graph vs union of all graphs)

Because of the choices to be made by the application on what exactly it means, and the use case (like your stream processing one), I don't think it is good fit in {{Algebra}} - more like in a library of useful things where it can be documented, maybe even variations for different remote stores.

> Algebra.unionDefaultGraph: OpPath not handled
> ---------------------------------------------
>
>                 Key: JENA-1945
>                 URL: https://issues.apache.org/jira/browse/JENA-1945
>             Project: Apache Jena
>          Issue Type: Improvement
>          Components: ARQ
>    Affects Versions: Jena 3.16.0
>            Reporter: Claus Stadler
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
>  
> {code:java}
> System.out.println(
>   Algebra.unionDefaultGraph(
>     Algebra.compile(
>       QueryFactory.create("SELECT * { ?s <urn:p> ?o }"))));
> /* Yields correct result:
> (distinct
>   (graph ??_
>     (bgp (triple ?s <urn:p> ?o))))      
> */
> System.out.println(
>   Algebra.unionDefaultGraph(
>     Algebra.compile(
>       QueryFactory.create("SELECT * { ?s <urn:p1>/<urn:p2>/<urn:p3> ?o }"))));
> /* Yields incorrect result because wrapping with graph ??_ (and distinct) is missing:
> (path ?s (seq (seq <urn:p1> <urn:p2>) <urn:p3>) ?o)
> */
> {code}
>  
> It seems [TransformUnionQuery.java|https://github.com/apache/jena/blob/master/jena-arq/src/main/java/org/apache/jena/sparql/algebra/TransformUnionQuery.java#L34] lacks the handling of (at least) OpPath



--
This message was sent by Atlassian Jira
(v8.3.4#803005)