The classes displayed in this diagram can be used to describe meta information about the elements used to described variance properties. The description of the variance information of a concrete element (ConfigurableElement) is done with a VariantConfiguration and the contained logisticControlString. These strings are normally created from VariantCodes and a proprietary boolean syntax.
A VariantCodeSpecification is a container for various VariantCodes. Each VariantCode describes an elementary literal which can be used as part of a VariantConfiguration.logisticControlString or VariantConfiguration.logisticControlExpression.
A VariantGroupSpecification is a container for various VariantGroups. A VariantGroup describes a grouping for VariantCodes. There can be a wide variety of reasons to group VariantCodes. However, the most common is to mark VariantCodes that belong to the same family (mutually exclusive) variant codes.
A VariantStructureSpecification with its VariantStructureSpecificationNode can be used to define any kind of hierarchical structure upon the VariantGroups.
Note: The VEC does not constrain a VariantCodeSpecification or a VariantGroupSpecification to a precondition for use in VariantConfigurations. VariantCodeSpecification and VariantGroupsSpecification are intended as an optional means to exchange information independently about the “vocabulary” which is possible to express VariantConfigurations.