Re: ISSUE-77: Should we mark rdf:Seq as archaic (cf ISSUE-24)

On 15 Oct 2011, at 04:40, Sandro Hawke wrote:
> On Fri, 2011-10-14 at 14:05 +0200, Ivan Herman wrote:
>> On Oct 14, 2011, at 13:15 , Dan Brickley wrote:
>> 
>>> On 14 October 2011 11:56, Steve Harris <steve.harris@garlik.com> wrote:
>>>> Not only that, it's actually useful.
>>>> 
>>>> There's only two (common) syntactic ways of expressing sequences/arrays/vectors, rdf:Seq and RDF Collections.
>>>> 
>>>> Both are pretty cumbersome, ugly, and arguably "broken" from some perspective, but as we don't have a valid replacement I don't think we should remove either one at the moment.
>>> 
>>> 
>>> Yup, sorry I forgot XMP briefly; but yes that + RSS1 are significant,
>>> even if "old fashioned". XMP in particular is very hard to update
>>> because the files are all out there in the wild. I'm not sure we gain
>>> much by making some of our biggest and earliest backers look retro.
>>> 
>>> Doing ordering in a binary relationship structure like RDF, especially
>>> with all the open-worldism and data mixing, is always going to be a
>>> challenge. We'd do better issueing friendly guidelines and examples
>>> and tutorials, than issuing grand proclamations about how people's
>>> REC-following data is broken / obsolete.
>> 
>> +1
> 
> I politely disagree.    I think Turtle makes RDF Collections seem quite
> nice, and hopefully that will quickly set the tone (perhaps with a
> little help from us) for APIs and SPARQL 1.2 (?) having nice list
> handling functions that are as efficient as native (non-destructive)
> list handling functions. (I hope some APIs do this already.)

Turtle makes Collections seem nice, yes, but underneath they still have a pretty baroque structure when viewed as triples, and there's the possibility of loops, breaks, branches, missing ends and other problems with the structure of the list triples.

For example, the following SPARQL Update operation will change all Collections in the default graph to gibberish:

DELETE { ?x rdf:rest rdf:nil }
INSERT { ?x rdf:first 1, 2, 3 }
WHERE { ?x ref:rest rdf:nil }

or even

INSERT { ?y rdf:rest ?x }
WHERE { ?x rdf:rest ?y } 

You could argue that RDF stores should be responsible for tracking the structure and integrity of all the Collections, and somehow rejecting ones that are structurally incorrect, but that would be quite a lot of processing if they were widely used.

It's true that Seqs can become non-contiguous, but I'm not convinced that's a more serious problem.

- Steve

> Could that be done for Seq as well?  I don't think so, since there's no
> closing of the list.  So, we end up with one pretty-decent list
> mechanism, and one less-good one.   I think the only fair thing, in that
> situation, is to tell people that's what we've got.   And if you tell
> people they could use A or B, and A is better than B, that amounts to
> marking B as an Archaism.
> 
>   -- Sandro
> 
> 
> 

Received on Saturday, 15 October 2011 22:01:46 UTC