- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Mon, 30 Jun 2008 15:11:55 -0700
- To: "Boley, Harold" <Harold.Boley@nrc-cnrc.gc.ca>
- CC: Dave Reynolds <der@hplb.hpl.hp.com>, Christian de Sainte Marie <csma@ilog.fr>, RIF WG <public-rif-wg@w3.org>
Thanks, Harold. If I may editorialize a bit: a. this example shows the use and utility of ground facts in production rules (and BLD) b. this example shows the use of NAU c. this example shows that one widely known PR language is sufficiently close to our own PS that we don't need to invent another PS nor should we apologize for the one we have d. this example shows the utility of a non-trivial intersection of BLD and PRD -- so that this CLIPS ruleset can be understood by any RIF-compliant rule engine (PRD or BLD) Boley, Harold wrote: > Production Rule languages such as the widely used CLIPS > (http://en.wikipedia.org/wiki/CLIPS) employ predicates > like car_problem with named arguments. > > > CLIPS (Wikipedia rule1 is a "pure production rule"): > > (deffacts trouble_shooting > (car_problem (name ignition_key) (status on)) > (car_problem (name engine) (status wont_start)) > (car_problem (name headlights) (status work)) > ) > > (defrule rule1 > (car_problem (name ignition_key) (status on)) > (car_problem (name engine) (status wont_start)) > => > (assert (car_problem (name starter) (status faulty)) > ) > > > RIF-BLD (simplified, with rule1 as a Horn-like rule): > > (* trouble_shooting *) > car_problem(name->ignition_key status->on) > car_problem(name->engine status->wont_start) > car_problem(name->headlights status->work) > > (* rule1 *) > car_problem(name->starter status->faulty) :- > And( > car_problem(name->ignition_key status->on) > car_problem(name->engine status->wont_start) ) > > > -- Harold > > > -----Original Message----- > From: public-rif-wg-request@w3.org [mailto:public-rif-wg-request@w3.org] > On Behalf Of Gary Hallmark > Sent: June 30, 2008 6:35 PM > To: Dave Reynolds > Cc: Christian de Sainte Marie; RIF WG > Subject: Re: RIF Core, and how much is PRD allowed to diverge from BLD > [Was: Re: [PRD] Issues to resolve before publication] > > > I'm sure the word "core" is overloaded and means many things to many > people. > > Right now, I'm concerned with an operational meaning, which is literally > > the intersection of BLD and PRD. The larger this intersection, the > better. I don't care so much for NAU per se, I just use it as an > example. Because it is in BLD, the default should be that it is in PRD > as well, unless there is some evidence that it is more difficult for PRD > > than for BLD. There is no such evidence -- in fact, it is common in PRD > > (Jess and CLIPS have it) > > Dave Reynolds wrote: > >> Gary Hallmark wrote: >> >>> To maximize rule interchange between production rule engines and >>> logic rule engines, clearly Core should be "as big as possible". We >>> can, should, and must decide that now. I don't even know why I have >>> to keep arguing this point. The bias to keep BLD and PRD aligned >>> with a large common core should be so high that the burden of proof >>> is on you to show why NAU should not be in Core. You have provided >>> no such proof. >>> >> I haven't followed all the ins and outs of all this discussion but >> even without PRD I'm not immediately convinced NAU should be in core. >> >> They seem relatively uncommon in rule languages. They got in, in the >> end, on the grounds that they can be handled at the translation stage >> for languages that don't support them. However, the notion of a "Core" >> > > >> suggests some criteria of simplicity and minimality and there needs to >> > > >> be a higher burden of proof that these extra syntactic features have >> value in the Core. >> >> Dave >> > >
Received on Monday, 30 June 2008 22:18:01 UTC