- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Sat, 26 Nov 2016 13:36:07 -0800
- To: Andy Seaborne <andy@apache.org>, public-sparql-exists@w3.org
Yes, I forgot about the phantom empty BGPs in the algebra. My mistake. That addresses one or two of the cases, but not, I think, all the MINUS ones. I'll update my message. What about { SELECT ?x WHERE { } }? Isn't that translated as follows? Translate( { SELECT ?x WHERE { } } ) Join( Z, Translate( SELECT ?x WHERE { } ) ) Join( Z, ToMultiSet( ... ) ) ToMultiSet( ... ) Also, is every case of OPTIONAL going to work out in Proposal B? peter On 11/26/2016 12:07 PM, Andy Seaborne wrote: > > > On 26/11/16 18:47, Peter F. Patel-Schneider wrote: >> I have added a new test and shown what I think the results for several >> setups are are on some data. The "Expected" results are what I think should >> be expected from the fixed definition of SPARQL that the group is supposed >> to produce. >> >> Graph >> :s :p :v . >> :t :r :w . >> >> >> SELECT ?x WHERE { >> ?x :p :v . >> FILTER ( EXISTS { >> FILTER ( ?x = :s ) ) >> } ) >> } >> >> Specification { { (x,:s) } } >> Proposal A { { (x,:s) } } >> Proposal B { } >> Expected { { (x,:s) } } > Proposal B gets { { (x,:s) } } > > There is a empty BGP that the FILTER ( ?x = :s ) applies to which is no > removed by simplification so it injects ?x. Filter in the algebra always > filters the results of a pattern. > > (prefix ((: <http://example/>)) > (project (?x) > (filter (exists > (filter (= ?x :s) > (bgp empty))) > (bgp (triple ?x :p :v))))) > > My prototype gets: > > ------ > | x | > ====== > | :s | > ------ > > > Andy > > (PS This may become a duplicate - I sent a copy from the wrong address a few > mins ago) >
Received on Saturday, 26 November 2016 21:36:41 UTC