W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > July to September 2009

Review of SPARQL Update submisson (ACTION-53)

From: Luke Wilson-Mawer <luke.wilson-mawer@garlik.com>
Date: Mon, 20 Jul 2009 15:45:30 +0100
Message-ID: <4A64830A.1050908@garlik.com>
To: SPARQL Working Group <public-rdf-dawg@w3.org>
Hi,

Here are my comments on the UPDATE submission, they aren't independent 
since Steve's name is on the submission for Garlik, but hopefully 
they're useful nonetheless

http://www.w3.org/Submission/2008/SUBM-SPARQL-Update-20080715/

1) INSERT DATA/UPDATE DATA.
Streaming of large chunks of data seems like something the protocol 
ought to do - it seems to me more natural to squirt a whole file over 
the wire than to turn the data into a query.  The LOAD <remoteURI> 
feature would also seem like a natural way to do this, possibly extended 
to load local files, although I'm not sure about the security consequnces.

2) It doesn't seem clear whether a WHERE clause and FILTERS can be used 
with these verbs:
CREATE
DROP
CLEAR
LOAD

3) Do we really need the MODIFY verb?  It seems to be syntactic sugar, 
as we can always use either DELETE FROM <uri> or INSERT INTO <uri> to 
specify a graph.  It isn't used in any of the examples but it's 
mentioned elsewhere.  The only thing it seems to do is stop the user 
having to type a graph name more than once if multiple operations are 
done on the same graph in the same query.

4) I agree with Alex Passant that Example 2e would be simplified by 
introducing a MOVE verb.  Still, this example requires the full syntax:

The bookStore2 graph is created and only a year's worth of books are kept :

    PREFIX dc:  <http://purl.org/dc/elements/1.1/>
    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

    INSERT INTO <http://example/bookStore2>
     { ?book ?p ?v }
    WHERE
      { GRAPH  <http://example/bookStore>
         { ?book dc:date ?date .
           FILTER ( ?date < "2000-01-01T00:00:00"^^xsd:dateTime && ?date
     > "1999-01-01T00:00:00"^^xsd:dateTime)
           ?book ?p ?v
         }
      }

    DELETE FROM <http://example/bookStore>
     { ?book ?p ?v }
    WHERE
      { GRAPH  <http://example/bookStore>
          { ?book dc:date ?date .
            FILTER ( ?date < "2000-01-01T00:00:00"^^xsd:dateTime )
            ?book ?p ?v
          }
      }     


Thanks,

Luke
Received on Monday, 20 July 2009 14:46:09 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:39 GMT