private Set findIcon(final Set graphVisualization) {
    final Set container = set.container();

    for (final Set symbol_to_si :
        graphVisualization.filter(Visualization.symbol_to_semantic_identity)) {
      if (symbol_to_si.to().isEqualTo(set)
          && symbol_to_si.fromEdgeEnd().isEqualTo(CellPlatformDomain.theDefault)) {
        return symbol_to_si.from();
      }
    }
    // create the icon artefact, as it does not exist yet
    final Set icon = graphVisualization.addConcrete(Visualization.symbol, CellPlatformDomain.icon);
    Instantiation.arrow(
        Visualization.symbol_to_semantic_identity,
        S23MSemanticDomains.anonymous,
        CellPlatformDomain.theDefault,
        icon,
        S23MSemanticDomains.minCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.maxCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.isNavigable_NOTAPPLICABLE,
        S23MSemanticDomains.isContainer_FALSE,
        set,
        set,
        S23MSemanticDomains.minCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.maxCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.isNavigable_NOTAPPLICABLE,
        S23MSemanticDomains.isContainer_FALSE);
    return createGraphVisualization(container);
  }
 private Set findGraphVisualization() {
   final Set container = set.container();
   for (final Set gv : RepositoryStructure.graphVisualizations.filterInstances()) {
     for (final Set vis_to_visGraph : gv.filter(Visualization.visualizedGraph_to_graph)) {
       if (vis_to_visGraph.to().isEqualTo(container)) {
         return vis_to_visGraph.from().container();
       }
     }
   }
   // create the visualisation artefact, as it does not exist yet
   return createGraphVisualization(container);
 }