- From: Melvin Carvalho <melvincarvalho@gmail.com>
- Date: Mon, 4 Oct 2010 22:52:21 +0200
- To: Pat Hayes <phayes@ihmc.us>
- Cc: Semantic Web <semantic-web@w3.org>
On 4 October 2010 00:21, Pat Hayes <phayes@ihmc.us> wrote: > I'll try to answer this one... > > On Oct 2, 2010, at 5:02 AM, Melvin Carvalho wrote: > >> The Semantic Web was based on the principle of using global variables. > > Well, not exactly. One of the foundational ideas, certainly, is the existence of global *names*, in the form of URIs (or URI references or IRIs, whatever), but these are not *variables*. They correspond more to constant names than to variables in logic, a sign of which is that they have nothing to bind them and they have no local scope rules. > >> It seems to me that bnodes kind of break this pattern. > > Im not sure what pattern you mean, but certainly bnodes aren't names or identifiers. In fact, they are in effect local variables, bound to the graph in which they occur. As the RDF semantics points out, they are exactly like existential variables. Think of each bnode as being a word like 'someone' or 'something', to see how different they are from true names. > >> I was wondering if there was a systematic method for naming bnodes >> (e.g. take a hash of the content) > > Well, the very idea of a *blank* node is one that has no name, so this idea seems to be rather against the spirit of the bnode, so to speak. Of course, concrete syntaxes do use bnode identifiers, but these are really just an artifact of the need to represent a graph in a linear character sequence. These bnode identifiers are purely local to the graph. > > If bnodes were given some kind of 'global' name, then they would be essentially the same as URI references. (And in fact, one can always use a URIref rather than a bnode, and write bnode-free RDF. Several authorities have urged this as a good practice, though I disagree.) It would be analogous to prohibiting the use of words like 'someone' in English, and requiring instead that a name be used, even if the name is coined just for this purpose. A global naming scheme for bnodes would be like a convention that one had to say 'person-<hash-identifier>' rather than simply 'someone'. I think I see your point, but I'm not sure the 'someone' argument really holds true in English. By 'someone' I mean the 61st word of the previous paragraph. QED. I'm curious as to why you would not advocate a best practice of allowing a triple to be referenced, as I cant see a whole lot of disadvantages, and there probably are advantages. What about using a best practice unique hash (assuming non collision, of say, SHA1) in the serializations. Something like git does a clever thing and takes a sha1 of the contents of each file it store and uses that as the identifier. In this way it avoids collisions of identical items and gives things global IDs independent of what's in them. I guess I'm missing some of the history/motivations behind RDF. Is there useful a case where you would NOT want to reference the contents of a bnode (let's say even if you had it for free)? > >> Seems to me you could solve a lot of the problems of RDF with this >> were the case? > > What problems? > > Pat Hayes > >> >> > > ------------------------------------------------------------ > 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 Monday, 4 October 2010 20:52:50 UTC