W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > January 2011

RE: Comments on SPARQL 1.1 Uniform HTTP Protocol and Service Description

From: Rob Vesse <rav08r@ecs.soton.ac.uk>
Date: Wed, 26 Jan 2011 10:40:35 -0000
To: <public-rdf-dawg-comments@w3.org>
Message-ID: <EMEW3|735ca16de9b77afd20df54a234072c71n0PAfB06rav08r|ecs.soton.ac.uk|008901cbbd45$7720c320$65624960$@soton.ac.uk>
Hi all

I would like to add a couple comments expanding on Leigh's points which I
had planned to send as a comment to the Working Group today anyway.

My main concerns are regarding the use of OPTIONS for a Uniform Protocol
service to return a Service Description and the contents of the Service
Description itself:

1. The Uniform Protocol document does not state what it expects to be
returned from an OPTIONS request.  Am I expected to do a 30x redirect to the
Service Description document OR to return a 200 OK with a Location: header
pointing to the service description OR am I expected to return the Service
Description directly in response to the request?
This needs clarifying as currently I've been forced to assume the middle
option (200 OK with a Location header) based on my reading of the draft:

> It is RECOMMENDED that the OPTIONS and GET  methods be used as
> a request whose URI identifies the service that implements 
> this protocol in order to retrieve information about the 
> communication options available"

2. Service Description only has means to describe Query and Update endpoints
but not to describe a Uniform Protocol service.  This seems a fairly major
oversight, while I appreciate that such a service does not necessarily have
a single URI it will typically have a base URI under which it accepts and
processes all requests.
I appreciate that the SPARQL Protocol and the Uniform Protocol are intended
to be separate and the Service Description document implies that it intended
for the SPARQL Protocol only.  So if this is the intention what business
does a Uniform Protocol endpoint have producing a Service Description anyway
unless it will also provide Query/Update endpoints via the SPARQL Protocol.
Which realistically IMHO is going to be a fairly common use case.

3.  How much of the Service Description is required?  I assume pretty much
everything is optional including the dataset description.  This is of
interest to me since in my implementation the HTTP endpoint does not have
direct access to the dataset behind it due to various layers of abstraction
in my APIs.  Should a Service Description always describe the dataset or is
it sufficient to just describe the basic properties of the service?

4. Are Query and Update endpoints expected to always return the Service
Description in response to an OPTIONS request?  Also under what other
circumstances should the description be returned?  I'm inclined to assume
that if a GET request is made with no query and the client does not want
HTML (or prefers RDF over HTML) then they should get the Service
Description.  Some clarification over how and when the Service Description
is retrieved would be nice.


Rob Vesse

-----Original Message-----
From: public-rdf-dawg-comments-request@w3.org
[mailto:public-rdf-dawg-comments-request@w3.org] On Behalf Of Leigh Dodds
Sent: 26 January 2011 09:48
To: public-rdf-dawg-comments@w3.org
Cc: Kjetil Kjernsmo
Subject: Re: Comments on SPARQL 1.1 Uniform HTTP Protocol Working Draft 14
October 2010


On 26 January 2011 06:18, Kjetil Kjernsmo <kjetil@kjernsmo.net> wrote:
> On Tuesday 25. January 2011 17:49:24 Chimezie Ogbuji wrote:
>> Also.  As a result of internal discussion and comments regarding this
>> term, the current editor's draft replaces 'RDF knowledge' with 'RDF
>> graph content' and I will be using this latter terminology in
>> subsequent parts of this email.
> That's a better term, but I feel that we should first identify the
audience of
> this spesification. Is it the thousands of developers who could implement
> or is it a foundational document that other authors could use to document
> it should be done for the former group? Honestly, I think that the current
> document is both too opaque and not sufficiently specified to be useful to
> developers, but I also feel that the current discussion is interesting and
> important.

I agree with comments raised in this thread that the current document
could be simplified. I see from the discussion that some changes to
terminology have been incorporated into subsequent editors drafts, but
broadly I think avoiding introduction of new terms should be avoided.
E.g. "RDF payload" isn't this just the entity body for the HTTP
request, why not just use the existing terms?

The Atom protocol is a good resource to draw on, not just in terms of
the simplicity of how the operations are documented for developers (of
both audiences), but also in terms of a basic model for the protocol

Ian raised the issue of describing operations on a dataset, including
listing graphs. In my view there ought to be a simple RESTful way to
interact directly with the dataset, treating it as a container of
graphs that can be added and removed, similar to Atom collections.

I'm not convinced that the Service Description document fulfils that
particular role. The current Working Draft suggests returning an
reference to a description document from an OPTIONS request. But I
think there are several issues with that:

* I may be misunderstanding, but Service Description documents are
accessible from the URI of a SPARQL endpoint. However I'm not sure
there's necessarily a 1:1 mapping between a GraphStore and SPARQL

* It's (still) not clear to me how GraphStore relates to Dataset.

* The service description document indicates that a SPARQL endpoint
may expose several datasets, so how does a client identify the correct
Service or Dataset in the description.

* If a GraphStore supports the creation and management of datasets,
then presumably these need to be identified so I can interact with it,
e.g. to DELETE it? If not then how do I add/remove graphs from a
specific dataset?

* From a Service Description document I should be able to find the URI
for manipulating a specific sd:Graph via the Uniform Protocol. It's
not enough to simply reference the URI of the service as that will
require URI construction on the client side.


Leigh Dodds
Programme Manager, Talis Platform
Received on Wednesday, 26 January 2011 10:41:42 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:52:11 UTC