- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Mon, 22 Nov 2004 14:55:44 +0000
- To: kendall@monkeyfist.com
- CC: public-rdf-dawg@w3.org
Kendall Clark wrote: > Folks, > > I've decided to pretend as if I believe that doing something too > simple in the protocol space will result in something *actually useful > and interesting* much sooner than trying to do something interesting > right now. Good idea. How about turning the HTTP concrete part into a working draft as quickly as possible and working on the overall abstractions on a different timescale? > > I don't actually believe this, but I'm going to try it on for size. > > So I've published a new draft of my protocol document that: > > - removes 5 of the 7 methods, leaving on query and getGraph I still have a concern about getGraph: either its plain GET and does not need specifying (case where the graph is at the location of its name; modelcentric view of teh world)) or it is a query language request just like any other (servic centric view of the world). More below. I also have an issue about multiple query languages served by one query service. There is no way to differentiate incoming requests a to what language there are in without the request dispatcher needing to understand each and every parameter. I'd like a "lang=" parameter to allow one service to be able to handle requests in different query languages. The service can receive a request, decide which (internal) processors it is for and dispatch it without the service handler needing to grok the contents of the q= string, for example. And some queries are syntactically legal SPARQL and RDQL. It may well be more normal to have one service per query languge but a non-mandatory parameter would be helpful. > - removes all talk of discovery, advertisement, and WSDL > - hardcodes (gag!!!) query parameters The parametrs aren't listed: I found: "g" uri of the data graph ; may be repeated "q" query string "q-uri" the query is a document somewhere. Pesumable should be a URL as this is the HTTP binding. but there are other parameters in the HTTP header: distinct, stream, limit. I propose that there is one place for parameters - in the query string. Only limit seems to serve a purpose. The use of "g" is overloaded: in getTriples it results in a multi-part MIME retrune, one part per graph, which is like a query over each of the named graphs. But in the SPARQL example, there is a single query over the named collection. The document talks about being neutral to service-centric and model-centric viewpoints but I don't think it is - I think (the HTTP binding at least) is purely service-centric. We should pick one - service centric is fine. What distinguishes the two cases are: + a plain GET on the processor URL + whether a graph URI is often found in the request URL. The examples would all require a "g=" parameter but the data graph may be implicit in some services - can still be a named collection of graphs at the service access point. Section 7, examples: 1.4 example of ASK query: Shouldn't that return something in the body? Using Return code 200 for ASK=>yes does not work well as 200 means operation executed successfully, with no reference to the outcome data at the operation level. An ASK of "no" is a successful operation with answer "no". 2. getGraph In these examples, requests are directed to a query processor - this makes GET a query language like any other. if theer is a "lang=", its just a query language in requests as well. It would be better to defer to normal, regular HTTP documentation here and not examine the use of content negotation, encoding or charset - it really should be regular, off-the-shelf HTTP here. Nothing worth noting surely? And the HTTP stuff applies to all operations. getGraph does have: Sparql: distinct,stream,limit=10 which I don't understand the intention of: - How can getGraph need distinct? - RDF/XML does not stream by default - or it does, what does it mean and isn't it a significant burden on the implementer of the serializer. - What is limit applied to? Triples? - - - - - - One thing did jump out: """ Query Result IMT The Internet Media Type of a Query Result. """ Isn't it that the media type is application/xml or application/rdf+xml? There isn't a media type that identifies a query result. Andy > > In other words, I've forked myself -- a sure sign of insanity. :> > > If nothing else, having 2 v. different but obviously related drafts > should give the WG something to straw poll, so that we can figure out > where the hell we are. > > Hence, the new version (1.7) of the protocol is available at > > http://monkeyfist.com/kendall/sparql-protocol-simplex/ > > While the older, fuller (and more interesting!) version of the > protocol is (and will remain) available at > > http://monkeyfist.com/kendall/sparql-protocol/ > > Best, > Kendall Clark
Received on Monday, 22 November 2004 14:56:33 UTC