15.4. Aspects require refinement of Inverted Queries

The text “Query Inversion” introduces the concept of an Inverted Query. Briefly, this is a mechanism to ensure synchronisation. A perspective grants a user access to entities (roles, contexts, including bindings and property values). On the type level, we associate inverted queries with, say, a Property type that will help us find the User role instances that should be informed about a modification of the Properties’ value on a given role instance.

Aspects are nothing else but Context- and Role types that are added to other types, to enrich them with Role types (when adding a Context as Aspect) or Property types (when adding a Role as Aspect). We will call the property P of a role R an Aspect Property if the lexical context of P is not R, but a role AR of some other context AC. It helps to prefix the local property name with its lexical role context to recognise it as an Aspect Property: so AR$P is an Aspect property of R, while R$Q is a local property of R.

In this text I identify a problem that arises during synchronization using Inverted Queries for Aspect Properties and Aspect Roles.