Re: A modest attempt to re-open ISSUE-20

On 14 Mar 2013, at 09:33, Reto Bachmann-Gmür <reto@apache.org> wrote:

> 
> 
> On Thu, Mar 14, 2013 at 9:09 AM, Henry Story <henry.story@bblfish.net> wrote:
> 
> On 14 Mar 2013, at 08:26, Reto Bachmann-Gmür <reto@apache.org> wrote:
> 
>> 
>> 
>> On Wed, Mar 13, 2013 at 11:54 AM, Henry Story <henry.story@bblfish.net> wrote:
>> 
>> On 13 Mar 2013, at 10:40, Andy Seaborne <andy.seaborne@epimorphics.com> wrote:
>> 
>> >
>> >
>> > On 13/03/13 07:10, Pierre-Antoine Champin wrote:
>> >> Henry,
>> >>
>> >> On Wed, Mar 13, 2013 at 2:15 AM, Henry Story <henry.story@bblfish.net
>> >> <mailto:henry.story@bblfish.net>> wrote:
>> >
>> >
>> >>
>> >>    The abstract syntax  specificiation allows for relative URLs:
>> >>    http://www.w3.org/TR/rdf11-concepts/#rdf-documents
>> >>
>> >>
>> >> This section is about serialization; it explicitly says "concrete syntaxes".
>> >> On the other hand, the definition of IRI for the graph model
>> >>
>> >> http://www.w3.org/TR/rdf11-concepts/#dfn-iri
>> >>
>> >> explicitly says "IRIs in the RDF abstract syntax MUST be absolute".
>> >
>> > Yes.
>> >
>> > A syntax may allow a relative URI but that's in a document and a document has a base URI.  The relative URI is relative to some base URI.  Relative URI have a role in syntax
>> >
>> > RFC 3986 makes it clear:
>> >
>> > [[
>> > 5.1.  Establishing a Base URI
>> >
>> >   The term "relative" implies that a "base URI" exists against which
>> >   the relative reference is applied.  Aside from fragment-only
>> >   references (Section 4.4), relative references are only usable when a
>> >   base URI is known.
>> > ]]
>> 
>> And indeed they are: when you POST content the server will know what
>> URIs the relative ones are referring to, once he has created the resource.
>> 
>> IIUC, the server will know but the producer of the RDF serialization does not. So what is effectively serialized is not actually RDF but a pseudo RDF supporting relative URIs that can only be serialized in those RDF serializations implicitly supporting this. 
> 
> What you are serialising is a concrete syntax, not an abstract syntax. Concrete syntaxes can have 
> relative URLs. 
> 
> It seems to me that I'm serializing an RDF graph using a concrete syntax.

Sorry I mean to write you are serialising *to* a concrete syntax. So we agree here.
>  
> 
> When the Jena or Sesame APIs allow you to create such serialisations are those libraries lying because they don't know where the serialisation is going to end up on your hard drive or on your server?
> 
> For Clerezza and afaik also for Jena and Sesame you cannot create a graph with relative URIs. You have to create valid RDF graphs and on serialization you can specify to use a certain base URI against which relative URIs are created.

Nobody said you have to create a graph with relative URLs. 

>  
> When an artist produced HTML with relative URLs and sends a tar of it to the company that made the request, is the html sent  to them flawed because the artist does not know the exact path for where the html is going to end up at? ( Put some RDFa in the html if you feel like saying the example is irrelevant )
> 
> For RDFa like other serializations formats with relative URI the serilaization does not represent an RDF graph without the additional base URI.

Indeed. What is being passed over the wire is not a graph but a concrete syntax.

>  
> 
>> I think not letting the client deal with the RDF on the abstract syntax level is quite a severe limitation.
> 
> 
> That is why we are using the concrete syntax Turtle to pass information to and fro, not the abstract one.
> 
> The spec mandates turtle as a serialization format. As turtle is designed to serialize RDF graphs it seemed save to  assumed the payloads of the messages are actually supposed to serialize RDF. The Turtle spec does not foresee Turtle to be used to serialize a pseudo RDF without proper RDF URI references. It can of course trivially be used for that purpose (with a slight modification of section 2.1 and 2.2 of the turtle spec). But then the LDP spec should clearly specify what turtle is supposed to serialize and what other formats might be (ab)used for this.

The relevant section of the Turtle spec is section 6.3
http://www.w3.org/TR/turtle/#relative-iri

Notice that you cannot use NTriples to do what you want either, since you cannot
know when creating a resource what the URI of the created resource is going to be.
You would need to only use blank nodes in the graph produced, which would be
to say the least very awkward. 

There is nothing strange happening here. This is just how things function pragmatically
( and in the philosophy of language this type of behavior comes under the topic
of pragmatics, where one deals with words such as "I", "You", "Here", "There", etc )
Developers around the world have been doing this since the beginning of the web:
Write some html with relative URIS and then FTPing it to their web server. We are just
automating this here with POST.

> 
> Reto
>  
> 
> Henry
> 
>> 
>> Cheers,
>> Reto
>>  
>> 
> 
> 
> Social Web Architect
> http://bblfish.net/
> 
> 

Social Web Architect
http://bblfish.net/

Received on Thursday, 14 March 2013 09:03:38 UTC