- From: Axel Polleres <axel.polleres@deri.org>
- Date: Thu, 05 Jul 2007 14:35:21 +0100
- To: "public-rdf-dawg-comments@w3.org" <public-rdf-dawg-comments@w3.org>
referring to the examples in Section 12.2.2 of http://www.w3.org/TR/2007/CR-rdf-sparql-query-20070614/ 2 issues: 1) What happened here? --------- Example: group consisting of a basic graph pattern and an optional graph pattern: { ?s :p1 ?v1 OPTIONAL {?s :p2 ?v2 } } LeftJoin( Join(Z, BGP(?s :p1 ?v1)), Join(Z, BGP(?s :p1 ?v1)) ), true) LeftJoin(BGP(?s :p1 ?v1), BGP(?s :p2 ?v2), true) --------- --------- Example: group consisting of a basic graph pattern and an optional graph pattern with a filter: { ?s :p1 ?v1 OPTIONAL {?s :p2 ?v2 FILTER(?v1<3) } } LeftJoin( Join(Z, BGP(?s :p1 ?v1)), Join(Z, BGP(?s :p1 ?v1)), (?v1<3) ) LeftJoin( BGP(?s :p1 ?v1) , BGP(?s :p2 ?v2) , (?v1<3) ) ----------- these two examples seem to have some copy-paste-errors, yes? 2) Another question concerning FILTERs in OPTIONALS (I checked this with http://www.sparql.org/validator.html) Please just verify: It is indeed true that SELECT ?N ?M WHERE { ?X foaf:name ?N . ?X :age ?Age . OPTIONAL { ?X foaf:mbox ?M. FILTER(?Age > 30) } } is equivalent to SELECT ?N ?M WHERE { ?X foaf:name ?N . ?X :age ?Age . OPTIONAL { { ?X foaf:mbox ?M. FILTER(?Age > 30) } } } but SELECT ?N ?M WHERE { ?X foaf:name ?N . ?X :age ?Age . OPTIONAL { ?X foaf:name ?N . { ?X foaf:mbox ?M. FILTER(?Age > 30) } } } is not semantically equivalent, yes? I am asking, because I originally also thought the second variant would treat the FILTER local to ist group graph pattern thanks & best regards, axel -- Dr. Axel Polleres email: axel@polleres.net url: http://www.polleres.net/
Received on Thursday, 5 July 2007 13:35:40 UTC