- From: Axel Polleres <axel.polleres@deri.org>
- Date: Tue, 22 Feb 2011 09:20:01 +0000
- To: "Steve Harris" <steve.harris@garlik.com>
- Cc: "Paul Gearon" <gearon@ieee.org>, "SPARQL Working Group" <public-rdf-dawg@w3.org>
Hi Steve, I agree with your understanding of CONSTRUCT. > * but actually, I can't find anywhere in the SPARQL 1.1 draft that explicitly says that. Could well be looking in the wrong places though. As far as I can see, it is not really "formalized", but covered by the following sentence in Section 16.2 [1] "The result is an RDF graph formed by taking each query solution in the solution sequence, substituting for the variables in the graph template, and combining the triples into a single RDF graph by set union." I don't think we need to further formalise that, but it seems to me that it might be clearer to write: "The result is an RDF graph formed by taking each query solution in the solution sequence, substituting for the variables in the graph template, and combining the <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-triple">valid RDF triples</a> into a single RDF graph by set union." Opinions? (The treatment of bnodes in CONSTRUCT templates is covered by what is said in Section 16.2.1.) Axel 1. http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#construct On 22 Feb 2011, at 08:43, Steve Harris wrote: > My recollection of CONSTRUCT is that the template would match*, but only completely bound triples would be output, so > > CONSTRUCT { > _:a :p 12 . > _:a :q ?o . > } > WHERE { > ?s :r ?q > OPTIONAL { ?s :s :o } > } > > Would give > > _:b1 :p 12 . > > This seems inline with a usecase for DELETE: "Delete this pattern, and if it exists also this pattern" e.g. > > DELETE { > ?x :name ?name . > ?x :phone ?phone . > } > WHERE { > ?x a :Person . > OPTIONAL { ?x :name ?name } > OPTIONAL { ?x :phone ?phone } > } > > When I wrote this pattern, my intention was that it would delete whatever names and phone numbers for people it could find. > > * but actually, I can't find anywhere in the SPARQL 1.1 draft that explicitly says that. Could well be looking in the wrong places though. > > - Steve
Received on Tuesday, 22 February 2011 09:20:35 UTC