- From: Sandro Hawke <sandro@w3.org>
- Date: Thu, 14 Dec 2006 11:22:30 -0500
- To: kifer@cs.sunysb.edu (Michael Kifer)
- Cc: "Paul Vincent" <pvincent@tibco.com>, "Gary Hallmark" <gary.hallmark@oracle.com>, "W3C RIF WG" <public-rif-wg@w3.org>
> This would be a ridiculous and unjustified restriction.
>
> The core is for exchange. There is no requirement for any concrete
> system to properly include the core. (Don't confuse concrete systems with
> RIF dialects.)
I'm not sure where the disagreement or misunderstanding here is.
My understanding fits with what Gary said, that RIF Core is a dialect
and it's a part of every RIF dialect, so every rule engine using RIF
must implement RIF Core.
We'll need some normative Conformance text at some point, something a
bit like:
http://www.w3.org/TR/owl-test/#consistencyChecker
We could say something like (as a rought first cut):
A "RIF Core Rule Engine" is a rule engine which can perform sound
and complete reasoning on any rule set which can encoded in one or
more RIF Core documents. It must be able to answer all queries
against the deductive closure of the ruleset, where a query is
equivalent to a RIF Core anticedent, and to answer a query means to
provide every matching set of bindings to the variables in the
anticedent.
At the moment, unless some new information comes along, I'm inclined to
agree that we need to leave recursive Horn rules out of the core.
My understanding is that recursive Horn rules are also a problem for
prolog. As with rete systems, there are lots of clever and effective
ways of dealing with this problem (I was once an enthusiastic XSB user),
but my sense is that they are still kind of cutting edge instead of the
kind of dirt simple we want in RIF Core. With non-recursive rules, one
can do the trivial mapping to prolog or rete rules and any halfway
decent engine will be a sound and complete reasoner for RIF Core rules.
I think that's what we want.
We could go another step back for RIF Core, all the way to datalog, but
I think non-recursive terms are still quite useful (eg for defining
uncle), so I'd rather not do that.
-- Sandro
Received on Thursday, 14 December 2006 16:23:36 UTC