- From: Dan Connolly <connolly@w3.org>
- Date: Thu, 12 Jul 2007 14:21:57 -0500
- To: Ben Adida <ben@adida.net>
- Cc: mark.birbeck@x-port.net, RDFa <public-rdf-in-xhtml-tf@w3.org>, SWD WG <public-swd-wg@w3.org>
On Thu, 2007-07-12 at 12:02 -0700, Ben Adida wrote:
[...]
> Two questions, then:
> - how does one declare that the range of an RDF property is a list?
That one is easier, so I'll take it first:
:brothers rdfs:range rdf:List.
(there are ways of saying "list of person", but they're
a little obscure and not terribly relevant to this discussion.)
> - where are lists used in RDF?
Good question. I don't know if they're sufficiently commonly
used to merit special syntax in RDFa. (you can always
spell them out with rdf:first/rdf:rest/rdf:nil).
The main use I can think of is in OWL:
<#Man> owl:intersectionOf ( <#Person> <#Male> <#Adult> ).
This is in contrast with
<#Man> owlx:intersectionOf <#Person>, <#Male>, <#Adult>.
which is short for:
<#Man> owlx:intersectionOf <#Person>.
<#Man> owlx:intersectionOf <#Male>.
<#Man> owlx:intersectionOf <#Adult>.
I hope it's clear why that owlx construct won't work.
Hmm... I thought this was written up in
http://esw.w3.org/topic/ClosedWorldAssumptions or somewhere
near there, but perhaps not, so consider:
<#Dan> :brother <#Bob>, <#Tim>.
<#Bob> owl:differentFrom <#Joe>.
<#Tim> owl:differentFrom <#Joe>.
We still don't know whether { <#Dan> :brother <#Joe> } or not.
If we want the "and that's all!" property, we need to use lists:
<#Dan> :brothers (<#Bob> <#Tim>).
<#Bob> owl:differentFrom <#Joe>.
<#Tim> owl:differentFrom <#Joe>.
Assuming :brothers is functional, we know know that Joe
is not among Dan's brothers.
--
Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Thursday, 12 July 2007 19:22:09 UTC