Index of sample files created by Graph::Easy::Marpa V 1.12.

All scripts, input files and output files required to generate these examples are shipped in the Graph::Easy::Marpa distro.

Some sample data is deliberately faulty, and so does not show up here. Some sample data contains fake attributes, just to test the code. These will make 'dot' die, but are included here.

The output for input file data/graph.15.raw corresponds to the output for scripts/jointed.edges.pl in the GraphViz2 demo.

Input file # 1 - data/class.edge.03.raw:
# Class with attributes. OK.
edge {color: green} [node.1] -> [node.2]
# Class with attributes. OK.

Output file # 1 - html/class.edge.03.svg
# Class with attributes. OK.
Input file # 2 - data/class.edge.05.raw:
# Classes with attributes. OK.
edge {color: green} node {color: lightblue} [node.1] {color: pink} -> [node.2]
# Classes with attributes. OK.

Output file # 2 - html/class.edge.05.svg
# Classes with attributes. OK.
Input file # 3 - data/class.edge.06.raw:
# Class with attributes. OK.
edge.blue {arrowtail: odot; color: blue; dir: both} [node.1] -> {class: blue} [node.2]
# Class with attributes. OK.

Output file # 3 - html/class.edge.06.svg
# Class with attributes. OK.
Input file # 4 - data/class.global.01.raw:
# Global class. OK.
global {directed: 0} [node.1] -- [node.2]
# Global class. OK.

Output file # 4 - html/class.global.01.svg
# Global class. OK.
Input file # 5 - data/class.graph.05.raw:
# Graph class. OK.
graph {rankdir: LR} [node.1] -- [node.2]
# Graph class. OK.

Output file # 5 - html/class.graph.05.svg
# Graph class. OK.
Input file # 6 - data/class.group.03.raw:
# Group with attributes. OK.
group {bgcolor: red} (cluster.1: [node.1] -> [node.2]) {class: group}
# Group with attributes. OK.

Output file # 6 - html/class.group.03.svg
# Group with attributes. OK.
Input file # 7 - data/class.group.04.raw:
# Edge, group and node classes. OK.
edge {color: white} group {bgcolor: red} node.green {color: green; shape: rect} (cluster.1: [node.1] {class: green} -> [node.2]) {class: group}
# Edge, group and node classes. OK.

Output file # 7 - html/class.group.04.svg
# Edge, group and node classes. OK.
Input file # 8 - data/class.node.05.raw:
# Unused class with attributes. OK.
node.green {color: green} [node.1] -> [node.2]
# Unused class with attributes. OK.

Output file # 8 - html/class.node.05.svg
# Unused class with attributes. OK.
Input file # 9 - data/class.node.07.raw:
# Class with attributes. OK.
node.green {color: green} [node.1] {color: pink} -> [node.2]
# Class with attributes. OK.

Output file # 9 - html/class.node.07.svg
# Class with attributes. OK.
Input file # 10 - data/class.node.08.raw:
# Class with attributes. OK.
node.green {color: green} [node.1] {color: pink} -> [node.2] {class: green}
# Class with attributes. OK.

Output file # 10 - html/class.node.08.svg
# Class with attributes. OK.
Input file # 11 - data/class.node.09.raw:
# Classes with attributes. OK.
edge {color: blue; arrowhead: odot} node.green {color: green; shape: rect} [node.1] {color: pink} -> [node.2] {class: green}
# Classes with attributes. OK.

Output file # 11 - html/class.node.09.svg
# Classes with attributes. OK.
Input file # 12 - data/edge.01.raw:
# Edge. OK.
--
# Edge. OK.

Output file # 12 - html/edge.01.svg
# Edge. OK.
Input file # 13 - data/edge.02.raw:
# Edge with attributes. OK.
--{color:cornflowerblue}
# Edge with attributes. OK.

Output file # 13 - html/edge.02.svg
# Edge with attributes. OK.
Input file # 14 - data/edge.04.raw:
# Juxtaposed edges (with comma) without attributes. OK.
--, --
# Juxtaposed edges (with comma) without attributes. OK.

Output file # 14 - html/edge.04.svg
# Juxtaposed edges (with comma) without attributes. OK.
Input file # 15 - data/edge.05.raw:
# Juxtaposed edges (without comma) with attributes. OK.
--{color:cornflowerblue} --{color:red}
# Juxtaposed edges (without comma) with attributes. OK.

Output file # 15 - html/edge.05.svg
# Juxtaposed edges (without comma) with attributes. OK.
Input file # 16 - data/edge.06.raw:
# Juxtaposed edges (with comma) with attributes. OK.
--{color:cornflowerblue},--{color:red}
# Juxtaposed edges (with comma) with attributes. OK.

Output file # 16 - html/edge.06.svg
# Juxtaposed edges (with comma) with attributes. OK.
Input file # 17 - data/edge.07.raw:
# Edge followed by node. OK.
--{color:cornflowerblue}[node.1]{color:red}
# Edge followed by node. OK.

Output file # 17 - html/edge.07.svg
# Edge followed by node. OK.
Input file # 18 - data/edge.08.raw:
# Edges with fancy arrows. OK.
[node.1]{color:green}--{color:maroon; arrowhead: box; dir: forward; label: box} [node.2]{color:blue}
[node.3]{color:green}--{color:maroon; arrowhead: crow; dir: forward; label: crow} [node.4]{color:blue}
[node.5]{color:green}--{color:maroon; arrowhead: diamond; dir: forward; label: diamond} [node.6]{color:blue}
[node.7]{color:green}--{color:maroon; arrowhead: veevee; dir: forward; label: veevee} [node.8]{color:blue}
[node.9]{color:green}--{color:maroon; arrowhead: teetee; dir: forward; label: teetee} [node.10]{color:blue}
[node.11]{color:green}--{color:maroon; arrowhead: odot; dir: forward; label: odot} [node.12]{color:blue}
# Edges with fancy arrows. OK.

Output file # 18 - html/edge.08.svg
# Edges with fancy arrows. OK.
Input file # 19 - data/graph.11.raw:
# Ends with edge without attributes. OK.
[node.1]{color: red}->{color: green;}->{color: red}[node.2]
# Ends with edge without attributes. OK.

Output file # 19 - html/graph.11.svg
# Ends with edge without attributes. OK.
Input file # 20 - data/graph.13.raw:
# Juxtapositioned edges (without comma). OK.
[Murrumbeena] {color: blue} -> {color: green} -> {color: red} [Carnegie] {color: crimson} -> {color: brown} [Chadstone] {color: blueviolet}
# Juxtapositioned edges (without comma). OK.

Output file # 20 - html/graph.13.svg
# Juxtapositioned edges (without comma). OK.
Input file # 21 - data/graph.14.raw:
# Juxtapositioned edges (with comma). OK.
[Murrumbeena] {color: blue} -> {color: green}, -> {color: red} [Carnegie] {color: crimson} -- {color: brown} [Chadstone] {color: blueviolet}
# Juxtapositioned edges (with comma). OK.

Output file # 21 - html/graph.14.svg
# Juxtapositioned edges (with comma). OK.
Input file # 22 - data/graph.15.raw:
# Reverse-engineered from GraphViz2/scripts/joint.edges.pl. OK.

[Carnegie] {color: aquamarine; style: filled}
-> {arrowhead: none; samehead: 1}
[one] {label:; style: filled; fillcolor: white; fixedsize: 1; width: 0; height: 0}

[Murrumbeena] {color: bisque; style: filled}
-> {arrowhead: none; samehead: 1}
[one]

[one]
-> {sametail: 1}
[Oakleigh] {color: blueviolet; style: filled}

[Ashburton] {color: chartreuse; style: filled}
-> {arrowhead: none; samehead: 1}
[two] {label:; style: filled; fillcolor: white; fixedsize: 1; width: 0; height: 0}

[Chadstone] {color: coral; style: filled}
-> {arrowhead: none; samehead: 1}
[two]

[two]
-> {sametail: 1}
[Waverley] {color: crimson; style: filled}
# Reverse-engineered from GraphViz2/scripts/joint.edges.pl. OK.

Output file # 22 - html/graph.15.svg
# Reverse-engineered from GraphViz2/scripts/joint.edges.pl. OK.
Input file # 23 - data/group.01.raw:
# Group with attributes. OK.
group {bgcolor: red} (cluster.1: [node.1] -> [node.2]) {class: group}
# Group with attributes. OK.

Output file # 23 - html/group.01.svg
# Group with attributes. OK.
Input file # 24 - data/node.02.raw:
# Anonymous node without attributes made to vanish. OK.
[]
# Anonymous node without attributes made to vanish. OK.

Output file # 24 - html/node.02.svg
# Anonymous node without attributes made to vanish. OK.
Input file # 25 - data/node.03.raw:
# Named node with space. OK.
[Perl 6]
# Named node with space. OK.

Output file # 25 - html/node.03.svg
# Named node with space. OK.
Input file # 26 - data/node.04.raw:
# Anonymous node with attributes made to vanish. OK.
[]{color:red}
# Anonymous node with attributes made to vanish. OK.

Output file # 26 - html/node.04.svg
# Anonymous node with attributes made to vanish. OK.
Input file # 27 - data/node.05.raw:
# Named node with attributes. OK.
[node.1]{color:red}
# Named node with attributes. OK.

Output file # 27 - html/node.05.svg
# Named node with attributes. OK.
Input file # 28 - data/node.06.raw:
# Juxtaposed nodes (without comma) with attributes. OK.
[node.1]{color:red}[node.2]{color:blue}
# Juxtaposed nodes (without comma) with attributes. OK.

Output file # 28 - html/node.06.svg
# Juxtaposed nodes (without comma) with attributes. OK.
Input file # 29 - data/node.07.raw:
# Juxtaposed nodes (with comma) with attributes. OK.
[node.1]{color:red},[node.2]{color:blue}
# Juxtaposed nodes (with comma) with attributes. OK.

Output file # 29 - html/node.07.svg
# Juxtaposed nodes (with comma) with attributes. OK.
Input file # 30 - data/node.08.raw:
# Named node, with spaces. OK.
[ node.1 ]
# Named node, with spaces. OK.

Output file # 30 - html/node.08.svg
# Named node, with spaces. OK.
Input file # 31 - data/node.09.raw:
# Named node with attributes, with spaces. OK.
[ node.1 ] { color : red }
# Named node with attributes, with spaces. OK.

Output file # 31 - html/node.09.svg
# Named node with attributes, with spaces. OK.
Input file # 32 - data/node.10.raw:
# Named node with attributes, with spaces. OK.
[ node.1 ] { label : Flight Path from Melbourne to London }
# Named node with attributes, with spaces. OK.

Output file # 32 - html/node.10.svg
# Named node with attributes, with spaces. OK.
Input file # 33 - data/node.12.raw:
# Juxtaposed nodes (without comma) without attributes. OK.
[node.1][node.2]
# Juxtaposed nodes (without comma) without attributes. OK.

Output file # 33 - html/node.12.svg
# Juxtaposed nodes (without comma) without attributes. OK.
Input file # 34 - data/node.13.raw:
# Juxtaposed nodes (with comma) without attributes. OK.
[node.1],[node.2]
# Juxtaposed nodes (with comma) without attributes. OK.

Output file # 34 - html/node.13.svg
# Juxtaposed nodes (with comma) without attributes. OK.
Input file # 35 - data/node.14.raw:
# Anonymous node without attributes made to vanish. OK.
[node.1] -> [] -> [node.2]
# Anonymous node without attributes made to vanish. OK.

Output file # 35 - html/node.14.svg
# Anonymous node without attributes made to vanish. OK.
Input file # 36 - data/node.15.raw:
# Anonymous node with attributes made to vanish. OK.
[node.1] -> [] {color: red; label: 'Anonymous!'} -> [node.2]
# Anonymous node with attributes made to vanish. OK.

Output file # 36 - html/node.15.svg
# Anonymous node with attributes made to vanish. OK.
Input file # 37 - data/node.16.raw:
# Class node, and anonymous node made to vanish. OK.
node {color: red} [node.1] -> [] {label: 'Hide me!'} -> [node.2]
# Class node, and anonymous node made to vanish. OK.

Output file # 37 - html/node.16.svg
# Class node, and anonymous node made to vanish. OK.
Input file # 38 - data/node.17.raw:
# Node with HTML-style label. OK.
[node.1] {label: <<table border='1'><tr><td>HTML-style label</td></tr></table>>}
# Node with HTML-style label. OK.

Output file # 38 - html/node.17.svg
# Node with HTML-style label. OK.
Input file # 39 - data/node.18.raw:
# Node with HTML-style label. OK.
[node.1] {label: <<table border='0'><tr><td>HTML-style label but without border</td></tr></table>>}
# Node with HTML-style label. OK.

Output file # 39 - html/node.18.svg
# Node with HTML-style label. OK.
Input file # 40 - data/node.19.raw:
# Node with HTML-style label. OK.
[node.1] {label: <<table><tr><td>HTML-style label with an embedded &amp;<br />and several &lt;br /&gt;s for line wrapping <br /> thereby demonstrating encoded entities work<br />&amp; (i.e. but) <br /> note however the complete absence of commas<br />because output can go to a CSV file<br />which means commas are prohibited</td></tr></table>>; color: red}
# Node with HTML-style label. OK.

Output file # 40 - html/node.19.svg
# Node with HTML-style label. OK.
Input file # 41 - data/subgraph.04.raw:
# Group (i.e. subgraph). OK.
(cluster_1:[Great]->{arrowhead: odot}[Small]){bgcolor: lightblue; label: Creatures}
# Group (i.e. subgraph). OK.

Output file # 41 - html/subgraph.04.svg
# Group (i.e. subgraph). OK.
Input file # 42 - data/subgraph.05.raw:
# Group (i.e. subgraph) + Group. OK.
(cluster_1: [Solar system] -> {arrowhead: diamond} [Earth]) {bgcolor: cornflowerblue; label: Locale}
(cluster_2: [Great] -> {arrowhead: odot} [Small]) {bgcolor: lightblue; label: Creatures}
# Group (i.e. subgraph) + Group. OK.

Output file # 42 - html/subgraph.05.svg
# Group (i.e. subgraph) + Group. OK.
Input file # 43 - data/subgraph.06.raw:
# Node + Group (i.e. subgraph). OK.
[Sol] (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale}
# Node + Group (i.e. subgraph). OK.

Output file # 43 - html/subgraph.06.svg
# Node + Group (i.e. subgraph). OK.
Input file # 44 - data/subgraph.07.raw:
# Group (i.e. subgraph) + Node. OK.
(cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} [Sol]
# Group (i.e. subgraph) + Node. OK.

Output file # 44 - html/subgraph.07.svg
# Group (i.e. subgraph) + Node. OK.
Input file # 45 - data/subgraph.08.raw:
# Edge + Group (i.e. subgraph). OK.
-> (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale}
# Edge + Group (i.e. subgraph). OK.

Output file # 45 - html/subgraph.08.svg
# Edge + Group (i.e. subgraph). OK.
Input file # 46 - data/subgraph.09.raw:
# Group (i.e. subgraph) + Edge. OK.
(cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} ->
# Group (i.e. subgraph) + Edge. OK.

Output file # 46 - html/subgraph.09.svg
# Group (i.e. subgraph) + Edge. OK.
Input file # 47 - data/subgraph.10.raw:
# Node + Edge + Group (i.e. subgraph). OK.
[Andromeda] ->
(cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale}
# Node + Edge + Group (i.e. subgraph). OK.

Output file # 47 - html/subgraph.10.svg
# Node + Edge + Group (i.e. subgraph). OK.
Input file # 48 - data/subgraph.11.raw:
# Node + Edge + Node + Edge + Group (i.e. subgraph). OK.
[Andromeda] -> [Milky Way] ->
(cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale}
# Node + Edge + Node + Edge + Group (i.e. subgraph). OK.

Output file # 48 - html/subgraph.11.svg
# Node + Edge + Node + Edge + Group (i.e. subgraph). OK.
Input file # 49 - data/subgraph.12.raw:
# Group (i.e. subgraph) + Edge + Node. OK.
(cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale}
-> [Australia]
# Group (i.e. subgraph) + Edge + Node. OK.

Output file # 49 - html/subgraph.12.svg
# Group (i.e. subgraph) + Edge + Node. OK.
Input file # 50 - data/subgraph.13.raw:
# Group (i.e. subgraph) + Edge + Node + Edge + Node + Edge + Node. OK.
(cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale}
-> [Australia] -> [Victoria] -> [Melbourne] -> [Murrumbeena]
# Group (i.e. subgraph) + Edge + Node + Edge + Node + Edge + Node. OK.

Output file # 50 - html/subgraph.13.svg
# Group (i.e. subgraph) + Edge + Node + Edge + Node + Edge + Node. OK.
Input file # 51 - data/subgraph.14.raw:
# Group (i.e. subgraph) + Edge + Group. OK.
(cluster_1: [Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale}
->
(cluster_2: [Australia] -> [Victoria] -> [Melbourne] -> [Murrumbeena]){bgcolor: lightblue; label: Home}
# Group (i.e. subgraph) + Edge + Group. OK.

Output file # 51 - html/subgraph.14.svg
# Group (i.e. subgraph) + Edge + Group. OK.
Input file # 52 - data/subgraph.15.raw:
# Group (i.e. subgraph) without a node before the edge. OK.
(cluster_1: -> [Small] )
# Group (i.e. subgraph) without a node before the edge. OK.

Output file # 52 - html/subgraph.15.svg
# Group (i.e. subgraph) without a node before the edge. OK.
Input file # 53 - data/subgraph.16.raw:
# Group (i.e. subgraph) without a node after the edge. OK.
(cluster_1: [Small] -> )
# Group (i.e. subgraph) without a node after the edge. OK.

Output file # 53 - html/subgraph.16.svg
# Group (i.e. subgraph) without a node after the edge. OK.

Links

Index page for all graph module demos

Demo page for State Transition Table


Environment

Author
Date
2012-12-21
OS
Debian V 6
Perl
5.14.2