Decision Tree modifying actions

Actions modifying decision tree can be performed by request dtree_set.

There are 4 types of modifying actions:

"DTREE", "INSTR", "POINT" and "ATOM"

For all types of actions format of data is list, and first element of list is type of action.

DTREE modifying actions

These actions operates with whole decision tree as Solution items in work.

Format

[
[0]: action type, "DTREE"
[1]: action name (from list below), string
[2]: decision tree name, string
[3]: rubric, in case of "UPDATE" option, optional string
position [3] is optional and can be omited
]

Actions:

UPDATE: update (as well as create) decision tree with given name

Notes:

  • if position [3] is omited, no change of rubric is expected on update)

  • decision tree creation can be blocked if there exists another solution item with the same name, see details here.

DELETE: delete decision tree with given name

INSTR modifying actions

Actions of this type manipulates with logical blocks of decision tree code. Blocks are identified by index of first point.

For each point list of available actions is prepared in actions property of Decision Tree Point descriptor.

Format

[
[0]: action type, "INSTR"
[1]: action name (from list below), string
[2]: point no, int
[3]: optional additional option, possibly required for new actions
]

Actions:

actions for blocks of "If" type:

JOIN-AND, JOIN-OR: join If-block with If block above with AND or OR operation

SPLIT: split If block onto series of separate blocks by AND or OR operation

NEGATE: negate condition in If-block

DUPLICATE: duplicate logical block

action for blocks of "Return" type:

BOOL-TRUE, BOOL-FALSE: change decision for return operator

action for any block:

DELETE: delete logical block

LABEL: set/drop label, not yet implemented

COMMENTS: edit comments to block, not yet implemented

POINT modifying actions

Actions of this type are caused by insertion of new condition over filtering property into some point of decision tree.

Format

[
[0]: action type, "POINT"
[1]: action name (from list below), string
[2]: point no, int
[3]: condition, Condition descriptor
]

Actions:

INSERT: insert condition as a new point into decision tree

REPLACE: replace the whole condition of If-block by new condition

JOIN-AND, JOIN-OR: join new condition with current condition of If-block by AND or OR operation

UP-JOIN_AND, UP-JOIN-OR, UP-REPLACE: these variants of instructions refer to internal point of If-block, but affect upper If-point

ATOM modifying actions

Actions of this type are caused by user requests for modification of existing atom conditions in decision tree.

Format

[
[0]: action type, "ATOM"
[1]: action name (from list below), string
[2]: atom location
[ list
[0]: point no, int
[1]: atom no in point atom list, int
]
[3]: optional, additional argument if required
]

Actions:

EDIT: modify atomic condition, additional argument in place [3] is new Condition descriptor

DELETE: delete atom from the whole condition and simplify it, no additional argument requires

Note: in case of one atom in point, please use action "INSTR"/"DELETE" instead of this one.

Used in request

dtree_set

Solution items in work