Aggregates
An Aggregate is a collection of Entities. Here are some examples of
Aggregates:
- a Sequence of nucleotides
- an Ensemble of organisms, functioning together
- a Family of animals
- a Pool of genes
- etc.
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):