- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Tue, 02 Oct 2012 11:22:48 +0100
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
> Concerning insert-data-same-bnode2.ru I prefer that the scope of bnode > _:b be one insert data and hence that the generated bnodes be different. > The reason is that if you execute the two insert data using one query or > using two queries, the result is the same. Also it is more uniform with > insert where. GRAPH is not a factor so let's simplify a bit: Consider 1/ One operation Two uses of a bNode label in one INSERT DATA INSERT DATA { _:b :p :o1 . _:b :p :o2 . } 2/ One operation Only one syntactic mention of of _:b INSERT DATA { _:b :p :o1 ; :p :o2 . } 3/ Two operations, one request INSERT DATA { _:b :p :o1 } ; INSERT DATA { _:b :p :o2 } 4/ Two operations, two requests Request 1: INSERT DATA { _:b :p :o1 } Request 2: INSERT DATA { _:b :p :o2 } Cases (1) and (2) have the same bNode and because of (2) they must be the same bNode. And it's that way in Turtle and SPARQL 1.0. Cases (1) and (4) must be different. We are left where the change happens - is (3) like (4) or (1)/(2)? We already distinguish requests as atomic ("SHOULD be"). So across two requests, other things can change. Requests are also the unit in the protocol and in the grammar. I see (3) as just a different syntax, like (2) is to (1) hence I prefer (3) to be be like (1). The rule is labels are scoped to the document (which is the request) rather than make an "operation" a significant unit. This is not a "must be" technical decision - it's about style. It also means ";" works like concatenating Turtle files in regards to label scoping. Andy
Received on Tuesday, 2 October 2012 10:23:21 UTC