inputSerialization - was: Re: Agenda - 27 Feb @ 14:30 UTC

Lee Feigenbaum wrote on 02/25/2007 05:51:49 PM:

> 
> 5. protocol status
> 
> Elias is looking into the WSDL ramifications of supporting 
> application/sparql-query as an input serialization for the protocol. Not 

> sure if there's anything to discuss here this week.

I've done more looking into this. To recap where we stand, Bjoern sent 
this message in September:

  
http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2006Sep/0007

...in which he suggested adding application/sparql-query to the 
whttp:inputSerialization attribute of the "query" operation. Bjoern 
surmised that this would allow clients to post SPARQL query documents 
directly to the server.

By virtue of our WSDL defining the input message parts via a reference to 
an XML schema element (<input ... element="st:query-request"/>), the query 
message has a message content model of "element". Turning to:
6.3.2.1 Serialization rules for XML messages ( 
http://www.w3.org/TR/wsdl20-adjuncts/#_http_binding_default_rule_psf ), we 
see that there are serialization rules given explicitly for 
application/xml. These rules are at 
http://www.w3.org/TR/wsdl20-adjuncts/#_http_operation_xml_encoding and say 
that serializing a message as application/xml means that the message's 
instance data is serialized as Canonical XML. Further, the instance data 
is explicitly defined ( 
http://www.w3.org/TR/wsdl20-adjuncts/#instance_data ) to be "The internal 
tree representation of an input...constrained by...the XML element 
referenced in the {element declaration} property of the Interface Message 
Reference component".

As I read it, this means that the inclusion of application/xml amongst our 
inputSerialization allows for POSTed content that looks like:

<st:query-request>
  <st:query>SELECT * WHERE { ... } </st:query>
  <st:default-graph-uri>http://example.org/graph1</st:default-graph-uri>
  <st:default-graph-uri>http://example.org/graph2</st:default-graph-uri>
  <st:named-graph-uri>http://example.org/graph3</st:named-graph-uri>
</st:query-request>

By looking at the minutes from our 10 Jan 2006 telecon and subsequent 
mailing list messages, I do not believe that this is what Kendall (and the 
rest of the WG?) had in mind when we made this change:

  http://www.w3.org/2006/01/10-dawg-minutes#item02
  http://lists.w3.org/Archives/Public/public-rdf-dawg/2006JanMar/0072

(Kendall, can you comment as to whether I'm interpreting those records 
correctly?)

Continuing in 6.3.2.1 we see that any serialization other than 
application/xml, multipart/form-data, or application/x-www-form-urlencoded 
must be serialized just as application/xml would be, but the message's 
HTTP Content-type header must be set to the appropriate type 
(application/sparql-query in this case). This does not seem to be the 
behavior Bjoern is looking for.

...all of which seems to leave us with a few options/questions:

1/ Eliminate application/xml from our list of accepted input 
serializations. To some extent, this addresses the confusion Bjoern had 
initially (why application/xml and not application/sparql-query). Does 
anyone know of any servers or clients that use application/xml 
serialization?

2/ Figure out how to allow for POSTed application/sparql-query documents 
in the manner Bjoern suggests. I am not sure what this entails, or if its 
even doable in WSDL 2.0.

Elias and Kendall, do you have any thoughts on this?

Perhaps we can discuss at the telecon tomorrow, time permitting...

Lee

Received on Tuesday, 27 February 2007 01:25:36 UTC