- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Tue, 29 Jul 2008 09:39:55 -0700
- To: Christian de Sainte Marie <csma@ilog.fr>
- CC: Mark Proctor <mproctor@redhat.com>, RIF WG <public-rif-wg@w3.org>
Christian de Sainte Marie wrote:
>
> Mark Proctor wrote:
>>
>> Refaction in JRules is the same as jess/clips/drools no-loop.
I'd be surprised if it is exactly the same. What do you expect from
the following ruleset:
p(1)
q(1)
q(2)
(* rule1[loop->false] *)
Do(external(print("rule1 fired, ?x=" ?x))) :- q(?x)
(* rule2[loop->false] *)
Do(Retract(p(1)) p(1) external(print("rule2 fired, ?x=" ?x))) :-
And(p(1) q(?x))
With Oracle/Jess, you get
rule2 fired, ?x=2
rule1 fired, ?x=2
rule1 fired, ?x=1
The semantics of Oracle/Jess is that a rule's actions cannot re-activate
that rule. Initially, because of the input data, rule1 and rule2 each
have 2 activations. When rule2 fires, the retraction removes the other
rule2 activation. The assert action cannot reactivate rule2 because of
the no-loop property.
>> It's just the default is the opposite way around. didn't JRules have
>> a "reset" command to allow a rule to refire after a modify?
>
> Right, you can disallow refraction in JRules, so, it is only the
> default that is the other way around.
>
> So, "no-repeat" cannot be the default in RIF-PRD, since it is not the
> default strategy in some of the major engines (it seemed so natural to
> me that I assumed it was the default in most, if not all, engines...
> Or am I just biased :-).
>
> Which probably means that there should be no default, and the intended
> conflict resolution strategy must always be explicit (see also
> Adrian's argument against a default strategy, in [1]).
We need to carefully specify these strategies to be sure we agree what
they are, and then we need to see what the intersection is, and if it is
>= 1, give it an explicit name(s) (and probably not in the metadata as
my example does).
>
> Cheers,
>
> Christian
>
> [1] http://lists.w3.org/Archives/Public/public-rif-wg/2008Jun/0168.html
>
>
>
>
Received on Tuesday, 29 July 2008 16:42:14 UTC