You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Andy Seaborne <an...@epimorphics.com> on 2011/03/02 15:53:54 UTC

Re: Clarification on soh behaviours


On 21/02/11 10:27, Rob Vesse wrote:
>> Graphs are created if needed.
>
>> fuseki-server --mem --update /ds& s-post http://localhost:3030/ds
>> http://example/ D.nt s-get http://localhost:3030/ds
>> http://example/
>
>> works for me.
>
> This wasn't what I meant, obviously if you POST to a Graph that does
> not yet exist it should be created.  What I was talking about was the
> following bit of the specification:
>
> "If the request URI identifies the underlying Graph Store, the origin
> server SHOULD create a new RDF graph comprised of the statements in
> the RDF payload and return a designated graph IRI associated with the
> new graph. The new graph IRI should be specified in the Location HTTP
> header along with a 201 Created code and be different from the
> request URI. Within a service description document for an
> implementation of this protocol, the URI of an instance of the
> sd:Dataset class is understood to be the identifier of the Graph
> Store"
>
> My reading of this is that a POST to the Service URI without a
> ?graph/?default argument should create a new Graph where the protocol
> endpoint controls the assignment of a new Graph URI.  So can soh-post
> be invoked in a way that permits this or does it/Fuseki not implement
> this part of the specification?

No - not currently.

Fuseki does not support direct graph naming, and as part of that, does 
not support POSTing to the dataset itself.  It looks possible to 
determine the absolute URI to put in the "Location" based on "Host".

Because services need names, there is a conflicit between having direct 
naming and services.

The services are: ".../dataset/query" but that is also a direct graph 
name!  That's the more usual naming form and allows "dataset" to be a 
path itself.  I've also seen "/query/dataset" but that also has a naming 
conflict.

Could use the presence/absence of a query string to switch.

	Andy