Re: ISSUE-62 (actions in PRD): Which actions should PRD cover [PRD ]

assert has 3 subcases:
1. assert frame
2. assert predicate
3. assert new object
I propose to use BLD syntax for all.  #3 requires PRD support for Skolem 

retract has 2 subcases
1. retract frame (e.g. Retract($o[$n->$v])
2. retract predicate(e.g. Retract(P($x $y))

modify is like a retract followed by an assert, but it is an "atomic" 
operation in the sense that no rules sense the intermediate state and fire
Syntactically, we need a way to pass 2 bindings (old value, new value) 
for frame slot values and for predicate arguments.  E.g.
1. modify frame (e.g. Modify($o[$n->$v1/$v2])
2. modify predicate(e.g. Modify(P($x1/$x2 $y))

Rule Interchange Format Working Group Issue Tracker wrote:
> ISSUE-62 (actions in PRD): Which actions should PRD cover [PRD ]
> Raised by: Christian de Sainte Marie
> On product: PRD 
> - The basic actions in a production rule systems are ASSERT, RETRACT, MODIFY;
> - Most implemented PR languages have also the possibility to execute some sort of externally specified code;
> - In the non-normative PRR-OCL section, OMG PRR specifies five actions: assert, retract, update, assign and invoke.
> What are action constructs should we specify in PRD?

Received on Tuesday, 24 June 2008 05:06:18 UTC