Weakly connected components mutate algorithm
The mutate variant of the weakly connected components (WCC) algorithm performs the weakly connected components calculation over the entire graph unless the configuration parameters establish a filter, and each traversed node's calculated WCC value is stored as a property on the node.
.wcc.mutate syntax
CALL neptune.algo.wcc.mutate( { writeProperty:the name for the node property to which to write component IDsedgeLabels: [list of edge labels for filtering (optional)], vertexLabel:a node label for filtering (optional), concurrency:number of threads to use (optional)} ) YIELD success RETURN success
.wcc.mutate inputs
Inputs for .wcc.mutate are passed in a configuration object that contains:
-
writeProperty(required) – type:string; default: none.A name for the new node property where the component IDs will be written.
-
edgeLabels (optional) – type: a list of edge label strings; example:
["route",; default: no edge filtering....]To filter on one more edge labels, provide a list of the ones to filter on. If no
edgeLabelsfield is provided then all edge labels are processed during traversal. -
vertexLabel(optional) – type:string; default: none.The node label to filter on for traversing. Only nodes matching this label will be traversed. For example:
"airport". -
concurrency (optional) – type: 0 or 1; default: 0.
Controls the number of concurrent threads used to run the algorithm.
If set to
0, uses all available threads to complete execution of the individual algorithm invocation. If set to1, uses a single thread. This can be useful when requiring the invocation of many algorithms concurrently.
.wcc.mutate outputs
success: The computed component IDs are
written as a new property on each node using the property name specified by
writeProperty, and a single success flag (true
or false) is returned to indicate whether or not the writes succeeded.
.wcc.mutate query examples
This query writes the calculated component ID of each vertex in the graph to a
new property of the vertex named CCID:
CALL neptune.algo.wcc.mutate( { writeProperty: "CCID", edgeLabels: ["route"], vertexLabel: "airport", concurrency: 2 } )
After the mutate algorithm call above, the following query can retrieve the CCID property of a specific node:
MATCH (n: airport {code: "SEA"}) RETURN n.CCID
Sample .wcc.mutate output
Here is an example of the output returned by .wcc.mutate when run against the
sample air-routes dataset [nodes]
aws neptune-graph execute-query \ --graph-identifier ${graphIdentifier} \ --query-string "CALL neptune.algo.wcc.mutate({writeProperty: 'wccid'}) YIELD success RETURN success" --language open_cypher \ /tmp/out.txt cat /tmp/out.txt { "results": [ { "success": true }] }