5.2. Assignment
A user role can have a perspective on roles in- or outside his own context. This brings with it the possibility to change those roles, i.e. to add or remove instances and to add or remove values to or from their properties.
A user agent exclusively changes state through (graphical) user interfaces. Automatic actions on his behalf when state transitions occur, have to be programmed however and to do so we need a vocabulary. This text contains the design for that part of the Perspectives language.
Also note that the API of the Perspectives Distributed Runtime exposes these functions.
Statements that change the state are called assignments. There is a small vocabulary for assignments on roles, including a number of special operators: move, remove, delete, bind, bind_, unbind and unbind_ and the keyword combinations create role and create context. There is a smaller set for assignment on property values: =, =+, =-. We also use delete on property values.
The default case is assigning to roles and properties in the context that contain where the state transitions are modelled. We design our language to be intuitive for that default case, extending it for the situation where state of other contexts is changed (see the design text Perspectives across context boundaries).