SHAKEN gpd 12310101

SHAKEN Aggregates

Contents


Aggregates

An Aggregate is a collection of Entities. Here are some examples of Aggregates:

We call the Entities that make up an Aggregate the elements of the Aggregate.


How to Use Aggregates in SHAKEN

Simple Aggregates

Aggregates can be added to concept maps, just like Entities and Events. An Aggregate is connected to its Entity elements using the element relation. For example, having defined Crowd as a kind of Aggregate, we can specify the people in the Crowd by enumerating the elements:

One of the advantages of using an Aggregate is that we can say things about the Aggregate as a whole that do not necessarily apply to the individual elements of the Aggregate. For example, we can say that a crowd of people is blocking some entrance. It is not the case that each person in the crowd is blocking the entrance individually. It is only the crowd as a whole that is doing the blocking:

Structured Aggregates

Sometimes we wish to impose a structure on the elements of an Aggregate. Consider the simple definition of a Train as an Aggregate of TrainCars. Here we have defined a new concept in SHAKEN called Train, which is a kind of Aggregate. We have put some different kinds of Train Cars as elements of the Train:

This example says nothing about the order of the cars in the Train. To specify the order of the cars we need to impose structure on the elements of the Train. To specify the structure of the elements of an Aggregate use the first-element and next-element relations (you may recognize this technique from imposing structure on the subevents of a process):

Here is the final Train, as you might encode it in SHAKEN. As with the Crowd example, we can specify things about the Aggregate as a whole, such as its intended purpose (see
Roles):

Complex Aggregates

The use of element, first-element and next-element may seem cumbersome for simple aggregates. On the other hand, it allows for arbitrarily complex aggregates. Any element can have multiple next-elements and multiple elements can share the same next-element. Here is an example of a complex aggregate (not all element links are shown):

Graphs with complex aggregates can become quite cluttered, especially when multiple next-element links point to the same element. You may have to do some clever arranging to make these graphs look neater. For example, you can make next-element links that point to the same element overlap without losing any information:


Number of Elements

SHAKEN will count the number of elements in an aggregate. Here is another example of a complex aggregate, arranged to reduce clutter (many next-element links have been made to overlap so that only one next-element label is visible):

To have SHAKEN report the number of elements in the aggregate, go to SHAKEN's "Ask Question" window and ask a question about the number-of-elements of the Family:

And the answer is...