<
From version < 8.1 >
edited by uru
on 2023/07/06 14:36
To version < 4.1 >
edited by uru
on 2015/06/06 22:05
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,0 @@
1 -Eclipse Layout Kernel (ELK)
Content
... ... @@ -1,10 +1,14 @@
1 1  {{panel title="Project Overview"}}
2 +Responsible:
3 +
4 +* {{mention reference="XWiki.uru" style="FULL_NAME" anchor="XWiki-uru-QRYfl"/}}
5 +
2 2  Related Theses:
3 3  
4 4  * Martin Rieß, //A Graph Editor for Algorithm Engineering//, September 2010 ([[pdf>>url:http://rtsys.informatik.uni-kiel.de/%7Ebiblio/downloads/theses/mri-bt.pdf||shape="rect"]])
5 5  {{/panel}}
6 6  
7 -The Graph Analysis (GrAna) project allows to examine a broad variety of structural properties of a graph (node count, edge count, etc.) as well as properties of the final drawing (area, edge crossings, etc.). An analysis can either be performed on a single graph or batch-like on large collections of graphs, in which case the results are written to a file. We support a variety of input formats, namely every format our formats service knows about.
11 +The Graph Analysis (GrAna) project allows to examine a broad variety of structural properties of a graph (node count, edge count, etc.) as well as properties of the final drawing (area, edge crossings, etc.). An analysis can either be performed on a single graph or batch-like on large collections of graphs, in which case the results are written to a file. We support a variety of input formats, namely every format [[KIML>>doc:Infrastructure for Meta Layout (KIML)]]'s formats service knows about.
8 8  
9 9  
10 10  
... ... @@ -18,8 +18,6 @@
18 18  
19 19  Within Eclipse we provide a //Graph Analysis// view, which can be found via Eclipse's //Windows->Show View->Others// dialog.
20 20  In the top right corner of this view you can find two buttons, one of which performs the analysis on the lastly selected diagram. The other button allows you to configure the analysis, i.e. select specific analyses to perform. The following screenshot shows an example. On the very left it can be seen that the analysis was configured to list the node and edge count, the area, and the number of edge crossings. According to the results, the graph contains 4 nodes and 5 edges. This is correct because the //hyperedge// between nodes N2, N3, and N4 is structurally composed out of two edges and just drawn as a single edge. Counting hyperedges could be a different analysis. Moreover, the area is reported as 25800 and 0 edge crossings are present.
21 -
22 -
23 23  [[image:attach:granaSingle.jpg]]
24 24  
25 25  = Batch Executions =
... ... @@ -32,8 +32,6 @@
32 32  
33 33  You can specify a list of {{code language="none"}}Job{{/code}}s. A job is a self-contained unit of work. It specifies the previously mentioned data using the following keywords: {{code language="none"}}resources{{/code}}, {{code language="none"}}layoutoptions{{/code}}, {{code language="none"}}analyses{{/code}}, and {{code language="none"}}output{{/code}}. Layout options are specified by blocks that start with an arbitrary identifier followed by curly brackets. It is possible to specify multiple blocks of layout options. Each block results in a separate layout run allowing, for instance, to first execute a node placement algorithm and then an edge routing algorithm. For convenience it is possible to specify resources and output files globally at the beginning of the file and then use the {{code language="none"}}ref{{/code}} keyword to reference them from a job.
34 34  
35 -Besides jobs, there are also {{code language="none"}}RangeJobs and CompareJobs.{{/code}} A RangeJob can be used to analyze the effect of a specific layout option onto a specific metric. In the example below, the //thoroughness// layout option is registered using the {{code language="none"}}rangeoption{{/code}} keyword. An integer range is specified resulting in all values between (inclusive) 1 and 50 being tested. While the analyses specified using the {{code language="none"}}analyses{{/code}} keyword are only measured on the initial graph, the analysis specified using the {{code language="none"}}rangeanalysis{{/code}} keyword will be measured for every tested value of the range layout option. Since analyses can be composed out of multiple components (e.g. the edge crossing analysis states the minimum, maximum, and average number of crossings per edge as well as the sum – four components), the {{code language="none"}}component{{/code}} keyword tells GrAna which component to write to the output file. The CompareJob can apply two different layouts to a graph and compare the results (the graph is copied internally so the layouts do not influence each other). The two layouts are specified via two layout blocks as shown in the avg_distance example below. This kind of job can be used to analyze the effect of a layout on the individual nodes (e.g. the distance nodes are moved).
36 -
37 37  To execute GrAna based on a //.grana// file, right click the file and select //Execute Analysis Batch ...//
38 38  
39 39  {{code language="java"}}
... ... @@ -45,8 +45,6 @@
45 45  globalOutputs
46 46   original_alg "/Test/results/original.csv"
47 47   awesome_alg "file://workspaces/eclps/Test/results/new.csv"
48 - thoroughness "/Test/results/thorough.csv"
49 - compare "/Test/results/compare.csv"
50 50  
51 51  execute all
52 52  
... ... @@ -82,39 +82,6 @@
82 82   de.cau.cs.kieler.kiml.grana.nodeCount
83 83   de.cau.cs.kieler.kiml.grana.edgeCrossings
84 84   output ref awesome_alg
85 -
86 -rangejob thoroughness
87 - resources
88 - ref random
89 - layoutoptions
90 - klay {
91 - de.cau.cs.kieler.algorithm: de.cau.cs.kieler.klay.layered
92 - de.cau.cs.kieler.klay.layered.crossMin: LAYER_SWEEP
93 - }
94 - analyses
95 - de.cau.cs.kieler.kiml.grana.nodeCount
96 - rangeoption
97 - de.cau.cs.kieler.klay.layered.thoroughness
98 - intrange 1 to 50
99 - // floatvalues 0.3, 0.4, 0.5
100 - rangeanalysis
101 - de.cau.cs.kieler.kiml.grana.edgeCrossings
102 - component 3
103 - output ref thoroughness
104 -
105 -comparejob avg_distance
106 - resources
107 - ref random
108 - layoutoptions
109 - l1 {
110 - algorithm: fixed
111 - }
112 - l2 {
113 - algorithm: layered
114 - }
115 - analyses
116 - de.cau.cs.kieler.grana.compare.averageDistance
117 - output ref compare
118 118  {{/code}}
119 119  
120 120  == Eclipse Wizard ==
... ... @@ -132,13 +132,11 @@
132 132  *
133 133  
134 134  {{code language="none"}}
135 -de.cau.cs.kieler.grana
100 +de.cau.cs.kieler.kiml.grana
136 136  {{/code}}
137 137  )))
138 138  * Textual DSL:
139 -** {{code language="none"}}de.cau.cs.kieler.config.text{{/code}}
140 -** {{code language="none"}}de.cau.cs.kieler.config.text.ide{{/code}}
141 -** {{code language="none"}}de.cau.cs.kieler.config.text.ui{{/code}}
142 -** {{code language="none"}}de.cau.cs.kieler.grana.text{{/code}}
143 -** {{code language="none"}}de.cau.cs.kieler.grana.text.ide{{/code}}
144 -** {{code language="none"}}de.cau.cs.kieler.grana.text.ui{{/code}}
104 +** {{code language="none"}}de.cau.cs.kieler.kiml.config.text{{/code}}
105 +** {{code language="none"}}de.cau.cs.kieler.kiml.config.text.ui{{/code}}
106 +** {{code language="none"}}de.cau.cs.kieler.kiml.grana.text{{/code}}
107 +** {{code language="none"}}de.cau.cs.kieler.kiml.grana.text.ui{{/code}}
granaSingle.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -75.7 KB
Content
granaWizard.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -371.5 KB
Content
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -12288271
1 +12288349
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/12288271/Graph Analysis (GrAna)
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/12288349/Graph Analysis (GrAna)