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

Andy Seaborne updated JENA-384:
-------------------------------

    Description: 
substitution is normally done after optimization so that it preserves the 
semantics in case of complex optional situations. 
The equality filter optimization eliminates code that can't generate a solution 
(the variable is unbound in the subexpression)

This can be unexpected but it's neither clearly right or clearly wrong. The 
semantics of initial binding need clarifying; 
   either 
      pure substitution semantics, with the substitution applied before 
optimization
   or 
      VALUES semantics (join with a data table) in which case elimination of 
redundant pattern matching is correct.

In the example, it's only an issue with URIs (reason?) but the general point 
remains.




  was:
substitution is normally done after optimization so that it preserves the 
semantics in case of complex optional situations.

But the equality filter optimization eliminates code that can't generate a 
solution (the variable is unbound in the subexpression.

This can be unexpected but it's neither clearly right or clearly wrong. The 
semantics of initial binding need clarifying; 

either pure substitution semantics, with the substitution applied before 
optimization

or VALUES semantics (join with a data table) in which case elimination of 
redundant pattern matching is correct.

In the example, it's only an issue with URIs (reason?) but the general point 
remains.




    
> Interaction of optimization (TransformFilterEquality) and initial binding
> -------------------------------------------------------------------------
>
>                 Key: JENA-384
>                 URL: https://issues.apache.org/jira/browse/JENA-384
>             Project: Apache Jena
>          Issue Type: Bug
>    Affects Versions: ARQ 2.9.4, Jena 2.10.0
>            Reporter: Andy Seaborne
>              Labels: ARQ
>         Attachments: ReportSubstitueOptimize.java
>
>
> substitution is normally done after optimization so that it preserves the 
> semantics in case of complex optional situations. 
> The equality filter optimization eliminates code that can't generate a 
> solution (the variable is unbound in the subexpression)
> This can be unexpected but it's neither clearly right or clearly wrong. The 
> semantics of initial binding need clarifying; 
>    either 
>       pure substitution semantics, with the substitution applied before 
> optimization
>    or 
>       VALUES semantics (join with a data table) in which case elimination of 
> redundant pattern matching is correct.
> In the example, it's only an issue with URIs (reason?) but the general point 
> remains.

--
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