- From: Steve Harris <steve.harris@garlik.com>
- Date: Thu, 11 Mar 2010 08:05:56 +0000
- To: "public-rdf-dawg@w3.org Group" <public-rdf-dawg@w3.org>
I've been playing with my Update implementation this morning. If you have a string like "CLEAR INSERT", it's not clear whether that's an instruction to clear the default graph, followed by an insert with a syntax error, or just a bogus insert. What I actually typed is "CLEAR <a>", when I meant "CLEAR GRAPH <a>". That parses as a "clear the default graph" operation (i.e. delete everything) followed by a syntax error - oops! This may be a problem with the parser I'm using, but I can imagine that it's hard to avoid. Syntax like "CLEAR <a> ;" would make it easier to parse as intended, but as a weaker alternative, having some keyword to indicate that you want to operate on the default graph would be safer, e.g. "CLEAR DEFAULT INSERT...". It's possible to parse the whole update operation in one go, to ensure that there's no syntax errors, but that removes the point of the DATA keyword, which is potentially a valuable optimisation. Even in queries with no syntax errors this may be quite exciting as there are some fairly innocuous looking (at first glance) legal updates that have drastic effects: CLEAR DELETE DATA { <x> <y> <z> } I guess that's the SPARQL equivalent of DELETE FROM a<enter> when you mean to add WHERE id=23 on the end before submitting the query - Steve -- Steve Harris, Garlik Limited 2 Sheen Road, Richmond, TW9 1AE, UK +44 20 8973 2465 http://www.garlik.com/ Registered in England and Wales 535 7233 VAT # 849 0517 11 Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD
Received on Thursday, 11 March 2010 08:06:25 UTC