- From: Lee Feigenbaum <lee@thefigtrees.net>
- Date: Wed, 23 Sep 2009 03:58:58 -0400
- To: Chimezie Ogbuji <ogbujic@ccf.org>
- CC: SPARQL Working Group <public-rdf-dawg@w3.org>
When we discussed SPARQL/Update over SPARQL/Protocol, there seemed to be
agreement that it must be the case that a URI can be a SPARQL endpoint
without needing to support SPARQL/Update over the protocol. i.e. there
can be read only endpoints.
it was less clear whether there's a case for write-only endpoints.
in either case, it was suggested that a natural way to extend the
protocol would be to have update statements over HTTP be indicated with
update= rather than query=. Chimezie wondered on the telecon and below
whether that was necessary.
From the SPARQL/Protocol point of view, we seem to have a few choices
for how to support SPARQL/Update:
+ It can be its own Interface (a la SparqlQuery)
+ It can be its own Operation (a la query)
...others?
In either case, the WSDL HTTP bindings seem to say ... if i'm reading
them right ... that the only thing that determines how to construct a
GET IRI or the qyuery string for the body of a POST is the local name of
the sequence of child elements of the element that forms the input
message element for the operation. right now it's:
<xs:element name="query-request">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="query"
type="xs:string">
<xs:annotation>
<xs:documentation>query is an xs:string constrained by the
language definition,
http://www.w3.org/TR/rdf-sparql-query/#grammar, as "a sequence
of characters in
the language defined by the [SPARQL] grammar, starting with
the Query production".</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="default-graph-uri" type="xs:anyURI"/>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="named-graph-uri" type="xs:anyURI"/>
</xs:sequence>
</xs:complexType>
</xs:element>
...which has child elements query, default-graph-uri, named-graph-uri,
which is why that's what SPARQL over HTTP looks like.
All of which is to say, surprisingly to me, that the operation name
isn't encoded into HTTP bindings at all.
the main difference between making it a separate interface vs. a
separate operation is...? I'm not sure yet, need to re-learn that. Maybe
what faults can be returned?
Anyway, practically speaking, the benefit of always doing query= seems
to be the same benefit as we have right now for having the same
operation for all SPARQL query types (select, construct, ask, describe)
-- a generic client can easily take a query string from a user and pass
it to a SPARQL endpoint, without needing to parse it at all.
The benefit to having update= is - I think - that it's easier for a
read-only endpoint to reject SPARQL/Update queries without needing to
parse the query.
What do people prefer?
Lee
PS I learned that the WSDL HTTP serialization rules are order specific -
so in SPARQL Protocol you must do the query parameter followed by the
default-graph-uri parameter followed by the named-graph-uri parameter in
your HTTP query strings. Intended or unintended consequence?
PPS I think we might use WSDL's "IRI Style" incorrectly because the
local name of our input message's XML root element (query-request) is
not the same as the operation name (query). Is there anyone in the world
who possibly cares about this?
Chimezie Ogbuji wrote:
> Per my ACTION-78,
> Continue discussion of update= vs. query= on the mailing list
>
> What I was suggesting during the telcon this tuesday was: whether or not an
> endpoint is providing either read (GET/POST) or write (POST) services or
> both should be implementation-specific and not triggered by query parameters
> in the resource URI.
>
> ----------------------
> Chimezie
> Heart and Vascular Institute (Clinical Investigations)
> Cleveland Clinic (ogbujic@ccf.org)
> Ph.D. Student Case Western Reserve University
> (chimezie.thomas-ogbuji@case.edu)
>
>
> ===================================
>
> P Please consider the environment before printing this e-mail
>
> Cleveland Clinic is ranked one of the top hospitals
> in America by U.S. News & World Report (2008).
> Visit us online at http://www.clevelandclinic.org for
> a complete listing of our services, staff and
> locations.
>
>
> Confidentiality Note: This message is intended for use
> only by the individual or entity to which it is addressed
> and may contain information that is privileged,
> confidential, and exempt from disclosure under applicable
> law. If the reader of this message is not the intended
> recipient or the employee or agent responsible for
> delivering the message to the intended recipient, you are
> hereby notified that any dissemination, distribution or
> copying of this communication is strictly prohibited. If
> you have received this communication in error, please
> contact the sender immediately and destroy the material in
> its entirety, whether electronic or hard copy. Thank you.
>
>
>
Received on Wednesday, 23 September 2009 07:59:55 UTC