Multi-part patterns

The 'Unique' menu item allows the user to mark a pattern element as unique or not. By default, every pattern element is added (or merged) only once when the pattern is unfolded, so the flag is true. This, however, does not hold for multi-part patterns.

A multi-part pattern is a pattern whose instances may have a variable number of elements. For example, if unfolding consists in adding a certain element E for every child of a given element in the model, then the pattern is multi-part. Element E must thus have the 'Unique' flag set to false via the menu item so that it is 'unfolded' several times. Note that the multi-part principle relies on instances with multiplicity (see §4) or roles which are merged with several elements at application time (which requires them to map a single pattern element).