Skip to content

Commit f469f04

Browse files
author
Kevin Jedelhauser
committed
lattice 1st try
1 parent 044ee4f commit f469f04

13 files changed

Lines changed: 1105 additions & 0 deletions

lattice/createGraph.gv

Lines changed: 885 additions & 0 deletions
Large diffs are not rendered by default.

lattice/createGraph.gv.pdf

49.1 KB
Binary file not shown.

lattice/createGraph.py

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
#!/usr/bin/python3
2+
3+
import graphviz
4+
5+
d = graphviz.Digraph(filename='createGraph.gv')
6+
d.attr(overlap='false')
7+
d.attr(compound='true')
8+
9+
patternsFile = open("patterns.lg", "r")
10+
patternLines = patternsFile.readlines()
11+
12+
trees = {}
13+
nodes = []
14+
edges = []
15+
16+
for line in patternLines:
17+
line = line.replace("\n", "")
18+
line = line.replace("\r", "")
19+
20+
if line.startswith("t"):
21+
# vorherigen Graph speichern
22+
if len(nodes):
23+
trees.update({tree : (nodes.copy(), edges.copy())})
24+
with d.subgraph(name=("cluster_" + tree)) as c:
25+
for v in nodes:
26+
c.node(tree + "_" + v[0], tree + "_" + v[0])
27+
for e in edges:
28+
c.edge(tree + "_" + e[0], tree + "_" + e[1])
29+
30+
# neuen Graph einlesen
31+
nodes.clear()
32+
edges.clear()
33+
# t # TREE_ID
34+
lineParams = line.split(" ")
35+
tree = lineParams[2]
36+
37+
elif line.startswith("v"):
38+
# v ID LABEL
39+
lineParams = line.split(" ")
40+
nodes.append((lineParams[1], lineParams[2]))
41+
42+
elif line.startswith("e"):
43+
# e NODE_CHILD_ID NODE_PARENT_ID LABEL
44+
lineParams = line.split(" ")
45+
edges.append((lineParams[1], lineParams[2], lineParams[3]))
46+
47+
trees.update({tree : (nodes.copy(), edges.copy())})
48+
with d.subgraph(name=("cluster_" + tree)) as c:
49+
for v in nodes:
50+
c.node(tree + "_" + v[0], tree + "_" + v[0])
51+
for e in edges:
52+
c.edge(tree + "_" + e[0], tree + "_" + e[1])
53+
54+
55+
56+
latticeFile = open("lattice.lg", "r")
57+
latticeLines = latticeFile.readlines()
58+
59+
latticeNodes = {}
60+
#latticeEdges = []
61+
62+
for line in latticeLines:
63+
line = line.replace("\n", "")
64+
line = line.replace("\r", "")
65+
66+
if line.startswith("t"):
67+
# t # TREE_ID
68+
pass
69+
70+
elif line.startswith("v"):
71+
# v ID LABEL
72+
lineParams = line.split(" ")
73+
latticeNodes.update({lineParams[1]: lineParams[2]})
74+
75+
76+
elif line.startswith("e"):
77+
# e NODE_CHILD_ID NODE_PARENT_ID LABEL
78+
lineParams = line.split(" ")
79+
child = lineParams[1]
80+
parent = lineParams[2]
81+
# latticeEdges.append((child, parent))
82+
d.edge(latticeNodes.get(child) + "_0", latticeNodes.get(parent) + "_" + str(len(trees.get(latticeNodes.get(parent)))), ltail = "cluster_" + latticeNodes.get(child), lhead = "cluster_" + latticeNodes.get(parent))
83+
84+
85+
86+
87+
88+
#d.node('level0', 'Level')
89+
#d.node('root', 'T')
90+
91+
92+
#with d.subgraph() as s:
93+
# s.attr(rank='same')
94+
95+
d.view()
96+

lattice/dotguide.pdf

277 KB
Binary file not shown.

lattice/expected_output.png

126 KB
Loading

lattice/graph1.gv

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
digraph G {
2+
3+
Level -> l3 -> l2 -> l1 -> l0;
4+
compound = true;
5+
newrank=true;
6+
7+
8+
subgraph cluster_4 { v4_0 -> v4_1;}
9+
subgraph cluster_0 { v0_0 -> v0_1 -> v0_2 -> v0_3 ->v0_4;}
10+
subgraph cluster_1 { v1_0 -> v1_1;}
11+
subgraph cluster_2 { v2_0 -> v2_1;}
12+
subgraph cluster_3 { v3_0 -> v3_1;}
13+
14+
{rank = source; Level; T;}
15+
{rank = same; l3; v0_0; v1_0;}
16+
{rank =same; l2; v2_0;}
17+
{rank =same; l1; v3_0; v4_0}
18+
{rank =same; l0;}
19+
20+
T -> {v0_0, v1_0}[constraint=true];
21+
v1_0 -> v2_0[constraint=true];
22+
v0_0 -> v3_0[constraint=true,ltail=cluster_0,lhead=cluster_3];
23+
v2_0 -> v3_0[constraint=true,ltail=cluster_2,lhead=cluster_3];
24+
v2_0 -> v4_0[constraint=true];
25+
26+
27+
28+
29+
30+
31+
32+
33+
34+
35+
36+
/*
37+
e 1 0 ba
38+
e 2 1 b
39+
e 3 1 a
40+
e 4 3 a
41+
e 5 4 a
42+
e 6 4 a
43+
subgraph cluster_t0 {
44+
label = "tree 0";clusterrank=global;
45+
46+
v0_0 [label = "Generalisation",
47+
color=red,
48+
fontcolor=blue,
49+
style=filled,
50+
fillcolor=yellow];
51+
52+
v0_0 -> v0_1;
53+
v0_1 -> v0_2 [style=bold,color=red];
54+
v0_1 -> v0_3 [color=red];
55+
v0_3 -> v0_4;
56+
v0_4 -> v0_5;
57+
v0_4 -> v0_6;
58+
}
59+
subgraph cluster_t1 {
60+
label = "tree 1";
61+
62+
v1_0 [label = "Generalisation",
63+
color=red,
64+
fontcolor=blue,
65+
style=filled,
66+
fillcolor=yellow];
67+
68+
v1_0 -> v1_1;
69+
v1_1 -> v1_2 [style=bold,color=red];
70+
v1_1 -> v1_3 [color=red];
71+
v1_3 -> v1_4;
72+
v1_4 -> v1_5;
73+
v1_4 -> v1_6;
74+
}
75+
*/
76+
77+
}

lattice/graph1.ps

15.2 KB
Binary file not shown.

lattice/lattice.lg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
t # v 0 133v 1 25v 2 119v 3 131v 4 262v 5 38v 6 263v 7 45v 8 31v 9 260v 10 324v 11 231v 12 33v 13 77v 14 116v 15 230v 16 2v 17 272v 18 310v 19 314v 20 57v 21 14v 22 52v 23 73v 24 107v 25 121v 26 325v 27 12v 28 60v 29 123v 30 74v 31 55v 32 108v 33 122v 34 229v 35 315v 36 321v 37 277v 38 312v 39 30v 40 53v 41 311v 42 320v 43 329v 44 24v 45 66v 46 118v 47 130v 48 0v 49 44v 50 50v 51 330v 52 132v 53 134v 54 276v 55 51v 56 54e 0 3 subgraphe 7 5 subgraphe 7 49 subgraphe 7 50 subgraphe 8 39 subgraphe 8 30 subgraphe 8 32 subgraphe 11 2 subgraphe 11 34 subgraphe 11 51 subgraphe 12 21 subgraphe 13 25 subgraphe 14 12 subgraphe 14 24 subgraphe 14 49 subgraphe 15 46 subgraphe 15 29 subgraphe 15 43 subgraphe 15 34 subgraphe 16 48 subgraphe 17 49 subgraphe 18 50 subgraphe 19 50 subgraphe 27 31 subgraphe 27 33 subgraphe 28 31 subgraphe 29 25 subgraphe 29 26 subgraphe 29 33 subgraphe 30 23 subgraphe 32 24 subgraphe 34 33 subgraphe 36 26 subgraphe 37 54 subgraphe 38 35 subgraphe 39 23 subgraphe 39 24 subgraphe 40 22 subgraphe 40 56 subgraphe 41 18 subgraphe 41 19 subgraphe 42 5 subgraphe 42 36 subgraphe 42 55 subgraphe 43 26 subgraphe 44 21 subgraphe 46 25 subgraphe 47 25 subgraphe 52 47 subgraph

lattice/patterns.lg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
t # 133v 0 m20v 1 m20v 2 c2v 3 m00v 4 m03v 5 m02v 6 c1e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 4 ae 6 4 at # 25v 0 m20v 1 m20v 2 m10v 3 m12v 4 c3v 5 c0e 1 0 bae 2 1 be 3 2 be 4 3 be 5 1 at # 119v 0 m20v 1 m20v 2 c2v 3 m00v 4 m02v 5 c1e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 4 at # 131v 0 m20v 1 m20v 2 c2v 3 m00v 4 m03v 5 c1e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 4 at # 262v 0 m20v 1 m20v 2 m22v 3 m00v 4 c1v 5 c2e 1 0 bae 2 1 bae 3 2 ae 4 3 ae 5 1 bt # 38v 0 m20v 1 m20v 2 m10v 3 c3v 4 m00v 5 c1e 1 0 bae 2 1 be 3 2 be 4 1 ae 5 4 at # 263v 0 m20v 1 m20v 2 m22v 3 c2v 4 m00v 5 c1e 1 0 bae 2 1 bae 3 2 be 4 1 ae 5 4 at # 45v 0 m20v 1 m20v 2 m10v 3 c3v 4 c7v 5 m00v 6 c1e 1 0 bae 2 1 be 3 2 be 4 2 be 4 5 ae 5 1 ae 6 5 at # 31v 0 m20v 1 m20v 2 m10v 3 m23v 4 c7v 5 c2v 6 c0v 7 m00e 1 0 bae 2 1 be 3 2 be 3 7 ae 4 2 be 4 7 ae 5 1 be 6 1 ae 7 1 at # 260v 0 m20v 1 m20v 2 m22v 3 c2v 4 m00v 5 c1e 1 0 bae 2 1 bae 3 2 be 4 2 ae 5 4 at # 324v 0 m20v 1 m20v 2 m00v 3 m02v 4 c4v 5 c1e 1 0 bae 2 1 ae 3 2 ae 4 1 be 4 3 ae 5 2 at # 231v 0 m20v 1 m20v 2 c2v 3 m00v 4 c7v 5 m02v 6 c1e 1 0 bae 2 1 be 3 1 ae 4 1 be 4 3 ae 5 3 ae 6 5 at # 33v 0 m20v 1 m20v 2 m10v 3 c3v 4 c0v 5 m00e 1 0 bae 2 1 be 3 2 be 4 1 ae 5 1 at # 77v 0 m20v 1 m20v 2 m10v 3 c2v 4 m00v 5 c1e 1 0 bae 2 1 be 3 1 be 4 1 ae 5 4 at # 116v 0 m20v 1 m20v 2 m10v 3 c7v 4 c3v 5 c0v 6 m00e 1 0 bae 2 1 be 3 2 be 3 6 ae 4 2 be 5 1 ae 6 1 at # 230v 0 m20v 1 m20v 2 c2v 3 m00v 4 c7v 5 m02v 6 c1e 1 0 bae 2 1 be 3 1 ae 4 1 be 4 3 ae 5 3 ae 6 3 at # 2v 0 m20v 1 m20v 2 m13v 3 c3v 4 m03v 5 c7v 6 m23e 1 0 bae 2 1 be 3 2 be 4 1 ae 5 2 be 5 4 ae 6 2 be 6 4 at # 272v 0 m20v 1 m20v 2 m10v 3 m22v 4 c7v 5 c3v 6 m00e 1 0 bae 2 1 be 3 2 be 3 6 ae 4 2 be 4 6 ae 5 2 be 6 1 at # 310v 0 m20v 1 m20v 2 m10v 3 m23v 4 c7v 5 m00v 6 c1e 1 0 bae 2 1 be 3 2 be 3 5 ae 4 2 be 4 5 ae 5 1 ae 6 5 at # 314v 0 m20v 1 m20v 2 m10v 3 c7v 4 m00v 5 m02v 6 c1e 1 0 bae 2 1 be 3 2 be 3 4 ae 4 1 ae 5 4 ae 6 4 at # 57v 0 m20v 1 m20v 2 c0v 3 m00v 4 m02v 5 c4e 1 0 bae 2 1 ae 3 1 ae 4 3 ae 5 1 be 5 4 at # 14v 0 m20v 1 m20v 2 m10v 3 c3v 4 c0e 1 0 bae 2 1 be 3 2 be 4 1 at # 52v 0 m20v 1 m20v 2 m12v 3 c7v 4 m02v 5 c0e 1 0 bae 2 1 be 3 2 be 3 4 ae 4 1 ae 5 1 at # 73v 0 m20v 1 m20v 2 m10v 3 c7v 4 c2v 5 m00e 1 0 bae 2 1 be 3 2 be 3 5 ae 4 1 be 5 1 at # 107v 0 m20v 1 m20v 2 m10v 3 c7v 4 c0v 5 m00e 1 0 bae 2 1 be 3 2 be 3 5 ae 4 1 ae 5 1 at # 121v 0 m20v 1 m20v 2 c2v 3 m00v 4 c1e 1 0 bae 2 1 be 3 1 ae 4 3 at # 325v 0 m20v 1 m20v 2 m00v 3 c7v 4 c1e 1 0 bae 2 1 ae 3 1 be 3 2 ae 4 2 at # 12v 0 m20v 1 m20v 2 c2v 3 c0v 4 m00v 5 c7e 1 0 bae 2 1 be 3 1 ae 4 1 ae 5 1 be 5 4 at # 60v 0 m20v 1 m20v 2 c0v 3 m00v 4 c7v 5 m02e 1 0 bae 2 1 ae 3 1 ae 4 1 be 4 3 ae 5 3 at # 123v 0 m20v 1 m20v 2 c2v 3 m00v 4 c7v 5 c1e 1 0 bae 2 1 be 3 1 ae 4 1 be 4 3 ae 5 3 at # 74v 0 m20v 1 m20v 2 m10v 3 m23v 4 c7v 5 c2v 6 m00e 1 0 bae 2 1 be 3 2 be 3 6 ae 4 2 be 4 6 ae 5 1 be 6 1 at # 55v 0 m20v 1 m20v 2 c0v 3 m00v 4 c7e 1 0 bae 2 1 ae 3 1 ae 4 1 be 4 3 at # 108v 0 m20v 1 m20v 2 m10v 3 m23v 4 c7v 5 c0v 6 m00e 1 0 bae 2 1 be 3 2 be 3 6 ae 4 2 be 4 6 ae 5 1 ae 6 1 at # 122v 0 m20v 1 m20v 2 c2v 3 m00v 4 c7e 1 0 bae 2 1 be 3 1 ae 4 1 be 4 3 at # 229v 0 m20v 1 m20v 2 c2v 3 m00v 4 c7v 5 m02e 1 0 bae 2 1 be 3 1 ae 4 1 be 4 3 ae 5 3 at # 315v 0 m20v 1 m20v 2 m10v 3 c7v 4 m00v 5 m02v 6 c1e 1 0 bae 2 1 be 3 2 be 3 4 ae 4 1 ae 5 4 ae 6 5 at # 321v 0 m20v 1 m20v 2 m10v 3 m00v 4 c1v 5 c7e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 1 be 5 3 at # 277v 0 m20v 1 m20v 2 m10v 3 m23v 4 c4v 5 m00v 6 m03v 7 c1e 1 0 bae 2 1 be 3 2 be 3 6 ae 4 2 be 4 6 ae 5 1 ae 6 5 ae 7 5 at # 312v 0 m20v 1 m20v 2 m10v 3 m23v 4 c7v 5 m00v 6 m02v 7 c1e 1 0 bae 2 1 be 3 2 be 3 5 ae 4 2 be 4 5 ae 5 1 ae 6 5 ae 7 6 at # 30v 0 m20v 1 m20v 2 m10v 3 c7v 4 c2v 5 c0v 6 m00e 1 0 bae 2 1 be 3 2 be 3 6 ae 4 1 be 5 1 ae 6 1 at # 53v 0 m20v 1 m20v 2 m12v 3 c7v 4 m02v 5 c2v 6 c0e 1 0 bae 2 1 be 3 2 be 3 4 ae 4 1 ae 5 1 be 6 1 at # 311v 0 m20v 1 m20v 2 m10v 3 m23v 4 c7v 5 m00v 6 m02v 7 c1e 1 0 bae 2 1 be 3 2 be 3 5 ae 4 2 be 4 5 ae 5 1 ae 6 5 ae 7 5 at # 320v 0 m20v 1 m20v 2 m10v 3 c3v 4 m00v 5 c1v 6 c7e 1 0 bae 2 1 be 3 2 be 4 1 ae 5 4 ae 6 1 be 6 4 at # 329v 0 m20v 1 m20v 2 m00v 3 c7v 4 m02v 5 c1e 1 0 bae 2 1 ae 3 1 be 3 2 ae 4 2 ae 5 2 at # 24v 0 m20v 1 m20v 2 m10v 3 m12v 4 c3v 5 c0e 1 0 bae 2 1 be 3 2 be 4 2 be 5 1 at # 66v 0 m20v 1 m20v 2 m10v 3 c7v 4 m12v 5 c3e 1 0 bae 2 1 be 3 2 be 3 1 ae 4 2 be 5 4 bt # 118v 0 m20v 1 m20v 2 c2v 3 m00v 4 m02v 5 c1e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 3 at # 130v 0 m20v 1 m20v 2 c2v 3 m00v 4 m03v 5 c1e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 3 at # 0v 0 m20v 1 m20v 2 m13v 3 c3v 4 m03v 5 c7e 1 0 bae 2 1 be 3 2 be 4 1 ae 5 2 be 5 4 at # 44v 0 m20v 1 m20v 2 m10v 3 c3v 4 c7v 5 m00e 1 0 bae 2 1 be 3 2 be 4 2 be 4 5 ae 5 1 at # 50v 0 m20v 1 m20v 2 m10v 3 c7v 4 m00v 5 c1e 1 0 bae 2 1 be 3 2 be 3 4 ae 4 1 ae 5 4 at # 330v 0 m20v 1 m20v 2 m00v 3 c7v 4 m02v 5 c1e 1 0 bae 2 1 ae 3 1 be 3 2 ae 4 2 ae 5 4 at # 132v 0 m20v 1 m20v 2 c2v 3 m00v 4 m03v 5 m02v 6 c1e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 4 ae 6 3 at # 134v 0 m20v 1 m20v 2 c2v 3 m00v 4 m03v 5 m02v 6 c1e 1 0 bae 2 1 be 3 1 ae 4 3 ae 5 4 ae 6 5 at # 276v 0 m20v 1 m20v 2 m10v 3 c4v 4 m00v 5 m03v 6 c1e 1 0 bae 2 1 be 3 2 be 3 5 ae 4 1 ae 5 4 ae 6 4 at # 51v 0 m20v 1 m20v 2 m10v 3 c3v 4 m00v 5 c7e 1 0 bae 2 1 be 3 2 be 4 1 ae 5 1 be 5 4 at # 54v 0 m20v 1 m20v 2 m12v 3 c7v 4 m02v 5 c2e 1 0 bae 2 1 be 3 2 be 3 4 ae 4 1 ae 5 1 b

lattice/rank_same.gv

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
digraph {
2+
{
3+
rank=same
4+
A
5+
X
6+
}
7+
C
8+
{
9+
rank=same
10+
B
11+
D
12+
Y
13+
}
14+
A -> B
15+
A -> C
16+
C -> D
17+
X -> Y
18+
}

0 commit comments

Comments
 (0)