Skip to content

[Feature request] Support semantic edge domains and configurable edge styling in graph rendering #619

@mvillmow

Description

@mvillmow

[Feature request] Support semantic edge domains and configurable edge styling in graph rendering

Summary

Model Explorer needs first-class support for semantic edge domains in the base graph renderer.

Today, a graph can contain multiple kinds of edges with very different meaning: regular data flow, model inputs, model outputs, residual/highway paths, and shape/control flow. In practice, host applications may need more than a fixed small number of these domains.

The current model appears to treat base edges mostly as one visual class, with overlays handling extra emphasis. That makes architecture-style graphs harder to read when different edge categories need to be visible simultaneously as part of the default rendering.

Analysis

For model architecture and compiler-style graphs, edge semantics are often as important as node semantics. A user may need to distinguish, at the same time:

  • normal data edges
  • input boundary edges
  • output boundary edges
  • residual/highway edges
  • shape/control/metadata edges
  • additional domain-specific categories defined by the host graph producer

Overlays are useful for interaction and temporary highlighting, but they are not a full substitute for semantic edge classes in the default graph. They introduce separate UI state and are not the same as the graph declaring its native edge meaning.

The missing capability is a way for an input graph to describe an arbitrary edge domain/class and have that classification survive graph processing, grouping, layout, and rendering so the default visualization can encode it directly.

Suggested Solution

  1. Add a first-class notion of semantic edge domains/classes to the graph model, rather than treating edge styling as effectively global.

  2. Allow host applications or graph producers to define style mappings for those domains, including at least color, width, and dashed/solid treatment.

  3. Support an arbitrary number of edge domains instead of limiting the system to a small built-in set. Built-in defaults are useful, but the design should remain extensible.

  4. Preserve edge-domain information through internal processing steps so the renderer can apply consistent styling after grouping, namespace transforms, and layout.

  5. Keep overlays as a separate optional layer for interaction/highlighting, not the only mechanism for representing semantic edge categories.

Motivating examples for built-in defaults could include data, input, output, residual, and shape, but the API/design should not assume that those are the only useful domains.

Environment

  • Model Explorer source: current main branch
  • Use case: architecture-style and traced model graphs where node and edge semantics both matter
  • Rendering mode: standard graph visualization, not only custom overlays

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions