# Grouping

The grouping operator determines a structural grouping of vertices and edges to condense a graph and thus help to uncover insights about patterns and statistics hidden in the graph.

The graph grouping operator represents every vertex group by a single super vertex in the resulting graph; (super) edges between vertices in the resulting graph represent a group of edges between the vertex group members of the original graph. Grouping is defined by specifying grouping keys for vertices and edges, respectively, similarly as for GROUP BY in SQL.

In addition to vertex properties, grouping is also possible on edge properties, vertex- and edge labels as well as combinations of those.

Consider the following example:

Input graph:

Vertices:
(0, "Person", {city: L})
(1, "Person", {city: L})
(2, "Person", {city: D})
(3, "Person", {city: D})

Edges:{(0,1), (1,0), (1,2), (2,1), (2,3), (3,2)}

Output graph (grouped on vertex property "city"):

Vertices:
(0, "Person", {city: L, count: 2}) (2, "Person", {city: D, count: 2})

Edges:
((0, 0), {count: 2}) // 2 intra-edges in L
((2, 2), {count: 2}) // 2 intra-edges in L
((0, 2), {count: 1}) // 1 inter-edge from L to D
((2, 0), {count: 1}) // 1 inter-edge from D to L

## Options

Option
Definition for the option

## Input Ports

One single logical graph for the grouping.

## Output Ports

A logical graph with grouped vertices/edges

## Views

This node has no views

## Workflows

• No workflows found