# Making Rules Out of RDF-Graphs (Re: What is an RDF Query?)

From: Sandro Hawke <sandro@w3.org>
Date: Mon, 17 Sep 2001 14:52:13 -0400
To: Pat Hayes <phayes@ai.uwf.edu>

```
> >I think we ought to seriously explore the possibility of using an RDF
> >graph not only as the assertion language, but also as the query, rule-
> >premise, and rule-conclusion languages.
>
> That idea has already been explored by Stefan Decker. He and some
> colleagues demonstrated a working system at the DAML PI meeting
> (which I think you were also at, Sandro, no?)

Sorry, I didn't mean to say it hadn't been done, just that it should
be discussed on this list.

> >
> >Style 2:
> >
> >    We say that any variables in the second formula which are not also
> >    in the first formula remain as local existential variables.
> >
> >      (1) EXISTS g1,g3 Grandparent(g1,g3)
> >      (2) EXISTS g1,g2,g3 Parent(g1,g2) AND Parent(g2,g3)
> >
> >    would become a rule like this:
> >
> >      FORALL g1,g3
> >         Grandparent(g1,g3)
> >	=>
> >         EXISTS g2 Parent(g1,g2) AND Parent(g2,g3)
> >
> >       (This rule basically says that if two things have a grandparent
> >       relationship, there is a third thing and they have a transitive
> >       parent relationship through that third thing.)
>
> Why not go to the usual normal form and say that this is two rules,
> since its conclusion is a conjunction. If you skolemize, the skolem
> function will keep track of the connections for you:
>
> Forall g1, g3 (grandparent(g1,g3) => Parent(g1, GPSkolem(g1,g3)) )
>
> Forall g1, g3 (grandparent(g1,g3) => Parent(GPSkolem(g1,g3), g3) )

You might well Skolemize it like that internally (you'd have to if you
were giving it to a Horn logic engine), but if you require users to do
it, then the rule-conclusion language needs to have functions in it.
I'm suggesting that we try making RDF rules out of less-expressive
stuff (to use the technical term) than that.

> >    This may well not be full Horn logic, but I believe it's more
> >    expressive than Style 1,
>
> Yes, it is, since it has existentials inside the scope of universals,
> which isn't expressible in RDF.  But we could still use RDF as a
> language for specifying the 'patterns' to be matched, but allow a
> somewhat larger collection of bindings to the variables than just
> ground URIs and literals. Think of a skolem function as a kind of
> link to a place in the rules where a query engine has a licence to
> conclude that something exists which satisfies some RDF, but it has
> to use a special name format to keep track of the mutual dependencies
> of that thing on other things.
>
> (Hmm, I wonder, could a nested function  term be encoded as a URI? If
> so, this *would* be RDF.)

Yeah, but if we're going to go that route, ...   well it just seems
like we might as well add nestable function terms throughout RDF.   I
guess both paths seem worth exploring.

> Pat Hayes

-- sandro
```
Received on Monday, 17 September 2001 14:56:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:53:09 GMT