Release per May 23, 2022: InPlace v0.16.0

InPlace Version v0.16.0 delivers the following milestones in the project Practical Tools to Build the Context Web as supported by NLnet:

Major changes

Example

Taken from model:System, the fragment that models a context Caches. State StartReading has an automatic action defined with timing facets (the line illustrates the possibilities rather than being a useful monitoring service):

  case Caches
    aspect sys:ContextWithScreenState

    state ContextOnScreen = extern >> IsOnScreen
      on entry
        do for Manager
          StartReading = true for Cache
      on exit
        do for Manager
          StartReading = false for Cache

    state NoCaches = not exists Cache
      on entry 
        do for Manager
          letA
            contextcache <- create role Cache
            rolecache <- create role Cache
            domeincache <- create role Cache
          in
            Name = "contextcache" for contextcache
            Name = "rolecache" for rolecache
            Name = "domaincache" for domeincache

    external
      aspect sys:ContextWithScreenState$External

    user Manager = sys:Me
      perspective on Cache
        defaults

    thing Cache (relational)
      property Name (String)
      property StartReading (Boolean)
      property Size (Number)
      property NrOfTicks (Number)

      state InitTicks = not exists NrOfTicks
        on entry
          do for Manager
            NrOfTicks = 0
      
      state StartReading = StartReading
        on entry
          do for Manager after 10 Seconds until 20 Seconds every 5 Seconds maximally 4 times
            NrOfTicks = NrOfTicks + 1
            Size = callExternal sensor:ReadSensor ( Name, "size" ) returns Number

A trimmed down version of that model, sampling cache sizes every 2 seconds shows on screen as follows:

Explanation. We see two overlapping Chrome windows, each showing an InPlace screen (both are connected to the same PDR) displaying a single context. The top window (right) shows the 'Simple Chat' application, currently displaying the list of available chats. By clicking the + button, a new Chat (a context instance with several roles) is created (without a title). The underlying window (left) shows part of the Caches window, displaying a table with a row for each cache. The columns show the cache name and the cache size in terms of items. As we add Chat instances, the number of contexts and roles increases. Explanation of the way the screen is refreshed: every two seconds, each cache's size is recomputed and recorded in perspectives, in a separate transaction. Each time, the entire screen is recomputed in the PDR and is sent to the InPlace client. This currently causes a noticeable update on screen.

Minor changes

Documentation

Updated documents:

None.