Re: inconsistency: container members being resources and/or literals

Hi Karsten--

Yes, there's something of an "inconsistency", but it's just in the 
descriptions used in the documents, not in the essential meaning.  Read on.

Karsten Tolle wrote:
> Hi,
> 
>  
> 
> sorry, I could not manage to scan the entire archive if this issue has been
> 
> raised before. So, in case it has been already discussed, please, send 
> me the
> 
> link to it.
> 
>  
> 
> During exploring the RDF recommendations I discovered an inconsistency
> 
> for containers. While in RDF Schema (5.1) and in RDF Semantics (4.1)
> 
> container members are defined to be resources only, we can read in the
> 
> RDF Primer (4.1) that members can be either resources or literals.
>

Actually, all the documents are "correct" about this.  If you look 
carefully, both RDF Schema and RDF Semantics define "resource" as 
including *everything*, including literals (and RDF Schema defines 
rdfs:Literal as a subclass of rdfs:Resource).  So while RDF Schema and 
RDF Semantics define container members to be resources, as far as they 
are concerned that's not a constraint, because resources include 
literals.  Primer mostly refers to either literals or URIrefs, but in 
describing containers it describes members as being either resources or 
literals.  Technically, that's a bit redundant, due to the way RDF 
Semantics defines resources (as including literals), and probably this 
could have been explained better (independently of containers), but it 
was intended to emphasize that you could have literals as members of 
containers too.

>  
> 
> If the RDF Primer is right and members can be resources or literals
> 
> (à no rdfs:range defined for rdfs:member), we might have:
> 
> _:x rdf:type rdf:Seq
> 
> _:x rdf:_1 “test”
> 
> _:x rdf:_1 http://www.example.com
> 
>  

As discussed above, yes, you can have this.  BTW:  RDF Test Cases has an 
example of a container having literal members.

> 
> one could (I am not 100% sure about this) entail that “test” and
> 
> http://www.example.com are equal. (I think this is at least one reason why
> 
> literals are not used in Collections.)
> 

You can't show this entailment in RDF and, as noted above, literals 
*are* used in *containers* (I tend to reserve "Collections" for the 
list-thingies;  you can use literals in them too).  The objects of the 
two statements are different, and RDF attaches no particular semantics 
to the rdf:_1 properties, so they are just two statements using the same 
predicate.  It's as if you'd said

_:x  ex:author "John Smith"
_:x  ex:author http://example.com/authors/#72345

This doesn't entail that the two authors are the same person (there 
might be two authors, referred to differently).

>  
> 
> If RDF Schema and RDF Semantics are right, we have the problem that it is
> 
> very difficult to describe a set of literals or a mixture of literals 
> and resources
> 
> in RDF.
> 

As noted already, you don't have this problem.

--Frank

Received on Thursday, 10 February 2005 16:38:45 UTC