- From: Dan Connolly <connolly@w3.org>
- Date: Thu, 15 Nov 2001 09:03:40 -0600
- To: Pat Hayes <phayes@ai.uwf.edu>
- CC: w3c-rdfcore-wg@w3.org
Pat Hayes wrote: > > [...] > >Perhaps with a small change > >of emphasis/style it will look more like a graph: > > > > Node = symbol U string U bnode > > Edge = Node x Node x Node > > Graph = 2^Edge > > > >where symbol is the set of URIs w/fragids; string > >is the set of unicode character sequences; bnode is > >a set disjoint from those two sets, and 2^X > >is notation for "sets of X's". > > OK, but you ought to distinguish the nodes from their labels. Why? I don't have any labels. > Blank > nodes don't have labels, after all. *None* of the nodes have labels, by this reckoning. [...] > >Er... well, I wasn't there when the decision was made, and > >I don't really see why it was made. It seems like a case > >of making something sufficiently fuzzy that nobody can > >disagree with it. > > Its not fuzzy; the graph syntax is perfectly well-defined. The great > utility of the graph syntax is that it eliminates the need for > scoping existential variables, because the thing corresponding to an > existential variable is a blank node, and every blank node is unique; How do you mean? Do you mean something like "we assume, without loss of generality, that no two graphs share a blank node"? If so, that can apply equally well to the bnodes I'm talking about, no? > the question of whether two blank nodes are the 'same' or 'different' > is settled in the syntax itself. This, in the graph syntax there are > no bound variables, or local names, or anything at all with a local > scope. phpht. How are blank nodes not bound variables? > This makes the graph syntax much easier for many folk to > understand, apparently, folk for who the notion of a local name > causes a lot of mental grief (see the mailing archives for evidence, > or recall the best part of a day used up at the F2F arguing over > this); I don't recall. Again: I wasn't there for the 2nd day. > and it certainly makes the definitions of things like graph > merging much easier to state, since one doesn't need to get into > issues like renaming, standardizing names apart, etc. , etc. No? Why not? How is it that you conclude that bnodes in different graphs are different? I don't see it stated in the model theory. > In fact > you don't need to do *anything* to blank nodes in a merge. Your blank nodes and my bnodes are the same, no? Any magic that applies to your blank nodes applies to my bnodes equally well, no? My bnodes are not (necessarily) character sequences or names or anything like that; bnode is just a set that's disjoint from symbol and string. The only difference between the 25 Sep graph syntax and what I'm proposing is that I'm cutting out the indirection from URI-symbols to graph nodes: it's one thing for folks to get used to the way URIs denote things; it's another thing altogether to say that URIs label nodes and nodes denote things. A useless level of indirection, I suggest. > As soon as > we have any kind of locally scoped names in the graph, There's only one scope per graph/document in what I'm proposing, just like the 25 Sep model theory. > this critical > advantage of the graph syntax is lost; and then I think there would > be no advantage to be gained from using the graph syntax, and we > would be better advised to revert to a lexical syntax of some kind, > like Ntriples. > > > > >> It certainly is a rejection, in effect, of the > >> *reasons* why that decision was made, viz. to get rid of bound > >> variables (local names, anonymous things that had names anyway, > >> skolems, whatever you want to call them) from the primary syntax. . > > > >Get rid of bound variables? What version of the model > >theory was rid of bound variables? > > Every version. There are no bound variables in the graph syntax. Again: in what way are blank nodes not bound variables? > >certainly > >not the version published 25 September 2001: > > > >"This effectively treats all unlabeled nodes as existentially > > quantified in the RDF graph in which they occur." > > > > -- http://www.w3.org/TR/2001/WD-rdf-mt-20010925/ > > It *treats* them as existentially quantified, in the sense that a > faithful translation of the graph syntax back into logic would map > blank nodes (or bNode IDs) into existentially bound variables; but > there aren't any such variables in the graph itself, again: how are blank nodes not variables? > so questions > about what it means for a name to be 'local' do not arise; sure they do; they're answered ala "each RDF formula/document has exactly one scope." > issues of > accidental clashes of local names don't arise; I don't see why not. Again: what magic guarantees that blank nodes don't collide when two graphs are merged? > and issues of > determining and recording scopes don't arise. They do arise, and they are anwered; again: there's one scope per RDF graph/document/forumula. > All labels in every > graph are global in scope (urirefs and literals) and what would be > the 'local' names simply aren't there. Unlabeled nodes don't have > labels, so they don't need a scope. Somehow the fact that these blank node variables don't take the form of symbols/character-sequences means they don't need scope? I don't follow. > >I do think I'm missing the point. > > Its really only a technical point about a syntactic style, but I > think it is a useful feature of current RDF that it would be a pity > to abandon without very good reasons. If we do abandon it, the MT and > all the stuff on reasoning and entailment will suddenly get more > complicated both to state and to implement. I don't see how the model theory would get any more complicated if you went with the syntax I'm proposing. I know it would get simpler because there would be no indirection from URIs to nodes before the interpretation. Either there's something in the model theory that I don't see, or there's something in your mind that you haven't written into the model theory. -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Thursday, 15 November 2001 10:05:13 UTC