Release per June 23, 2023: MyContexts v0.20.0

First of all, we have dropped the name InPlace in favour of MyContexts. This means the application can now be found at https://mycontexts.com.

MyContexts Version v0.20.0 delivers the following milestones in the project Perspectives: Making Models as supported by NLnet:

It has been some time since the previous release (September 23, 2022). Apart from reasons of less available capacity (personal circumstances), we first spent a month on documentation and then embarked on a major refactoring that took a lot more time than expected. A short explanation is in order. Up till version v0.19.0, all user-created resources were stored just in a local database (either the browsers' IndexedDB or a locally running instance of Couchdb). All resources were, therefore, stored in the same location and we wanted to offer a freedom of choice. Related, but not the same: type descriptions (models) were stored in a single repository (and actually a database in some Couchdb installation). Thus, when a PDR/MyContexts installation encountered an unknown type, it assumed it could find a model with this type in this repository.

We have generalized the way both types of resources are stored:

Public contexts revisited. In version v.0.19.0, public contexts were introduced. Technically these were a forerunner of the more generalised storage scheme that comes with version 0.20.0. In short, it required (or enabled) the modeller to store resources in a specific location. This approach, however, turned out to be flawed. It did not incorporate the extreme interrelatedness of context- and role instances. It happened, for example, that a public role was filled with a locally stored one. While working perfectly for the owner of the locally stored filler, the system's semantics would break down for others who visited the public role.

The current version fixes all that. Conceptually the change is simple; technically it turned out to be very involved. The idea is that a public perspective on a context is just that: the perspective of some role that we would like to be public. That is, anyone should be able to take on that role. This we can realise by storing the resources in a publicly accessible place - in other words, by publishing them. A modeller can now include a user role that he declares public at a certain location. The (versions of) the contexts and roles that this user role - usually, but not necessarily called Visitor - is allowed to see according to his perspective on the context, are stored in that location. In principle this would require a PDR 'running at that location'. However, we want Perspectives to rely as little as possible on processes hosted at a server. So instead we have arranged that Transactions (Delta's of resources) for a public role _are interpreted by the PDR instead of actually sending it somewhere. This works beautifully, as we can take advantage of the entire existing machinery for sharing resources - putting it to work for this new functionality of public contexts.

Major changes

Minor changes

A selection of the bigger minor changes... in fact we have 161 commits relating to some 45+ minor items in the PDR alone.

Updated documents:

Technical documentation is now only published at https://mycontexts.com/techdoc/.