All existence declarations match all the remaining instances of a certain type. This means the whole declaration will only match exactly one time or zero times, in that way this matches "any" instance that fulfils the condition including none. They allow you to make highly variable documents or rules.
Note that an all existence declaration does not prevent a document or rule from matching if there are no matching instances.
VARIABLE_1, ... VARIABLE_N, ... OTHER is all ONTOLOGY, ROLE_1, ... ROLE_N
The first N matching Instances will be stored in the variables VARIABLE_1toVARIABLE_N. If there are more than N Instances, these will be stored as a list in OTHER.
Examples: separate variables
p1, p2, p3,...ps isall Person
If there are five Person Instances in the Case, the first three will be available as p1, p2, p3, the other two will go into a list available as ps.
Examples: variables stored in a list
ps isall Person
If there are NPerson Instances in the Case, ps will hold that list of NPerson Instances.