You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Lee Kitching (JIRA)" <ji...@apache.org> on 2018/06/27 09:48:00 UTC

[jira] [Updated] (JENA-1566) Unable to parse VALUES clause containing boolean literal bindings

     [ https://issues.apache.org/jira/browse/JENA-1566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lee Kitching updated JENA-1566:
-------------------------------
    Description: 
Compiling the query

 

{{{SELECT ?b WHERE \{ VALUES ?b { true } }}}}


 
 into a query algebra:
 
 \{{Query q = QueryFactory.create("SELECT ?b WHERE { VALUES ?b { true }

}");}}
 {{Op a = Algebra.compile(q);}}

 

results in

{{(project}}
 {{  (?b)}}
 {{  (table}}
 {{    (vars ?b)}}
 {{    (row}}
 {{      (?b true))))}}

 

Attempting to parse this string representation throws an exception:

{{SSE.parseOp("(project (?b) (table (vars ?b) (row (?b true))))");}}
{quote}    org.apache.jena.sparql.sse.builders.ExprBuildException "Not a node: true"

    [org.apache.jena.sparql.sse.builders.BuilderLib exception "BuilderLib.java" 140]
     [org.apache.jena.sparql.sse.builders.BuilderLib broken "BuilderLib.java" 147]
     [org.apache.jena.sparql.sse.builders.BuilderLib broken "BuilderLib.java" 129]
     [org.apache.jena.sparql.sse.builders.BuilderLib checkNode "BuilderLib.java" 32]
     [org.apache.jena.sparql.sse.builders.BuilderBinding buildBinding "BuilderBinding.java" 64]
     [org.apache.jena.sparql.sse.builders.BuilderBinding build "BuilderBinding.java" 36]
     [org.apache.jena.sparql.sse.builders.BuilderTable build "BuilderTable.java" 73]
     [org.apache.jena.sparql.sse.builders.BuilderOp$1 make "BuilderOp.java" 209]
     [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 128]
     [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 162]
     [org.apache.jena.sparql.sse.builders.BuilderOp$26 make "BuilderOp.java" 672]
     [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 128]
     [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 59]
     [org.apache.jena.sparql.algebra.Algebra parse "Algebra.java" 121]
     [org.apache.jena.sparql.algebra.Algebra parse "Algebra.java" 109]
     [org.apache.jena.sparql.sse.SSE parseOp "SSE.java" 287]
{quote}
As a bit of background, we are trying to rewrite SPARQL queries using ARQ in Clojure (as described in JENA-1468). The current process is:

Parse SPARQL query -> Compile to Op -> serialise to string -> parse as SSE -> modify SSE -> serialise to string -> Parse to Op -> convert to SPARQL query

This issue is causing the 'parse as SSE' step to fail.

  was:
Compiling the query

{{SELECT ?b WHERE \{ VALUES ?b { true } }}}

into a query algebra:

{{Query q = QueryFactory.create("SELECT ?b WHERE \{ VALUES ?b { true } }");}}
{{Op a = Algebra.compile(q);}}

 

results in

{{(project}}
{{  (?b)}}
{{  (table}}
{{    (vars ?b)}}
{{    (row}}
{{      (?b true))))}}

 

Attempting to parse this string representation throws an exception:

{{SSE.parseOp("(project (?b) (table (vars ?b) (row (?b true))))");}}
{quote}

    org.apache.jena.sparql.sse.builders.ExprBuildException "Not a node: true"

    [org.apache.jena.sparql.sse.builders.BuilderLib exception "BuilderLib.java" 140]
    [org.apache.jena.sparql.sse.builders.BuilderLib broken "BuilderLib.java" 147]
    [org.apache.jena.sparql.sse.builders.BuilderLib broken "BuilderLib.java" 129]
    [org.apache.jena.sparql.sse.builders.BuilderLib checkNode "BuilderLib.java" 32]
    [org.apache.jena.sparql.sse.builders.BuilderBinding buildBinding "BuilderBinding.java" 64]
    [org.apache.jena.sparql.sse.builders.BuilderBinding build "BuilderBinding.java" 36]
    [org.apache.jena.sparql.sse.builders.BuilderTable build "BuilderTable.java" 73]
    [org.apache.jena.sparql.sse.builders.BuilderOp$1 make "BuilderOp.java" 209]
    [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 128]
    [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 162]
    [org.apache.jena.sparql.sse.builders.BuilderOp$26 make "BuilderOp.java" 672]
    [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 128]
    [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 59]
    [org.apache.jena.sparql.algebra.Algebra parse "Algebra.java" 121]
    [org.apache.jena.sparql.algebra.Algebra parse "Algebra.java" 109]
    [org.apache.jena.sparql.sse.SSE parseOp "SSE.java" 287]


{quote}
As a bit of background, we are trying to rewrite SPARQL queries using ARQ in Clojure (as described in [JENA-1468|https://issues.apache.org/jira/browse/JENA-1468]). The current process is:

Parse SPARQL query -> Compile to Op -> serialise to string -> parse as SSE -> modify SSE -> serialise to string -> Parse to Op -> convert to SPARQL query

This issue is causing the 'parse as SSE' step to fail.


> Unable to parse VALUES clause containing boolean literal bindings
> -----------------------------------------------------------------
>
>                 Key: JENA-1566
>                 URL: https://issues.apache.org/jira/browse/JENA-1566
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: Jena 3.7.0
>            Reporter: Lee Kitching
>            Priority: Major
>
> Compiling the query
>  
> {{{SELECT ?b WHERE \{ VALUES ?b { true } }}}}
>  
>  into a query algebra:
>  
>  \{{Query q = QueryFactory.create("SELECT ?b WHERE { VALUES ?b { true }
> }");}}
>  {{Op a = Algebra.compile(q);}}
>  
> results in
> {{(project}}
>  {{  (?b)}}
>  {{  (table}}
>  {{    (vars ?b)}}
>  {{    (row}}
>  {{      (?b true))))}}
>  
> Attempting to parse this string representation throws an exception:
> {{SSE.parseOp("(project (?b) (table (vars ?b) (row (?b true))))");}}
> {quote}    org.apache.jena.sparql.sse.builders.ExprBuildException "Not a node: true"
>     [org.apache.jena.sparql.sse.builders.BuilderLib exception "BuilderLib.java" 140]
>      [org.apache.jena.sparql.sse.builders.BuilderLib broken "BuilderLib.java" 147]
>      [org.apache.jena.sparql.sse.builders.BuilderLib broken "BuilderLib.java" 129]
>      [org.apache.jena.sparql.sse.builders.BuilderLib checkNode "BuilderLib.java" 32]
>      [org.apache.jena.sparql.sse.builders.BuilderBinding buildBinding "BuilderBinding.java" 64]
>      [org.apache.jena.sparql.sse.builders.BuilderBinding build "BuilderBinding.java" 36]
>      [org.apache.jena.sparql.sse.builders.BuilderTable build "BuilderTable.java" 73]
>      [org.apache.jena.sparql.sse.builders.BuilderOp$1 make "BuilderOp.java" 209]
>      [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 128]
>      [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 162]
>      [org.apache.jena.sparql.sse.builders.BuilderOp$26 make "BuilderOp.java" 672]
>      [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 128]
>      [org.apache.jena.sparql.sse.builders.BuilderOp build "BuilderOp.java" 59]
>      [org.apache.jena.sparql.algebra.Algebra parse "Algebra.java" 121]
>      [org.apache.jena.sparql.algebra.Algebra parse "Algebra.java" 109]
>      [org.apache.jena.sparql.sse.SSE parseOp "SSE.java" 287]
> {quote}
> As a bit of background, we are trying to rewrite SPARQL queries using ARQ in Clojure (as described in JENA-1468). The current process is:
> Parse SPARQL query -> Compile to Op -> serialise to string -> parse as SSE -> modify SSE -> serialise to string -> Parse to Op -> convert to SPARQL query
> This issue is causing the 'parse as SSE' step to fail.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)