- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Fri, 5 Oct 2001 10:06:04 -0400 (EDT)
- To: www-rdf-rules@w3.org
[me] > If not, then it seems like there isn't much to discuss. As has > already been suggested, a rule would be of the form P -> Q, where P > and Q are both RDF graphs with some nodes variabilized. They could be > used either forward or backward. [Sandro Hawke] I'm trying to figure out a good way to "variabilize" the nodes. I suggested earlier that we could simply use the bNodes (aka anonymous nodes, aka document-scoped existential variables), with some special rules for connecting their scopes. It has been pointed out to me that linking their scopes is quite counter to RDF design; for instance, RDF/XML has no way to name these variables. (Jonathan Borden suggested [3] one could use XPointer, but that seems very awkward here.) I'm not sure what the problem is. I guess you want to variabilize the nodes while leaving the result a legal RDF graph. 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. b) Take a legal RDF graph and associate variables with some of the nodes by drawing new arcs from the nodes to the variables (i.e., giving each nodes a new 'var_label' property). Both of these ideas leave the variables without explicit scope, as in Prolog. If you want explicit scope, things get more interesting. I think with this kind of approach, the interpretation of bNodes as file-scope existential variables works perfectly. In the premise, they are just anonymous universal variables (because they are inside the "if"), and in the conclusion they become skolem functions of the universal variables, which is very useful. I think you pulled a fast one there. If the variables are really file-scope existentials, then a rule would look like this: ex x ((P x) -> (Q x)) [the 'ex x' might actually be way outside the implication, which is just one of many things in the file] This is not equivalent to ex x ((fa x (P x)) -> (Q x)) or to fa x ((P x) -> (Q x)) -- Drew McDermott
Received on Friday, 5 October 2001 10:06:05 UTC