How internal collections are used?
Each collection has a syntactic and semantic definition of its items. Additionally, this definition has a procedural semantics as a loop over the collection items. In other words, it is supposed that the collection is built by iterating through all possible items and selecting those satisfying the restriction. On each step of the iteration one item is fixed and its reference is available for further use. In particular, it is possible to produce internal collections associated with this item. MyCollection = {s:SourceCollection | size({Subconcept.dim=s})<5 }, or equivalently MyCollection = {s:SourceCollection | size(s.{Subconcept.dim})<5 } Here it is supposed that Subconcept has a dimension with the domain in SourceCollection. Thus the internal collection {Subconcept.dim=s} contains a group of subitems from Subconcept belonging to the current item s. As the instance variable s changes its value the internal collection is built again and contains another group. The aggregation function re