Joints allow merging and splitting of tokens. A joint connects together three places, and it provides an alternative to a transition that connects two places. Joints actions are immediate. When all three arcs of a joint are connected to their respective places, the type of the joint (whether it is a split or a merger) is identified.
Split joint has one input place and two output places. When present, a single token is
removed from the input place, and two identical copies of that token (that have the same IDs, colors and ages) are deposited into the output places.
Merging joint has two input places and a single output place. For merging joint we can specify which of the two tokens will be "dominant" and passes its attributes (age, token, ID) to the merged token by checking or unchecking the check box in the joint property dialog. If the ID of the "recessive" token is distinct from that of the dominant token, the dominant token "inherits" the ID of recessive token as a "recessed" or "shadow" ID. The dominant path is shown with a thicker arc (the recessive token input is shown with the regular arc). There are four options for the merger joint:
Any two tokens can be joined (this is the default option). This option is depicted with the letter "A" inside the joint.
Only tokens of the same color can be joined together. This option is depicted with the letter "C" inside the joint.
Only tokens with the same ID (that is those that originated from the same split joint at some point in the past) can be joined. This option is depicted with the letter "I" inside the joint. This is the only merging where there is no "recessive" ID to inherit for the dominant token, since both tokens have the same main ID. Since the main purpose of the "shadow" ID is to provide a memory about the previous mergers, the dominant token inherits the recessive ID from the recessed token.
A recessive token retrieves its "recessed" (shadow) ID and matches it with the ID of a token at the place with the dominant arc. The main ID of the recessive token is inherited as the recessive (shadow) ID of the dominant token. This option is depicted with the letter "R" inside the joint, and it is useful when matching multi-class resources.