W3C home > Mailing lists > Public > semantic-web@w3.org > June 2010

Re: What is it that's wrong with rdf:List

From: Paul Gearon <gearon@ieee.org>
Date: Thu, 17 Jun 2010 18:35:34 -0400
Message-ID: <AANLkTikulk0IJ9uXmkHTV6_iS7eppkoTYkHMdB3e0gEw@mail.gmail.com>
To: Norman Gray <norman@astro.gla.ac.uk>
Cc: Semantic Web <semantic-web@w3.org>
On Thu, Jun 17, 2010 at 6:19 PM, Norman Gray <norman@astro.gla.ac.uk> wrote:
> Greetings.
> What is it that's so wrong/bad/wicked with rdf:List?  Can anyone point me to some reading?

I wouldn't say wrong, bad or wicked. Indeed, rdf:List is the structure
of an RDF Collection, while the other option for grouping data is the
RDF Container (Alt, Seq or Bag). The latter is typically considered to
by poor modeling, and "everyone knows that" RDF Containers are bad and
considered poor modeling practice.  :-)

The main problem with an RDF list is that there is no mechanism in
SPARQL to query or update them. SPARQL only allows you to form queries
that explicitly describe connections, while an arbitrary list can have
any number of elements down its length. That means that you can refer
to, say, the 2nd, 3rd, or 4th elements in the list, but there is no
way to refer to ALL the elements in the list, since you don't know how
long the list is.

SPARQL 1.1 will fix this problem with "property paths".

> I have the impression that 'everyone knows that' rdf:List is bad in some way, but can't find any explicit account of what's so very wrong with it.  This is a pity, because I find myself wanting to use it.
> The page at [1] implies in passing that rdf:List represents 'bad modelling practice'.  [2] is an (unanswered) list question about rdf:List making an ontology OWL Full (which is clearly awkward if you want to do reasoning with things, but less so if you simply want to express things).

I haven't looked at your references yet, but both OWL Lite and OWL DL
have constructs in them that are expressed in RDF using a list. So
using a list does not force a model to become OWL Full.

>[3] suggests ... well, I'm not completely clear what it suggests, but it seems that rdf:List isn't favourite for expressing lists.
> And what's the alternative, if I want to say in RDF that a particular thing is related to an ordered set of other things -- perhaps an article has a particular sequence of authors?  [4] refers to an OWLList ontology (and a broken link to a rationale).  I follow how that ontology works, but don't get the significance of the apparently minor ways in which it's different from rdf:List.

The alternative is the Container (rdf:Alt, rdf:Seq or rdf:Bag), but as
I said, this is considered bad practice. Use rdf:List instead.  :-)

Paul Gearon
Received on Thursday, 17 June 2010 22:36:07 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:18 UTC