5.14. Pretty graphs

5.14.1. Star graph
5.14.2. Wheel graph
5.14.3. Complete graph
5.14.4. Friendship graph

This section is showing how to create some of the named pretty graphs on Wikipedia.

5.14.1. Star graph

The graph is created by first creating a center node, and then once per element in the range, creates a leaf node and connects it to the center.

Query. 

CREATE (center)
FOREACH (x IN range(1,6)| CREATE (leaf),(center)-[:X]->(leaf))
RETURN id(center) AS id;

The query returns the id of the center node.

Result

id
1 row
Nodes created: 7
Relationships created: 6

0


Figure 5.11. Graph


5.14.2. Wheel graph

This graph is created in a number of steps:

  • Create a center node.
  • Once per element in the range, create a leaf and connect it to the center.
  • Connect neighboring leafs.
  • Find the minimum and maximum leaf and connect these.
  • Return the id of the center node.

Query. 

CREATE (center)
FOREACH (x IN range(1,6)| CREATE (leaf { count:x }),(center)-[:X]->(leaf))
WITH center
MATCH (large_leaf)<--(center)-->(small_leaf)
WHERE large_leaf.count = small_leaf.count + 1
CREATE (small_leaf)-[:X]->(large_leaf)
WITH center, min(small_leaf.count) AS min, max(large_leaf.count) AS max
MATCH (first_leaf)<--(center)-->(last_leaf)
WHERE first_leaf.count = min AND last_leaf.count = max
CREATE (last_leaf)-[:X]->(first_leaf)
RETURN id(center) AS id

The query returns the id of the center node.

Result

id
1 row
Nodes created: 7
Relationships created: 12
Properties set: 6

0


Figure 5.12. Graph


5.14.3. Complete graph

To create this graph, we first create 6 nodes and label them with the Leaf label. We then match all the unique pairs of nodes, and create a relationship between them.

Query. 

FOREACH (x IN range(1,6)| CREATE (leaf:Leaf { count : x }))
WITH *
MATCH (leaf1:Leaf),(leaf2:Leaf)
WHERE id(leaf1)< id(leaf2)
CREATE (leaf1)-[:X]->(leaf2);

Nothing is returned by this query.

Result

Nodes created: 6
Relationships created: 15
Properties set: 6
Labels added: 6

(empty result)


Figure 5.13. Graph


5.14.4. Friendship graph

This query first creates a center node, and then once per element in the range, creates a cycle graph and connects it to the center

Query. 

CREATE (center)
FOREACH (x IN range(1,3)| CREATE (leaf1),(leaf2),(center)-[:X]->(leaf1),(center)-[:X]->(leaf2),
  (leaf1)-[:X]->(leaf2))
RETURN ID(center) AS id

The id of the center node is returned by the query.

Result

id
1 row
Nodes created: 7
Relationships created: 9

0


Figure 5.14. Graph