private Map<SetAlias, List<GeneratorWithPath>> groupGeneratorsByAlias(
     SkolemFunctionGenerator skolemFunction) {
   Map<SetAlias, List<GeneratorWithPath>> groups =
       new HashMap<SetAlias, List<GeneratorWithPath>>();
   for (GeneratorWithPath subGenerator : skolemFunction.getSubGenerators()) {
     SetAlias generatorVariable = subGenerator.getTargetPath().getStartingVariable();
     List<GeneratorWithPath> variableGroup = groups.get(generatorVariable);
     if (variableGroup == null) {
       variableGroup = new ArrayList<GeneratorWithPath>();
       groups.put(generatorVariable, variableGroup);
     }
     variableGroup.add(subGenerator);
   }
   return groups;
 }
 private ISkolemPart generateAppendsForSubGenerator(
     SkolemFunctionGenerator generator, MappingTask mappingTask) {
   ISkolemPart append =
       new AppendSkolemPart(mappingTask.getConfig().useSortInSkolems(), "(", ")", ", ");
   for (GeneratorWithPath subGeneratorWithPath : generator.getSubGenerators()) {
     VariablePathExpression subGeneratorPath = subGeneratorWithPath.getTargetPath();
     IValueGenerator subGenerator = subGeneratorWithPath.getGenerator();
     ISkolemPart appendForGenerator = new AppendSkolemPart(false, "", "", ": ");
     StringSkolemPart stringPart =
         new StringSkolemPart(
             SpicyEngineUtility.removeRootLabel(subGeneratorPath.getAbsolutePath()));
     SubGeneratorSkolemPart generatorPart = new SubGeneratorSkolemPart(subGenerator);
     appendForGenerator.addChild(stringPart);
     appendForGenerator.addChild(generatorPart);
     append.addChild(appendForGenerator);
   }
   return append;
 }