Re: [PRD] Default conflict resolution strategy (ISSUE-64)

sorry, I have no idea what you mean when you put exists inside the 
actions, and reference the quantified variable ?s outside, in the 
following action.

Christian de Sainte Marie wrote:
>
> Mark Proctor wrote:
>>> With JRules, you bind only objects, so, the example does not really 
>>> work.
>> http://www.ilog.com/products/jrules/documentation/jrules67/rslangref/rs_lng_irlref79.html 
>>
>>
>> ?c:Customer(?p:phoneNo);
>>
>> Isn't phoneNo a primitive.
>
> Yes, it is, but I understand that this kind of binding is dealt with 
> somewhat differently that the binding of an object (e.g. ?c in your 
> example), in JRules: it is dealt with as if it was bound inside an 
> Exists and thus, not taken into account by refaction.
>
> It is irrelevant to the discussion whether ILOG allows binding to 
> primitive datatypes or not, but it might be relevant wrt the 
> definition of refraction that different variables have different roles 
> (and must be dealt with differently by refraction). E.g., in Gary's 
> initial example:
>
> Forall ?e, ?s^^int,
> if ?e[salary->?s] and ?s<10K then ?e[salary->(?s*1.1)]
>
> if we have John[salary->1000] in the WM, the rule will fire repeatedly 
> until John's salary is more than 10K, under the semantics of no-repeat 
> as it was described in a previous editor's draft of PRD (and that we 
> decided to remove for FPWD), because it (that semantics) considered 
> the bindings of ?e and ?s as having the same role, not recognizing the 
> fact that the rule could be equivalently rewritten:
>
> Forall ?e
> If (exists ?s^^int (?e[salary->?s] and ?s<10K))
> then DO{(exists ?s^^int (?e[salary->?s]), Assert?e[salary->(?s*1.1)]}
> (it does not work in PRD because we do not have yet a way to express 
> that, but I hope that you understand what I mean).
>
> Cheers,
>
> Christian
>
>

Received on Tuesday, 5 August 2008 18:13:37 UTC