- From: Boley, Harold <Harold.Boley@nrc-cnrc.gc.ca>
- Date: Sun, 10 Jun 2007 13:22:09 -0400
- To: "Mark Proctor" <mproctor@redhat.com>, "Rule Interchange Format (RIF) Working Group WG" <public-rif-wg@w3.org>
- Message-ID: <E4D07AB09F5F044299333C8D0FEB45E9032FC617@nrccenexb1.nrc.ca>
Hi Mark, Thanks for your initiative. Many of us have been traveling around F2F6 (for too long :-). E.g., I'm writing this from a Vienna Internet Cafe. Also, maybe some context was missing. Let me thus give the path to a complete MISMO example, and disucss it, below: http://lists.w3.org/Archives/Public/public-rif-wg/2007Mar/0096.html MISMO_BREW_POC.zip MISMO BREW POC example1.drl.txt rule "Credit Score Adjustments 1" date-effective "25-OCT-2001 17:26:14" when cs : CreditSCore( programGroup == "ACMEPowerBuyerGroup", lienType == "FIRST_TD; SECOND_TD", devision == "Wholesale", creditScore >= 580 & <= 679 ) then cs( score = cs.score -0.3 ); end * The when (or if) part: I think we can regard CreditSCore(...) as a 'frame' in the sense of http://www.w3.org/2005/rules/wg/wiki/Core/Slotted_Conditions with programGroup, lienType, ... as slots. Semantically, getters are not new, and a path expression can be handled as a SlotProd a la SWSL: http://www.w3.org/Submission/SWSF-SWSL/#ruleml-frames The string and integer comparisons seem to be no problem either. * The then (or do) part: Again, the path expressions are not the main issue. However, we have not yet decided on the semantics of setters acting as reassignments, as in score = cs.score -0.3. Striving for a stepwise semantic introduction of such actions, one approach discussed over dinners during the F2F6 and at the "BOF on Reaction Rules in RIF" (http://lists.w3.org/Archives/Public/public-rif-wg/2007Jun/0011.html) is to first introduce Assert (cf. "Pure Production Systems", as in: http://lists.w3.org/Archives/Public/public-rif-wg/2006Feb/0256.html) and second introduce Retract. We would need to separate 'global' variables (global constants?) from ('?'-prefixed) logic variables. The question then arose whether global variables should be semantically modeled as facts with a binary 'bind' predicate, and whether a reassignment globvar = ?new should be modeled as a composite action Retract(bind(globvar,?old)); Assert(bind(globvar,?new)) which retracts whatever ?old value globvar has (trivially succeeding if it has none) and asserts the ?new val. We would need to make sure that this composite action would again be made 'atomic' in the sense of succeeding or failing only as a whole. Issues like these have been discussed in earlier "update semantics" in Logic Programming. -- Harold -----Original Message----- From: public-rif-wg-request@w3.org on behalf of Mark Proctor Sent: Sat 6/9/2007 7:36 PM To: Rule Interchange Format (RIF) Working Group WG Subject: Re: Proof Of Concept PR RIF dialect No one have any feedback on this? Mark Mark Proctor wrote: > > http://markproctor.blogspot.com/2007/06/w3c-rule-interchange-format-for.html > > > Mark > > -- Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in UK and Wales under Company Registration No. 3798903 Directors: Michael Cunningham (USA), Charlie Peters (USA) and David Owens (Ireland)
Received on Sunday, 10 June 2007 17:23:39 UTC