InPlace Version v0.10.0 delivers no milestones in the project Practical Tools to Build the Context Web as supported by NLnet. Instead, this release adds the notion of state to Perspectives.
Perspectives prior to version v0.10.0 relied on so-called bots
for automatic behaviour. In fact, this was a (simple) production rule system where actions were carried out as a condition became true. While a Turing-complete approach, production rule systems are notoriously hard to program. In many cases programmers find themselves implementing things like procedure call and stacks in order to understand the flow of control of their programs.
From version v0.10.0 on, we use the notion of state and state transitions. Some highlights:
The state-based approach is much more modular than the previous rule-based approach and integrates naturally with the notions of context and role. Conditions on roles are expressed in terms of propositional logic; conditions on context can use universal and existential quantifiers on role types, hence offering expressiveness on the level of predicate logic.
Perspective states lend themselves to analysis in terms of Harel diagrams. These nested diagrams offer a concise overview of many states, facilitating understanding complex structures.
Up till now, Perspectives lacked a notion of notification. Notification is important assistive technology, the more so for Perspectives because by construction a Perspectives 'application' is about co-operation. On the user falls the burden of keeping track of changes made by peers. It is unrealistic to assume users will manage this by themselves, as the very notion of contexts means there are many 'places' where changes may occur and at any given moment only a few of them will be presented on screen. Hence a notification mechanism is of the greatest importance. Notification is not meant as a means for one user to send messages to another; it supports the user to actually notice important changes. State transitions are a natural construct to model notification with, firmly embedding this notion in the elementary Perspectives concepts.
As Perspectives is based on the notion of user roles (subjects) and roles they have a perspective on (objects), it is only natural to distinguish subject state and object state (obviously both separate from context state). These various role state concepts allow us to model things like: