- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Mon, 27 May 2002 18:03:55 -0400
- To: sandro@w3.org
- Cc: danbri@w3.org, www-rdf-interest@w3.org
From: Sandro Hawke <sandro@w3.org> Subject: Re: Container semantics (was Re: bNodes wanted) Date: Mon, 27 May 2002 09:24:20 -0400 > > From: Sandro Hawke <sandro@w3.org> > > > > Well, RDF has no mechanisms for creating statements in one RDF graph use > > a bnode > > > > from another RDF, so even being able to talk about the container, does no > > t > > > > allow one to, for example, add new elements to it. > > > > > > What's the difference between talking about a container (and saying > > > "by the way, container C happens to contain X") and adding a new > > > element to it (which in RDF looks something like "container C contains > > > X (along with possibly other things)")? Of course there are at least > > > three different syntactic ways of doing RDF containers (rdf:_1, > > > rdf:li, daml:first/rest) and the semantics of each seem rather poorly > > > defined, so it's hard to argue about. > > > > > > -- sandro > > > > Well, if a container is a bnode, then you can't do either in RDF, which is > > the point. > > You mean if the container is identified by a bNodes, I assume. > Containers are in the domain of discourse; bNodes are not (in the RDF > Core vocabulary). Correct. > But a container that is identified by a bNode may well be identified > by other means as well. It almost certainly is, in any practical > example. Why would you be stating members in a container, unless the > containers had some connection to things with a known identity? Sure. > One might say "William has a set of authored plays, which > contains one titled 'Hamlet'": > people:william author:plays _:x. > _:x collections:member _:y. > _:y dc:title "Hamlet". > and the collection (_:x) is identified with a bNode, but that doesn't > stop someone else from coming along and saying > people:william author:plays _:xx. > _:xx collections:member _:yy. > _:yy dc:title "Romeo & Juliet". Agreed. > Now the two collections (the first persons _:x and the second person's > _:xx) may or may not be the same thing, but I can't imagine why one > would use this kind of structuring unless author:plays were a unique > property. If it is (and the appropriate declarations have been made, > and the namespaces used above are the same), then one can infer that > _:x and _:xx identify the same object, .... and the first author's > use of a bNode to identify a collection failed to prevent a second > author from asserting membership information about the collection. Well, you can't do this in RDF, which is the point. Suppose I wanted to create the collection of plays that Shakespeare wrote. I might proceed as follows: <people:Person rdf:ID="Shakespeare"> <authorCollection> <rdf:Bag> <rdf:li rdf:resource="plays:Hamlet" /> <rdf:li rdf:resource="plays:Macbeth" /> ... </rdf:Bag> </authorCollection> </people:Person> > Which brings us back to my ealier point: I don't think bNodes are very > useful for keeping other people from linking to your information (that > is, from saying things about the same things your saying things > about). And that seemed to be your use case against Skolemization. How can someone add any elements to the above Bag from outside the document, even the using more-powerful n-triples notation? I don't see a way. The situation would be entirely different if the Bag had an ID, however. > -- sandro peter
Received on Monday, 27 May 2002 18:04:08 UTC