Re: Practical issues arising from the "null relative URIs"-hack - iContainers

On 1 Apr 2014, at 07:56, Reto Gmür <reto@wymiwyg.com> wrote:

> 
> 
> 
> On Mon, Mar 31, 2014 at 9:46 PM, Pierre-Antoine Champin <pierre-antoine.champin@liris.cnrs.fr> wrote:
> On Mon, Mar 31, 2014 at 9:02 PM, Kingsley Idehen <kidehen@openlinksw.com> wrote:
> On 3/31/14 2:23 PM, Richard Cyganiak wrote:
> Kingsley,
> 
> On 31 Mar 2014, at 18:54, Kingsley Idehen <kidehen@openlinksw.com> wrote:
> Simple solution: make it clear that LDP is based on Turtle Notation. There are pros and cons to this approach (naturally), but being clear ultimately reduces confusion. Inferring that LDP is based on RDF, in this context, without the suggested clarification re., notation specificity, is just another case of RDF conflation (abstract and concrete syntaxes) and inevitable confusion.
> Would it be insane to say that LDP (or at least its POST semantics for containers) is based on something else, let’s call it a “relative RDF graph”, which has the following properties:
> 
> - It is similar to an RDF graph
> - But it may contain relative URIs
> - It can be resolved against a base URI to yield a “normal” RDF graph
> - It’s what we get when we parse a Turtle file that contains relative URIs without resolving them
> - Relative RDF graphs cannot be stored in RDF stores, cannot be merged, cannot be reasoned over, etc.
> - To do any of those things, it needs to be resolved against a base first.
> 
> Best,
> Richard
> 
> 
> 
> 
> Not insane at all, you've captured all the fundamental characteristics of what LDP is based on, at this point in time.
> 
> +1
>  
> My only concern would be the first point where you state "..similar to an RDF graph" which kind of dissociates LDP and RDF .
> 
> How about "an intermediate abstraction layer between the RDF abstract syntax and (most of) its concrete syntaxes".
>  
> Maybe "a declarative RDF graph" could work better, it keeps the coupling loose and defensible (in my eyes).
> 
> -0.9
> I don't really get the meaning of "declarative" here, nor what makes a (non-relative) RDF graph less "declarative" than a relative one.
>  
> Anyway, the crux of the matter is covered above, we just needs integration into the spec, using clear (as possible) language and good examples.
> 
> That would be a major improvement, IMHO, but would still let many developers helpless, as this new notion is not explicitly covered by RDF toolkits and library -- and why would it, as it has just been coined :)
> 
> How about a WG note providing examples in major RDF libraries of the best way to generate and serialize a relative Graph?
> 
> 
> +1 on introducing Relative RDF, this would bring back LDP to the level of abstraction it should be. It is similar to RDF but strictly speaking it is not RDF, so I think any attempt to hide this would compromise the conceptual clarity RRDF introduces.
> - All the syntaxes that support defining a base URI externally can be used to serialize RRDF graphs. But I don't think defining RRDF as intermediate abstraction layer would make things clearer. Since in all these formats it is possible to have the base URI specified in the file this would break this intermediate abstraction layer. Future versions of turtle spec will say that it can serialize an RDF graph of and RRDF graph.
> - I think quite some reasoning could be done on RRDF graphs so I would omit this statement
> - Open questions: is RRDF a superset of RDF or does a graph need to have at least one relative IRI resource to be RRDF.

If push comes to shove I think we can do without relative graphs, since the RDF1.1 Abstract Syntax makes just
enough room for serialisations with relative URIs, only requiring a full URI to be used to transform them to full graphs.

But I do agree that an intermediate notion of relative graph would be very useful. In fact I have an open issue in banana-rdf for
us introducing it there https://github.com/w3c/banana-rdf/issues/41 "new types for relative uris and relative graphs". As far as
programmatic APIs go, this would allow one to deserialise graphs early on in a POST before knowing the base URI. An API with
those concepts would allow a compiler to detect a lot of bugs. Currently Jena and Sesame allow relative Graphs, but they are not
typed as such. This means that a developer ( me for example ) can easily get confused as to whether one has or does not 
have a relative graph. Most reasoning can only be done on rdf graphs.

Henry



>  
> 
> Cheers
> Reto
>  best
> 
> 
> 
> 
> -- 
> 
> Regards,
> 
> Kingsley Idehen 
> Founder & CEO
> OpenLink Software
> Company Web: http://www.openlinksw.com
> Personal Weblog: http://www.openlinksw.com/blog/~kidehen
> Twitter Profile: https://twitter.com/kidehen
> Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
> LinkedIn Profile: http://www.linkedin.com/in/kidehen
> 
> 
> 
> 
> 
> 
> 

Social Web Architect
http://bblfish.net/

Received on Tuesday, 1 April 2014 06:37:02 UTC