- 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