- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Thu, 04 Nov 2010 12:54:48 +0000
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
The SPARQL 1.0 Protocol is defined in WSDL. A query can be sent as ?query= using GET or the POST equivalent using content type application/x-www-form-urlencoded, where the query= can end up in the body of the request. We need to define how to send SPARQL 1.1 Update requests over HTTP. Use of application/x-www-form-urlencoded is problematic because the body is the bytes for a form-encoded HTTP request. This makes it harder to process at scale by making streaming harder; some systems will consume and parse the entire form body before letting the service access the HTTP form, resulting in a in-memory copy. SPARQL Update requests have the potential to be very large e.g. INSERT DATA { ... lots and lots of triples ... } is the way to do inline upload of data. Directly using HTTP< not via HTML forms, would be better: POST (and PATCH) with content-type application/sparql-update, and the request directly in the body (POST can still have a query string so it does not preclude additional arguments). But we still may want to define use from an HTML form as well for It needs the parameter name defined - suggestion "request=" so (1) can tell query from update simply and (2) it's a request, not a query. Proposal: 1/ SPARQL 1.1 Update requests are transmitted by POST (or PATCH) with content type "application/sparql-update". Responses are 200, 400 and others as appropriate. 2/ We also describe (non-normative) use with HTML forms with parameter "request=" 3/ For consistency: We also register a MIME type for SPARQL queries "application/sparql-query". This is not absolutely necessary but it has the useful effect of registering ".rq" for the file extension. it can be used when serving SPARQL queries in response to a GET. Andy
Received on Thursday, 4 November 2010 12:55:25 UTC