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 2014/08/28 23:27:10 UTC

[jira] [Commented] (JENA-771) TransformExpandOneOf is not applied as expected

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

Andy Seaborne commented on JENA-771:
------------------------------------

A couple of test cases:
{noformat}
filter true
  (distinct
    (filter (in ?x 1 2 3)
      (bgp (triple ?s ?p ?x)))))
==>
(filter true
  (distinct
    (filter (in ?x 1 2 3)
      (bgp (triple ?s ?p ?x)))))
{noformat}
{noformat}
(filter true
  (distinct
    (filter (= ?x <x>)
      (bgp (triple ?s ?p ?x)))))
==>
(filter true
  (distinct
    (assign ((?x <x>))
      (bgp (triple ?s ?p <x>)))))
{noformat}
{{ExprTransforms}} seem to work.  {{TransformExpandOneOf}} should probably work that way.

But this isn't the only thing going on e.g.
{noformat}
(distinct
  (filter true
    (distinct
      (filter (= ?x <x>)
        (bgp (triple ?s ?p ?x))))))
==>
(distinct
  (filter true
    (distinct
      (assign ((?x <x>))
        (bgp (triple ?s ?p <x>))))))
{noformat}
where rewriting the inner filters sub-op has worked.

> TransformExpandOneOf is not applied as expected
> -----------------------------------------------
>
>                 Key: JENA-771
>                 URL: https://issues.apache.org/jira/browse/JENA-771
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: Jena 2.12.0
>            Reporter: Rob Vesse
>            Assignee: Andy Seaborne
>              Labels: optimizer, sparql
>
> We ran into a strange case where {{TransformExpandOneOf}} doesn't appear to get applied properly.
> Consider the following query:
> {noformat}
> SELECT ?x
> WHERE
> {
>   FILTER(true)
>   {
>     SELECT ?x
>     WHERE
>     {
>       FILTER (?x NOT IN (1, 2, 3))
>     }
>   }
> }
> {noformat}
> Which produces the following algebra:
> {noformat}
> (project (?x)
>   (project (?x)
>     (filter (exprlist true (notin ?x 1 2 3))
>       (table unit))))
> {noformat}
> Note that the {{NOT IN}} was left in the expression form rather than being expanded to the equivalent {{!=}} expressions.
> If the first {{FILTER}} line is commented out then the following algebra is produced:
> {noformat}
> (project (?x)
>   (project (?x)
>     (filter (exprlist (!= ?x 1) (!= ?x 2) (!= ?x 3))
>       (table unit))))
> {noformat}
> So it looks like there is something going on that somehow blocks {{TransformExpandOneOf}} from working when another filter is present in the outer query.  Possibly this is something related to filter placement?
> This problem occurs as far back as 2.11.1 and can be reproduced with 2.11.2, 2.12.0 and current trunk.  It does not appear in 2.11.0 so must have been introduced in 2.11.1



--
This message was sent by Atlassian JIRA
(v6.2#6252)