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

> >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 UTC