W3C home > Mailing lists > Public > semantic-web@w3.org > October 2012

Linked Data Platform ISSUE-20: What is the base URI of a POSTed document?

From: Steve Battle <steve.battle@sysemia.co.uk>
Date: Wed, 10 Oct 2012 15:10:28 +0100
To: <semantic-web@w3.org>
Cc: <public-ldp-wg@w3.org>
Message-ID: <002101cda6f1$017582e0$046088a0$@sysemia.co.uk>
The Linked Data Platform http://www.w3.org/2012/ldp working group has a use
case to be able to create an resource within an container (with both the
resource and the container described in RDF) <1.3.8 UC-BPC2: Create resource
within a container
<http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements#UC-BPC2:_Create_
resource_within_a_container> >. The intention is to HTTP POST an RDF
representation, including the subordinate resource, to the container URI. 

 

The issue boils down to 'what is the base URI of a POSTed document.?' 

Consider the following cases (assuming @base is not embedded in the
content):

 

A) The base URI is the notional base of the communicated RDF document:

In Turtle, URIs in angle brackets may be base relative URIs, so '<>' is the
base URI itself.

 

<> a foaf:PersonalProfileDocument;

       foaf:primaryTopic <#me> .

                

B) The base URI is the request URI used in the POST (the container URI):

This approach requires the container to Skolemize the anonymous resource
(See <http://www.w3.org/wiki/BnodeSkolemization>).

 

<> rdfs:member [

      a helios_bt:BugtrackerIssue;

      dc:identifier "58365"

   ]

 

I would have used the same example, but since (in this interpretation) the
URI of the resource isn't known until it is created, we would have to make
assertions about #me in a separate step.

Of course, in this case, the use of the document base '<>' is optional; the
URI of the container is known at the time of the request. But this doesn't
really answer the question.

 

The Relevant Standard:

RFC 3986: Uniform Resource Identifier (URI): Generic Syntax

5.1.  Establishing a Base URI: The base URI of a reference can be
established in one of four ways:

1. Base URI embedded in Content.

2. Base URI of the encapsulating entity. "If no base URI is embedded, the
base URI of a document is defined by the document's retrieval context."

3. URI used to retrieve the entity. "if a URI was used to retrieve the base
document, that URI shall be considered the base URI."

4. Default Base URI (application-dependent)

   

However, as a POSTed resource has no real retrieval context it appears to
drop right through levels 2 and 3, leaving us with an application dependent
choice.

In a linked data context one might then ask , "if a URI _were-_ used to
retrieve the base document, that URI shall be considered the base URI." In
that case (A) is the most natural solution.

 

--

Steve Battle
Semantic Engineer

Mobile: +44 (0)7503 624 613

E-mail:  <mailto:steve.battle@sysemia.co.uk> steve.battle@sysemia.co.uk
Web:  <http://www.sysemia.com/> www.sysemia.com

 

Sysemia Limited
The Innovation Centre, Bristol &  Bath Science Park, Dirac Crescent,
Emerson's Green, Bristol BS16 7FR
Registered in England and Wales. Company Number: 7555456

DISCLAIMER

Information contained in this e-mail is intended for the use of the
addressee only, and is confidential and may also be privileged. If you
receive this message in error, please advise us immediately. If you are not
the intended recipient(s), please note that any form of distribution,
copying or use of this communication or the information in it is strictly
prohibited and may be unlawful. Attachments to this e-mail may contain
software viruses which may damage your systems. Sysemia Ltd have taken
reasonable steps to minimise this risk, but we advise that any attachments
are virus checked before they are opened.

 
Received on Wednesday, 10 October 2012 14:11:00 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:48:42 UTC