Re: What is an RDF Query?

From: Sandro Hawke <sandro@w3.org>
Subject: Re: What is an RDF Query? 
Date: Mon, 17 Sep 2001 13:18:50 -0400

> > > Since I have trouble thinking in RDF graphs sometimes, I translate
> > > them to a small subset of FOL for this kind of work.  Specifically, I
> > > use the subset with only constants, existential variables, 2-ary
> > > predicates, and conjunction.  (No universal variables, no negation, no
> > > disjunction, no equality, and no logic functions.)
> > 
> > Again, this sort of thing is possible, and provides good insights into the
> > meaning of RDF(S).  However RDFS is not captured by this subset of FOL, as
> > RDFS requires that rdfs:subPropertyOf be transitive.  To make this
> > intuition precise, you have to capture all of whatever you are considering,
> > as even very small changes in the formalism have large consequence.
> 
> Before considering the entirely of your message, I'd like to check on
> what you're saying here.  In saying "...RDFS is not captured by this
> subset of FOL..." it sounds like you're presuming the KB should
> capture the meaning of rdfs:subPropertyOf before we even get to our
> "rules".  

Absolutely!  How can it be any other way?

> I'm presuming instead that our "rules" will capture the
> meaning of rdfs:subPropertyOf.  

So far, you seem to be requiring that some basic entities of RDF(S) be given
meaning by constructs that come from an extension to RDF(S).  Where I come
from this is called a recursive definition and is to be avoided like the
plague.  

> That is, I'm assuming a basic system
> will know nothing of rdfs (or reification or containers or even
> rdf:types) until a set of rules providing the axiomatic semantics for
> such things are loaded (in the same manner, whatever it may be, as
> any other rules are loaded).

Oh.  You are redefining RDF(S).  This could work, sort of, but would
require a redefinition of RDF(S) into a core formalism and the full
formalism.  It also would require work on the rule system to be completed
before full RDF(S) can be defined.  

Further, some aspects of RDFS cannot be captured in Horn rules, at least not
without some ``extensions''.  

For example, how are you going to capture the meaning of domain and range
restrictions?   You can't do something like

	domain(?r,?c), ?r(?x,?y) -> ?c(?x)

because neither ?r nor ?c can be in the predicate position.  
Neither can you capture inheritance, for similar reasons.

You could, if you really wanted to, use some sort of holds predicate, but
then you have lost the intuitive connection between RDF and Horn rules,
which you probably don't want.  (See the KIF axiomatization of DAML+OIL for
an example of this sort of game.)

> Does my approach here seem reasonable?  

My view is that this approach is not reasonable, for (at least) the above
reasons.

> My big concern with it is that
> I hear DAML+OIL cannot be expressed axiomatically in Horn logic.
> Obviously there may be performance issues to this approach, but I
> think that can be addressed behind the scenes, without changing the
> general query/rule model.

Certainly there are many portions of DAML+OIL that cannot be captured in
Horn rules, including number restrictions.

>    -- sandro

Received on Monday, 17 September 2001 14:03:49 UTC