Skip to content

Circular Hop

Leon Starr edited this page Dec 25, 2021 · 5 revisions

Here we traverse from an Instance Flow defined on one Class back to the very same Class yielding a distinct Instance Flow defined on the same Class but holding references (if any) to all instances related to those in the input Instance Flow.

In the asymmetric cases there is a distinct Perspective on each side of the Association. For a Symmetric Reflexive Association there is only one Perspective. Common examples of Symmetric Reflexive Associations perspectives are: 'communicates with', 'is adjacent to', 'is paired with', 'is married to', etc. In each case there is no meaningful opposite perspective.

(Note that 'is married to' could be rephrased as 'is husband of' / 'is wife of', but now the meaning is different. The same goes when changing 'communicates with' to 'sends messages to' / 'receives messages from'. Again, the asymmetric formulation means something different.

Identifiers

  1. Number + Path + Domain

Attributes

Aggregation

With any Circular Hop (Symmetric, Asymmetric or Ordinal) there is the possibility of repeatedly hopping until one or more instances are found that meet some condition.

For example, you might want to keep hopping through connected Waypoints to find the one that is furthest rather than the one that is nearest.

`furthest waypoint .= current waypoint/R1/is visited after~|`

Or perhaps all Waypoints up ahead:

`upcoming waypoints ..= current waypoint/R1/is visited after/`

The above examples are illustrated with Scrall syntax, but the semantic is that a circular hop additionally specifies

Type: First Last All :: [ first | last | all ]

Clone this wiki locally