- From: Pat Hayes <phayes@ihmc.us>
- Date: Fri, 20 Mar 2009 10:49:35 -0500
- To: Story Henry <henry.story@bblfish.net>, "Richard H. McCullough" <rhm@pioneerca.com>
- Cc: Bijan Parsia <bparsia@cs.man.ac.uk>, Reto Bachmann-Gmür <reto.bachmann@trialox.org>, Michael Schneider <schneid@fzi.de>, Semantic Web <semantic-web@w3.org>
On Mar 20, 2009, at 9:43 AM, Story Henry wrote: > > On 20 Mar 2009, at 15:37, Richard H. McCullough wrote: > >> I have often wondered why RDF doesn't allow lists >> to written in the style that is used in programming >> languages today: >> >> [a,b,c,d] >> >> You can use "list" as a predicate >> >> X list [a,b,c,d] >> >> They're easy to parse, easy to read. > > You can do this in N3: > > basket contains (chicken cheese yoghurt) . > > No idea what this talk about rdf lists not being real lists is > about, and just being syntactic things. > Seems pretty bazaar to me when we have the two relations rdf:first > and rdf:next . I don't see why these can't be functional. > They can be, but it won't get you what (I suspect) you want. Consider a 'crazy' RDF list: a:a rdf:type rdf:List a:a rdf:first a:B a:a rdf:first a:C a:a rdf:rest a:d a:d rdf:rest a:e Considered as a data structure, this is broken. It has two firsts and no second item, and it doesn't have a well-defined end. Note, however, this is a perfectly reasonable _description_ of a list, indeed of quite a number of lists: it is just incomplete, as a description. Being incomplete, it fails to describe one list well enough to nail it down uniquely. But this is not an RDF bug. RDF descriptions can _always_ be incomplete. One can never know when more information might appear on the Web from somewhere. Suppose that rdf:first and rdf:rest were owl:functionalProperties. Would this make the above example ill-formed? No. Would it require that the missing pieces be inserted? No. Would it change the meaning? Well, it would allow one to conclude that a:B owl:sameAs a:C, which is maybe a step in the right direction. But (as Bijan pointed out) you might not want to go in that particular direction, because the complexity of establishing that two different IRIs are owl:sameAs one another is arbitrarily high, and might be out of range for most intended uses of the rdf collection vocabulary. RDF is not a programming language. It does not provide lists in the way that LISP or PYTHON do. What it provides is a way to _describe_ lists, basically by making assertions about them. A sufficiently complete and non-confusing collection of assertions (RDF triples) can be treated as being an actual list, for modeling purposes: but no amount of semantic conditions is going to be able to ensure that any RDF graph is complete and non-confusing in the way required, because this is a _syntactic_ condition upon an RDF graph. Pat Hayes > Henry > >> Dick McCullough > > > > ------------------------------------------------------------ IHMC (850)434 8903 or (650)494 3973 40 South Alcaniz St. (850)202 4416 office Pensacola (850)202 4440 fax FL 32502 (850)291 0667 mobile phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes
Received on Friday, 20 March 2009 15:51:39 UTC