Release per September 23, 2022: InPlace v0.18.0

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

Major changes

Public contexts. Prior to version v0.18.0, resources (context- and role instances) were identified by Unique Resource Names (built from GUIDs). The current release sees the introduction of Uniform Resource Locators as an alternative. Resources identified by URN are private: they are stored just in the end users' local databases. In other words, access requires posession and the PDR guarantees just that. Resources identified by URL can be public: they are stored in a location on the open internet. Can be public, because to access such a resource requires its location (how public the resource actually is depends on how wideley shared its identification/location is).

A public context should have at least two roles: an Author role, allowing an end user to modify its content; and a Visitor role, allowing any user to play a role. The Visitor role is usually defined as below:

user Visitor = sys:Me

This is a calculated role; the calculation is an indexed name (sys:Me) that refers to the unique instance of role User of PerspectivesSystem (it is different on each PDR installation and identifies its end user). A public context stands on equal footing with what we commonly call a web page on the open internet. Public contexts give such pages a conceptual place in the Perspectives Universe.

This release sees a very important use of public contexts. Prior to version v0.18.0, the PDR could fetch models from just a single repository, at https://inplace.works:5985/repository/. Its location is hardwired into the PDR code. This is an undesirable situation because we want to allow multiple repositories: anyone should be able to start one. With model:CouchdbManagement we add contexts, roles and repositories to describe a server on the open internet that runs a Couchdb installation (CouchdbServer), a set of databases that forms a model repository (Repository) and the manifest of a model (ModelManifest). Furthermore, the Author role of a Manifest can compile a source text to the machine readable version and store it in a model repository database. We've also made a start with replacing the original repository with one created with model:CouchdbManagement (the new BaseRepository at: https://perspectives.domains). However, version v0.18.0 is a version in transition, handling both repositories.

Usually, we publish a release as a working version on https://inplace.works. At the time of writing, however, we await a security quickscan of the software at that location, for which we've carefully prepared test data. For that reason, version v0.18.0 is not published together with this release. To compensate we refer you to the video below that shows the complete boot sequence of the BaseRepository (13 minutes; sorry for the bad audio!).

NOTE: it might be useful to watch the second video first, as it explains the concept of public context, CouchdbServer, Repository and ModelManifest in some detail.

An explanation of the relevant concepts in terms of a diagram:

Minor changes

The more interesting points from the Git commit log (except for the commits to the major changes):

Documentation

Updated documents: