RE: Proof Of Concept PR RIF dialect

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