- From: Sandro Hawke <sandro@w3.org>
- Date: Tue, 09 Oct 2001 14:38:57 -0400
- To: Drew McDermott <drew.mcdermott@yale.edu>
- cc: www-rdf-rules@w3.org
> [me] > >I can think of two > >responses: > > > >a) Don't require it to be a legal RDF graph. Make it an "RDF graph > >schema," that is, something containing variables that becomes an RDF > >graph when nodes are substituted for the variables. > > [Pat Hayes] > That *is* a legal RDF graph. RDF graphs have blank nodes which have > exactly the semantics of existential variables. > > [me] > [This idea] leave[s] the variables without explicit scope, as in > >Prolog. If you want explicit scope, things get more interesting. > > True; the implied scope is the graph. This makes things much easier. > > Okay, if you change Sandro's "document scope" to "graph scope," you're > right. But then a rule like > > (R1 ?x ?y) |- (R2 ?y ?x) > > becomes unstatable, because the ?x and ?y in the graph on the left are > different variables from the ?x and ?y in the graph on the right. > > Unless I'm missing something. This is where I'm stuck, too. It seems like this approach is very close to being dirt simple and fairly useful, but I can't quite get it to work. :-) That's what I meant by asking for ideas about how to make certain nodes variables, and how it would be nice to just use bNodes, but I don't know how. I was just reading Russel & Norvig [1] saying that a KB should, when asked "does there exist x, y such that P(x,y)" not only say "Yes", but also give you bindings from the existential variables to terms in the KB. Which suggests it's not too strange to refer to variables outside their scope. Unfortunately, RDF/XML makes it really hard -- it's not like RDF/N-Triples where you do know a label for the node, you're just not supposed to use it. -- sandro [1] http://www.cs.berkeley.edu/~russell/aima.html
Received on Tuesday, 9 October 2001 14:41:34 UTC