- From: Andy Seaborne <andy.seaborne@talis.com>
- Date: Wed, 23 Dec 2009 11:34:43 +0000
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
> ISSUE-24: Can data be SELECTed from one graph and INSERTed into another (moved)? > This is allowed In addition to the basic operations for SPARQL/Update, I think it is useful to provide operations that are short forms for common actions. It helps application writer and data administrators because it is a clearer statement of the intent. It helps implementers so they can do it specially without needing to worry about pattern analysis - this is an issue for scripting and lightweight implementations. A short form is defined to be exactly the semantics of it's long form. It does not need any other specific definition. Form: COPY <g1> INTO <g2> short for: INSERT { GRAPH <g1> { ?s ?p ?o } } WHERE { GRAPH <g2> { ?s ?p ?o } } Form: MOVE <g1> INTO <g2> short for INSERT { GRAPH <g1> { ?s ?p ?o } } WHERE { GRAPH <g2> { ?s ?p ?o } } DROP <g2> Form: This one can't be directly written in SPARQL/Update easily. This might be a sign we're missing something, UNLOAD <g1> FROM <g2> which is delete all the triples in <g1> from <g2>. It's the DELETE DATA equivalent using referenced data like LOAD is to INSERT DATA. LOAD <g1> INTO <tmp1532> WITH <g2> DELETE { ?s ?p ?o } WHERE { GRAPH <tmp1532> { ?s ?p ?o } } and, yes, you can't delete bnodes in <g2> this way LOAD <g1> INTO <g3> LOAD <g2> INTO <g3> UNLOAD <g1> FROM <g3> may not result in <g3> being the same (bnode isomorphic to) <g2>. Use CLEAR if you want to remove bnodes. It's a common enough aggregation pattern to be worth having though. Andy
Received on Wednesday, 23 December 2009 11:34:55 UTC