options for bNodes

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