PRD Actions

From RIF
Jump to: navigation, search
Actions to be considered Current state in RIF OMG PRR OCL ILOG JRules
Add an object and all its members in the scope of the engine --- AssertExp insert expr ;
(expr is evaluated to be an object)
Create an object and add it in the scope of the engine (with no member) New --- insert ClassName(arguments) { assignments (*) }
(Calls a constructor, initializes the object and then asserts it)
Remove an object and all its members from the scope of an engine Retract(TERM) RetractExp retract expr ;
(expr is evaluated to be an object)
Create a new variable
(and optionally initializes it)
 ??  ?? bind varname = expr ;
Assign a value to a variable --- AssignExp varname = expr ;
Assign a (new) value to a member of an object (in the scope of the engine) --- AssignExp modify obj
{ ( fieldname = expr ; )* }
Add a (new) value to a member of an object (in the scope of the engine) Assert(Frame) --- No specific construct. A 'modify' to a field typed 'collection' will do the right thing.
Add an instance of a relation in the scope of the engine Assert(Atom) --- Non sense. Could be supported upon agreement.
Remove an instance of a relation from the scope of the engine Retract(Atom) --- Non sense. Could be supported upon agreement.
Remove a value from a member of an object (in the scope of the engine) Retract(Frame) --- No native syntax. A 'modify' can be used.
Execute an externally specified action (as a procedural black box) --- InvokeExp obj.methodname(arguments) ;
(Calls a method of an object)
Modify the value of a member of an object (in the scope of the engine) Retract(Frame)+Assert(Frame) AssignExp modify obj
{ ( fieldname = value ; )* }
Notify the engine that an object has been modified --- UpdateExp update expr ;
(expr evaluated to an object)
Declare local variable and bind it to created object Do+New --- bind varname = new ClassName(arguments) ;
(Calls a constructor with arguments and binds the object to a variable)