- From: Sandro Hawke <sandro@w3.org>
- Date: Sun, 29 Apr 2007 18:33:01 -0400
- To: kifer@cs.sunysb.edu (Michael Kifer)
- Cc: Jos de Bruijn <jos.debruijn@deri.org>, RIF <public-rif-wg@w3.org>
> > > > [Jos] (1) This would be a possible way to go, yes.
That is, Skolemize b-nodes. RIF Core stays as-is.
Maybe Const is subclassed to add a "Skolem" non-semantics flag, if
someone can show why that's important.
> > > > [Jos] (2) Another possibility would be to allow existentially
> > > > quantified variables in facts which come from RDF triples, and
> > > > show that skolemization can be used for reasoning.
I think you're saying, syntactically, that we'd put a restricted form of
Exists, whose formula could only be a triple, up to parallel Forall.
Right?
We currently have:
class RULE
subclass Forall
property declare : list of Var
property formula : CLAUSE
and you'd add:
subclass ExistsInTriples
property declare : list of Var
property triple: list of Triple
> > > > [Jos] (3) Finally, we could combine the two in a more modular
> > > > way. We could define the combination of an RDF graph S with a
> > > > set of rif rules P as a tuple (S,P), and define a notion of
> > > > combined interpretations, similar t > o what is done in DL-log
> > > > [1].
This case, syntactically, would change Ruleset from:
class Ruleset
property formula : list of RULE
to something like:
class Ruleset
property formula : list of RULE
property bnode : list of Var
property triple: list of Triple
Right?
> > > > I think I would prefer the second option. Compared to the first
> > > > option, it has the advantage that the embedding is closer to the actual
> > > > semantics of RDF. Compared to the third option, it has the advantage
> > > > that (I think) it will be easier to understand, and you can more easily
> > > > be reused in extensions with nonmonotonicity and extensions towards
> > > > production rules.
> > >
> > > The second option is problematic. If we allow existential vars in the
> > > facts, then we have to revise the whole theory of rules starting with
> > > Horn. Every dialect will then need to be able to support existential fact
> s,
> > > so it means that we will possibly need to revisit stable, well-founded,
> > > etc. semantics. These are possibly worthy things, but this group is not
> > > chartered with doing original research. Worse, if we do it wrong the firs
> t
> > > time and it becomes a W3C recommendation then future generations won't
> > > forgive us :-)
> > >
> > > I think option (3) is a safer way to go.
> >
> > It seems to me like option (1) is the safe/cheap route, since it doesn't
> > burden RIF implementors with RDF details. Doesn't (3) mean that every
> > RIF Core implementation has to implement RDF semantics -- ie bNodes?
>
> At the implementation level these will be the same things as long as you
> stick to querying. Option 3 is just a better foundation for future
> extensions that dialects might want to have (e.g., a first-order dialect).
Hopefully my details show where I'm out-of-sync with you on this.
I could see an Option 4, which allowed an Exists not restricted to
Triples, directly parallel to Forall -- implementors would usually
Skolemize in any case, so there's no need to restrict it.
So we end up with:
class RULE
subclass Forall
property declare : list of Var
property formula : CLAUSE
subclass Exists
property declare : list of Var
property formula : CLAUSE
which might be more clear as:
class RULE
subclass QUANTIFIED_FORMULA
property declare : list of Var
property formula : CLAUSE
subclass Forall
subclass Exists
and seems nicely symmetric, if not exactly Horn.
-- Sandro
Received on Sunday, 29 April 2007 22:34:03 UTC