diff options
author | OszkarSemerath <oszka@SEMERATH-LAPTOP> | 2017-07-12 15:40:33 +0200 |
---|---|---|
committer | OszkarSemerath <oszka@SEMERATH-LAPTOP> | 2017-07-12 15:40:33 +0200 |
commit | b4927437a3487ecc61c48d1351d18b7a38c5b154 (patch) | |
tree | 3f1e6c25c50a71efb0de6131b0d94c5163759dcc /Solvers | |
parent | Rearranged the solver configuration into different subsections (diff) | |
download | VIATRA-Generator-b4927437a3487ecc61c48d1351d18b7a38c5b154.tar.gz VIATRA-Generator-b4927437a3487ecc61c48d1351d18b7a38c5b154.tar.zst VIATRA-Generator-b4927437a3487ecc61c48d1351d18b7a38c5b154.zip |
Graphviz based visualisation for the concretizations of partial models.
Diffstat (limited to 'Solvers')
12 files changed, 773 insertions, 0 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.classpath b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.classpath new file mode 100644 index 00000000..a49f7d1e --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.classpath | |||
@@ -0,0 +1,18 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <classpath> | ||
3 | <classpathentry kind="src" path="src"/> | ||
4 | <classpathentry kind="src" path="xtend-gen"/> | ||
5 | <classpathentry kind="src" path="tests"/> | ||
6 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"> | ||
7 | <attributes> | ||
8 | <attribute name="maven.pomderived" value="true"/> | ||
9 | </attributes> | ||
10 | </classpathentry> | ||
11 | <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> | ||
12 | <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | ||
13 | <attributes> | ||
14 | <attribute name="maven.pomderived" value="true"/> | ||
15 | </attributes> | ||
16 | </classpathentry> | ||
17 | <classpathentry kind="output" path="target/classes"/> | ||
18 | </classpath> | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.gitignore b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.gitignore new file mode 100644 index 00000000..09e3bc9b --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.gitignore | |||
@@ -0,0 +1,2 @@ | |||
1 | /bin/ | ||
2 | /target/ | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.project b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.project new file mode 100644 index 00000000..a52c4496 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.project | |||
@@ -0,0 +1,40 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <projectDescription> | ||
3 | <name>hu.bme.mit.inf.dslreasoner.visualisation</name> | ||
4 | <comment></comment> | ||
5 | <projects> | ||
6 | </projects> | ||
7 | <buildSpec> | ||
8 | <buildCommand> | ||
9 | <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> | ||
10 | <arguments> | ||
11 | </arguments> | ||
12 | </buildCommand> | ||
13 | <buildCommand> | ||
14 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
15 | <arguments> | ||
16 | </arguments> | ||
17 | </buildCommand> | ||
18 | <buildCommand> | ||
19 | <name>org.eclipse.pde.ManifestBuilder</name> | ||
20 | <arguments> | ||
21 | </arguments> | ||
22 | </buildCommand> | ||
23 | <buildCommand> | ||
24 | <name>org.eclipse.pde.SchemaBuilder</name> | ||
25 | <arguments> | ||
26 | </arguments> | ||
27 | </buildCommand> | ||
28 | <buildCommand> | ||
29 | <name>org.eclipse.m2e.core.maven2Builder</name> | ||
30 | <arguments> | ||
31 | </arguments> | ||
32 | </buildCommand> | ||
33 | </buildSpec> | ||
34 | <natures> | ||
35 | <nature>org.eclipse.m2e.core.maven2Nature</nature> | ||
36 | <nature>org.eclipse.pde.PluginNature</nature> | ||
37 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
38 | <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> | ||
39 | </natures> | ||
40 | </projectDescription> | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.settings/org.eclipse.jdt.core.prefs b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..fd9afef6 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.settings/org.eclipse.jdt.core.prefs | |||
@@ -0,0 +1,2 @@ | |||
1 | eclipse.preferences.version=1 | ||
2 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.settings/org.eclipse.m2e.core.prefs b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..14b697b7 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/.settings/org.eclipse.m2e.core.prefs | |||
@@ -0,0 +1,4 @@ | |||
1 | activeProfiles= | ||
2 | eclipse.preferences.version=1 | ||
3 | resolveWorkspaceProjects=true | ||
4 | version=1 | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF new file mode 100644 index 00000000..e7289f24 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF | |||
@@ -0,0 +1,17 @@ | |||
1 | Manifest-Version: 1.0 | ||
2 | Bundle-ManifestVersion: 2 | ||
3 | Bundle-Name: Visualisation | ||
4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.visualisation | ||
5 | Bundle-Version: 1.0.0.qualifier | ||
6 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | ||
7 | Require-Bundle: com.google.guava, | ||
8 | org.eclipse.xtext.xbase.lib, | ||
9 | org.eclipse.xtend.lib, | ||
10 | org.eclipse.xtend.lib.macro, | ||
11 | hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0", | ||
12 | hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0", | ||
13 | hu.bme.mit.inf.dslreasoner.logic.model.validation;bundle-version="0.0.1", | ||
14 | org.eclipse.emf.ecore.xmi;bundle-version="2.12.0" | ||
15 | Import-Package: org.apache.log4j;version="1.2.15" | ||
16 | Export-Package: hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz | ||
17 | |||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/build.properties b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/build.properties new file mode 100644 index 00000000..41eb6ade --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/build.properties | |||
@@ -0,0 +1,4 @@ | |||
1 | source.. = src/ | ||
2 | output.. = bin/ | ||
3 | bin.includes = META-INF/,\ | ||
4 | . | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/input/solution1.partialinterpretation b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/input/solution1.partialinterpretation new file mode 100644 index 00000000..b6519111 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/input/solution1.partialinterpretation | |||
@@ -0,0 +1,394 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <partialinterpretation:PartialInterpretation | ||
3 | xmi:version="2.0" | ||
4 | xmlns:xmi="http://www.omg.org/XMI" | ||
5 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
6 | xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
7 | xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
8 | problem="//@problemConainer"> | ||
9 | <partialrelationinterpretation | ||
10 | interpretationOf="//@problemConainer/@relations.0" | ||
11 | param1="//@problemConainer/@relations.0/@parameters.0" | ||
12 | param2="//@problemConainer/@relations.0/@parameters.1"> | ||
13 | <relationlinks | ||
14 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
15 | param1="//@newElements.0" | ||
16 | param2="//@newElements.1"/> | ||
17 | <relationlinks | ||
18 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
19 | param1="//@newElements.2" | ||
20 | param2="//@newElements.4"/> | ||
21 | </partialrelationinterpretation> | ||
22 | <partialrelationinterpretation | ||
23 | interpretationOf="//@problemConainer/@relations.1" | ||
24 | param1="//@problemConainer/@relations.1/@parameters.0" | ||
25 | param2="//@problemConainer/@relations.1/@parameters.1"/> | ||
26 | <partialrelationinterpretation | ||
27 | interpretationOf="//@problemConainer/@relations.2" | ||
28 | param1="//@problemConainer/@relations.2/@parameters.0" | ||
29 | param2="//@problemConainer/@relations.2/@parameters.1"> | ||
30 | <relationlinks | ||
31 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
32 | param1="//@newElements.5" | ||
33 | param2="//@newElements.0"/> | ||
34 | <relationlinks | ||
35 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
36 | param1="//@newElements.9" | ||
37 | param2="//@newElements.5"/> | ||
38 | </partialrelationinterpretation> | ||
39 | <partialrelationinterpretation | ||
40 | interpretationOf="//@problemConainer/@relations.3" | ||
41 | param1="//@problemConainer/@relations.3/@parameters.0" | ||
42 | param2="//@problemConainer/@relations.3/@parameters.1"> | ||
43 | <relationlinks | ||
44 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
45 | param1="//@problemConainer/@elements.3" | ||
46 | param2="//@newElements.0"/> | ||
47 | <relationlinks | ||
48 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
49 | param1="//@problemConainer/@elements.3" | ||
50 | param2="//@newElements.2"/> | ||
51 | <relationlinks | ||
52 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
53 | param1="//@problemConainer/@elements.3" | ||
54 | param2="//@newElements.3"/> | ||
55 | </partialrelationinterpretation> | ||
56 | <partialrelationinterpretation | ||
57 | interpretationOf="//@problemConainer/@relations.4" | ||
58 | param1="//@problemConainer/@relations.4/@parameters.0" | ||
59 | param2="//@problemConainer/@relations.4/@parameters.1"> | ||
60 | <relationlinks | ||
61 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
62 | param1="//@newElements.0" | ||
63 | param2="//@newElements.5"/> | ||
64 | <relationlinks | ||
65 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
66 | param1="//@newElements.5" | ||
67 | param2="//@newElements.9"/> | ||
68 | </partialrelationinterpretation> | ||
69 | <partialrelationinterpretation | ||
70 | interpretationOf="//@problemConainer/@relations.5" | ||
71 | param1="//@problemConainer/@relations.5/@parameters.0" | ||
72 | param2="//@problemConainer/@relations.5/@parameters.1"> | ||
73 | <relationlinks | ||
74 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
75 | param1="//@newElements.7" | ||
76 | param2="//@newElements.6"/> | ||
77 | </partialrelationinterpretation> | ||
78 | <partialrelationinterpretation | ||
79 | interpretationOf="//@problemConainer/@relations.6" | ||
80 | param1="//@problemConainer/@relations.6/@parameters.0" | ||
81 | param2="//@problemConainer/@relations.6/@parameters.1"/> | ||
82 | <partialrelationinterpretation | ||
83 | interpretationOf="//@problemConainer/@relations.7" | ||
84 | param1="//@problemConainer/@relations.7/@parameters.0" | ||
85 | param2="//@problemConainer/@relations.7/@parameters.1"/> | ||
86 | <partialrelationinterpretation | ||
87 | interpretationOf="//@problemConainer/@relations.8" | ||
88 | param1="//@problemConainer/@relations.8/@parameters.0" | ||
89 | param2="//@problemConainer/@relations.8/@parameters.1"> | ||
90 | <relationlinks | ||
91 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
92 | param1="//@newElements.1" | ||
93 | param2="//@newElements.6"/> | ||
94 | <relationlinks | ||
95 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
96 | param1="//@newElements.1" | ||
97 | param2="//@newElements.8"/> | ||
98 | </partialrelationinterpretation> | ||
99 | <partialrelationinterpretation | ||
100 | interpretationOf="//@problemConainer/@relations.9" | ||
101 | param1="//@problemConainer/@relations.9/@parameters.0" | ||
102 | param2="//@problemConainer/@relations.9/@parameters.1"> | ||
103 | <relationlinks | ||
104 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
105 | param1="//@newElements.1" | ||
106 | param2="//@newElements.0"/> | ||
107 | <relationlinks | ||
108 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
109 | param1="//@newElements.4" | ||
110 | param2="//@newElements.2"/> | ||
111 | </partialrelationinterpretation> | ||
112 | <partialrelationinterpretation | ||
113 | interpretationOf="//@problemConainer/@relations.10" | ||
114 | param1="//@problemConainer/@relations.10/@parameters.0" | ||
115 | param2="//@problemConainer/@relations.10/@parameters.1"/> | ||
116 | <partialrelationinterpretation | ||
117 | interpretationOf="//@problemConainer/@relations.11" | ||
118 | param1="//@problemConainer/@relations.11/@parameters.0" | ||
119 | param2="//@problemConainer/@relations.11/@parameters.1"/> | ||
120 | <partialrelationinterpretation | ||
121 | interpretationOf="//@problemConainer/@relations.12" | ||
122 | param1="//@problemConainer/@relations.12/@parameters.0" | ||
123 | param2="//@problemConainer/@relations.12/@parameters.1"> | ||
124 | <relationlinks | ||
125 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
126 | param1="//@newElements.6" | ||
127 | param2="//@newElements.7"/> | ||
128 | </partialrelationinterpretation> | ||
129 | <partialrelationinterpretation | ||
130 | interpretationOf="//@problemConainer/@relations.13" | ||
131 | param1="//@problemConainer/@relations.13/@parameters.0" | ||
132 | param2="//@problemConainer/@relations.13/@parameters.1"> | ||
133 | <relationlinks | ||
134 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
135 | param1="//@newElements.6" | ||
136 | param2="//@newElements.1"/> | ||
137 | <relationlinks | ||
138 | xsi:type="partialinterpretation:BinaryElementRelationLink" | ||
139 | param1="//@newElements.8" | ||
140 | param2="//@newElements.1"/> | ||
141 | </partialrelationinterpretation> | ||
142 | <partialrelationinterpretation | ||
143 | interpretationOf="//@problemConainer/@relations.14" | ||
144 | param1="//@problemConainer/@relations.14/@parameters.0" | ||
145 | param2="//@problemConainer/@relations.14/@parameters.1"/> | ||
146 | <newElements/> | ||
147 | <newElements/> | ||
148 | <newElements/> | ||
149 | <newElements/> | ||
150 | <newElements/> | ||
151 | <newElements/> | ||
152 | <newElements/> | ||
153 | <newElements/> | ||
154 | <newElements/> | ||
155 | <newElements/> | ||
156 | <partialtypeinterpratation | ||
157 | interpretationOf="//@problemConainer/@types.0" | ||
158 | elements="//@newElements.0 //@newElements.2 //@newElements.3 //@newElements.5 //@newElements.9"/> | ||
159 | <partialtypeinterpratation | ||
160 | interpretationOf="//@problemConainer/@types.1" | ||
161 | elements="//@problemConainer/@elements.3"/> | ||
162 | <partialtypeinterpratation | ||
163 | interpretationOf="//@problemConainer/@types.2" | ||
164 | elements="//@newElements.0 //@newElements.2 //@newElements.3 //@newElements.5 //@newElements.9" | ||
165 | supertypeInterpretation="//@partialtypeinterpratation.0"/> | ||
166 | <partialtypeinterpratation | ||
167 | interpretationOf="//@problemConainer/@types.3" | ||
168 | elements="//@newElements.7"/> | ||
169 | <partialtypeinterpratation | ||
170 | interpretationOf="//@problemConainer/@types.4"/> | ||
171 | <partialtypeinterpratation | ||
172 | interpretationOf="//@problemConainer/@types.5" | ||
173 | elements="//@newElements.1 //@newElements.4"/> | ||
174 | <partialtypeinterpratation | ||
175 | interpretationOf="//@problemConainer/@types.6" | ||
176 | elements="//@newElements.6" | ||
177 | supertypeInterpretation="//@partialtypeinterpratation.8"/> | ||
178 | <partialtypeinterpratation | ||
179 | interpretationOf="//@problemConainer/@types.7" | ||
180 | elements="//@newElements.8" | ||
181 | supertypeInterpretation="//@partialtypeinterpratation.8"/> | ||
182 | <partialtypeinterpratation | ||
183 | interpretationOf="//@problemConainer/@types.8" | ||
184 | elements="//@newElements.6 //@newElements.8"/> | ||
185 | <partialtypeinterpratation | ||
186 | interpretationOf="//@problemConainer/@types.11" | ||
187 | supertypeInterpretation="//@partialtypeinterpratation.1"/> | ||
188 | <openWorldElementPrototype | ||
189 | name="Symbolic New Element"/> | ||
190 | <problemConainer> | ||
191 | <types xsi:type="language:TypeDeclaration" | ||
192 | name="FunctionalElement class" | ||
193 | subtypes="//@problemConainer/@types.2" | ||
194 | isAbstract="true"/> | ||
195 | <types xsi:type="language:TypeDeclaration" | ||
196 | name="FunctionalArchitectureModel class" | ||
197 | subtypes="//@problemConainer/@types.10 //@problemConainer/@types.11" | ||
198 | isAbstract="true"/> | ||
199 | <types xsi:type="language:TypeDeclaration" | ||
200 | name="Function class" | ||
201 | supertypes="//@problemConainer/@types.0"/> | ||
202 | <types xsi:type="language:TypeDeclaration" | ||
203 | name="FAMTerminator class"/> | ||
204 | <types xsi:type="language:TypeDeclaration" | ||
205 | name="InformationLink class"/> | ||
206 | <types xsi:type="language:TypeDeclaration" | ||
207 | name="FunctionalInterface class"/> | ||
208 | <types xsi:type="language:TypeDeclaration" | ||
209 | name="FunctionalInput class" | ||
210 | supertypes="//@problemConainer/@types.8"/> | ||
211 | <types xsi:type="language:TypeDeclaration" | ||
212 | name="FunctionalOutput class" | ||
213 | supertypes="//@problemConainer/@types.8"/> | ||
214 | <types xsi:type="language:TypeDeclaration" | ||
215 | name="FunctionalData class" | ||
216 | subtypes="//@problemConainer/@types.6 //@problemConainer/@types.7" | ||
217 | isAbstract="true"/> | ||
218 | <types xsi:type="language:TypeDefinition" | ||
219 | name="FunctionType enum" | ||
220 | elements="//@problemConainer/@elements.0 //@problemConainer/@elements.1 //@problemConainer/@elements.2"/> | ||
221 | <types xsi:type="language:TypeDefinition" | ||
222 | name="FunctionalArchitectureModel class DefinedPart" | ||
223 | supertypes="//@problemConainer/@types.1" | ||
224 | elements="//@problemConainer/@elements.3"/> | ||
225 | <types xsi:type="language:TypeDeclaration" | ||
226 | name="FunctionalArchitectureModel class UndefinedPart" | ||
227 | supertypes="//@problemConainer/@types.1"/> | ||
228 | <relations | ||
229 | xsi:type="language:RelationDeclaration" | ||
230 | name="interface reference FunctionalElement"> | ||
231 | <parameters | ||
232 | xsi:type="language:ComplexTypeReference" | ||
233 | referred="//@problemConainer/@types.0"/> | ||
234 | <parameters | ||
235 | xsi:type="language:ComplexTypeReference" | ||
236 | referred="//@problemConainer/@types.5"/> | ||
237 | </relations> | ||
238 | <relations | ||
239 | xsi:type="language:RelationDeclaration" | ||
240 | name="model reference FunctionalElement"> | ||
241 | <parameters | ||
242 | xsi:type="language:ComplexTypeReference" | ||
243 | referred="//@problemConainer/@types.0"/> | ||
244 | <parameters | ||
245 | xsi:type="language:ComplexTypeReference" | ||
246 | referred="//@problemConainer/@types.1"/> | ||
247 | </relations> | ||
248 | <relations | ||
249 | xsi:type="language:RelationDeclaration" | ||
250 | name="parent reference FunctionalElement"> | ||
251 | <parameters | ||
252 | xsi:type="language:ComplexTypeReference" | ||
253 | referred="//@problemConainer/@types.0"/> | ||
254 | <parameters | ||
255 | xsi:type="language:ComplexTypeReference" | ||
256 | referred="//@problemConainer/@types.2"/> | ||
257 | </relations> | ||
258 | <relations | ||
259 | xsi:type="language:RelationDeclaration" | ||
260 | name="rootElements reference FunctionalArchitectureModel"> | ||
261 | <parameters | ||
262 | xsi:type="language:ComplexTypeReference" | ||
263 | referred="//@problemConainer/@types.1"/> | ||
264 | <parameters | ||
265 | xsi:type="language:ComplexTypeReference" | ||
266 | referred="//@problemConainer/@types.0"/> | ||
267 | </relations> | ||
268 | <relations | ||
269 | xsi:type="language:RelationDeclaration" | ||
270 | name="subElements reference Function"> | ||
271 | <parameters | ||
272 | xsi:type="language:ComplexTypeReference" | ||
273 | referred="//@problemConainer/@types.2"/> | ||
274 | <parameters | ||
275 | xsi:type="language:ComplexTypeReference" | ||
276 | referred="//@problemConainer/@types.0"/> | ||
277 | </relations> | ||
278 | <relations | ||
279 | xsi:type="language:RelationDeclaration" | ||
280 | name="data reference FAMTerminator"> | ||
281 | <parameters | ||
282 | xsi:type="language:ComplexTypeReference" | ||
283 | referred="//@problemConainer/@types.3"/> | ||
284 | <parameters | ||
285 | xsi:type="language:ComplexTypeReference" | ||
286 | referred="//@problemConainer/@types.8"/> | ||
287 | </relations> | ||
288 | <relations | ||
289 | xsi:type="language:RelationDeclaration" | ||
290 | name="from reference InformationLink"> | ||
291 | <parameters | ||
292 | xsi:type="language:ComplexTypeReference" | ||
293 | referred="//@problemConainer/@types.4"/> | ||
294 | <parameters | ||
295 | xsi:type="language:ComplexTypeReference" | ||
296 | referred="//@problemConainer/@types.7"/> | ||
297 | </relations> | ||
298 | <relations | ||
299 | xsi:type="language:RelationDeclaration" | ||
300 | name="to reference InformationLink"> | ||
301 | <parameters | ||
302 | xsi:type="language:ComplexTypeReference" | ||
303 | referred="//@problemConainer/@types.4"/> | ||
304 | <parameters | ||
305 | xsi:type="language:ComplexTypeReference" | ||
306 | referred="//@problemConainer/@types.6"/> | ||
307 | </relations> | ||
308 | <relations | ||
309 | xsi:type="language:RelationDeclaration" | ||
310 | name="data reference FunctionalInterface"> | ||
311 | <parameters | ||
312 | xsi:type="language:ComplexTypeReference" | ||
313 | referred="//@problemConainer/@types.5"/> | ||
314 | <parameters | ||
315 | xsi:type="language:ComplexTypeReference" | ||
316 | referred="//@problemConainer/@types.8"/> | ||
317 | </relations> | ||
318 | <relations | ||
319 | xsi:type="language:RelationDeclaration" | ||
320 | name="element reference FunctionalInterface"> | ||
321 | <parameters | ||
322 | xsi:type="language:ComplexTypeReference" | ||
323 | referred="//@problemConainer/@types.5"/> | ||
324 | <parameters | ||
325 | xsi:type="language:ComplexTypeReference" | ||
326 | referred="//@problemConainer/@types.0"/> | ||
327 | </relations> | ||
328 | <relations | ||
329 | xsi:type="language:RelationDeclaration" | ||
330 | name="IncomingLinks reference FunctionalInput"> | ||
331 | <parameters | ||
332 | xsi:type="language:ComplexTypeReference" | ||
333 | referred="//@problemConainer/@types.6"/> | ||
334 | <parameters | ||
335 | xsi:type="language:ComplexTypeReference" | ||
336 | referred="//@problemConainer/@types.4"/> | ||
337 | </relations> | ||
338 | <relations | ||
339 | xsi:type="language:RelationDeclaration" | ||
340 | name="outgoingLinks reference FunctionalOutput"> | ||
341 | <parameters | ||
342 | xsi:type="language:ComplexTypeReference" | ||
343 | referred="//@problemConainer/@types.7"/> | ||
344 | <parameters | ||
345 | xsi:type="language:ComplexTypeReference" | ||
346 | referred="//@problemConainer/@types.4"/> | ||
347 | </relations> | ||
348 | <relations | ||
349 | xsi:type="language:RelationDeclaration" | ||
350 | name="terminator reference FunctionalData"> | ||
351 | <parameters | ||
352 | xsi:type="language:ComplexTypeReference" | ||
353 | referred="//@problemConainer/@types.8"/> | ||
354 | <parameters | ||
355 | xsi:type="language:ComplexTypeReference" | ||
356 | referred="//@problemConainer/@types.3"/> | ||
357 | </relations> | ||
358 | <relations | ||
359 | xsi:type="language:RelationDeclaration" | ||
360 | name="interface reference FunctionalData"> | ||
361 | <parameters | ||
362 | xsi:type="language:ComplexTypeReference" | ||
363 | referred="//@problemConainer/@types.8"/> | ||
364 | <parameters | ||
365 | xsi:type="language:ComplexTypeReference" | ||
366 | referred="//@problemConainer/@types.5"/> | ||
367 | </relations> | ||
368 | <relations | ||
369 | xsi:type="language:RelationDeclaration" | ||
370 | name="type attribute Function"> | ||
371 | <parameters | ||
372 | xsi:type="language:ComplexTypeReference" | ||
373 | referred="//@problemConainer/@types.2"/> | ||
374 | <parameters | ||
375 | xsi:type="language:ComplexTypeReference" | ||
376 | referred="//@problemConainer/@types.9"/> | ||
377 | </relations> | ||
378 | <elements | ||
379 | name="Root literal FunctionType" | ||
380 | definedInType="//@problemConainer/@types.9"/> | ||
381 | <elements | ||
382 | name="Intermediate literal FunctionType" | ||
383 | definedInType="//@problemConainer/@types.9"/> | ||
384 | <elements | ||
385 | name="Leaf literal FunctionType" | ||
386 | definedInType="//@problemConainer/@types.9"/> | ||
387 | <elements | ||
388 | name="o 1" | ||
389 | definedInType="//@problemConainer/@types.10"/> | ||
390 | <containmentHierarchies | ||
391 | typesOrderedInHierarchy="//@problemConainer/@types.2 //@problemConainer/@types.5 //@problemConainer/@types.0 //@problemConainer/@types.3 //@problemConainer/@types.7 //@problemConainer/@types.1 //@problemConainer/@types.4 //@problemConainer/@types.8 //@problemConainer/@types.6" | ||
392 | containmentRelations="//@problemConainer/@relations.0 //@problemConainer/@relations.3 //@problemConainer/@relations.4 //@problemConainer/@relations.8 //@problemConainer/@relations.11 //@problemConainer/@relations.12"/> | ||
393 | </problemConainer> | ||
394 | </partialinterpretation:PartialInterpretation> | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/pom.xml b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/pom.xml new file mode 100644 index 00000000..ac745ad3 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/pom.xml | |||
@@ -0,0 +1,19 @@ | |||
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
2 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
3 | <modelVersion>4.0.0</modelVersion> | ||
4 | <groupId>hu.bme.mit.inf.dslreasoner.visualisation</groupId> | ||
5 | <artifactId>hu.bme.mit.inf.dslreasoner.visualisation</artifactId> | ||
6 | <version>0.0.1-SNAPSHOT</version> | ||
7 | <dependencies> | ||
8 | <dependency> | ||
9 | <groupId>guru.nidi</groupId> | ||
10 | <artifactId>graphviz-java</artifactId> | ||
11 | <version>0.2.1</version> | ||
12 | </dependency> | ||
13 | <dependency> | ||
14 | <groupId>org.slf4j</groupId> | ||
15 | <artifactId>slf4j-nop</artifactId> | ||
16 | <version>1.7.25</version> | ||
17 | </dependency> | ||
18 | </dependencies> | ||
19 | </project> \ No newline at end of file | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/PartialInterpretation2Graphviz.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/PartialInterpretation2Graphviz.xtend new file mode 100644 index 00000000..a4baeadb --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/PartialInterpretation2Graphviz.xtend | |||
@@ -0,0 +1,239 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz | ||
2 | |||
3 | import guru.nidi.graphviz.attribute.Arrow | ||
4 | import guru.nidi.graphviz.attribute.Color | ||
5 | import guru.nidi.graphviz.attribute.Shape | ||
6 | import guru.nidi.graphviz.attribute.Style | ||
7 | import guru.nidi.graphviz.engine.Format | ||
8 | import guru.nidi.graphviz.engine.Graphviz | ||
9 | import guru.nidi.graphviz.model.Graph | ||
10 | import guru.nidi.graphviz.model.Label | ||
11 | import guru.nidi.graphviz.model.Node | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | ||
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition | ||
16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation | ||
19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser | ||
20 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
21 | import java.io.File | ||
22 | import java.util.HashMap | ||
23 | import java.util.HashSet | ||
24 | import java.util.LinkedList | ||
25 | import java.util.Random | ||
26 | import java.util.Set | ||
27 | |||
28 | import static guru.nidi.graphviz.model.Factory.* | ||
29 | import static guru.nidi.graphviz.attribute.Records.*; | ||
30 | |||
31 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | ||
32 | import guru.nidi.graphviz.engine.Engine | ||
33 | import guru.nidi.graphviz.attribute.Records | ||
34 | import guru.nidi.graphviz.attribute.Attributes | ||
35 | import java.util.List | ||
36 | |||
37 | class GraphvizVisualisation implements PartialInterpretationVisualiser { | ||
38 | |||
39 | val TypeColoringStyle typeColoringStyle = TypeColoringStyle::AVERAGE; | ||
40 | val smallFontSize=9 | ||
41 | val keywords = #{"class","reference","literal","enum"} | ||
42 | |||
43 | override visualiseConcretization(PartialInterpretation partialInterpretation) { | ||
44 | visualisePartialInterpretation(partialInterpretation,true) | ||
45 | } | ||
46 | |||
47 | override visualisePartialSolution(PartialInterpretation partialInterpretation) { | ||
48 | visualisePartialInterpretation(partialInterpretation,false) | ||
49 | } | ||
50 | |||
51 | def private visualisePartialInterpretation(PartialInterpretation partialInterpretation, boolean concretizationOnly) { | ||
52 | val problem = partialInterpretation.problem | ||
53 | |||
54 | // Elements of the partial solutions | ||
55 | val oldElements = problem.elements | ||
56 | val newElements = partialInterpretation.newElements | ||
57 | //val prototypeElements = #[partialInterpretation.openWorldElementPrototype] | ||
58 | val allElements = problem.elements + partialInterpretation.newElements | ||
59 | |||
60 | // Indexing types | ||
61 | val mustTypes = new HashMap<DefinedElement,Set<Type>> | ||
62 | val mayTypes = new HashMap<DefinedElement,Set<Type>> | ||
63 | for(element : allElements) { | ||
64 | mustTypes.put(element,new HashSet) | ||
65 | mayTypes.put(element,new HashSet) | ||
66 | } | ||
67 | for(typeDefinition: problem.types.filter(TypeDefinition)) { | ||
68 | for(element : typeDefinition.elements) { | ||
69 | mustTypes.get(element)+=typeDefinition | ||
70 | } | ||
71 | } | ||
72 | for(partialTypeInterpretations: partialInterpretation.partialtypeinterpratation) { | ||
73 | for(element : partialTypeInterpretations.elements) { | ||
74 | mustTypes.get(element)+=partialTypeInterpretations.interpretationOf | ||
75 | } | ||
76 | } | ||
77 | |||
78 | // Indexing references | ||
79 | |||
80 | // Drawing the nodes | ||
81 | val elements2Node = new HashMap | ||
82 | val elements2ID = new HashMap | ||
83 | for(oldElemenetIndex : 0..<oldElements.size) { | ||
84 | val oldElement = oldElements.get(oldElemenetIndex) | ||
85 | val id = '''o «oldElemenetIndex»''' | ||
86 | val image = drawElement(oldElement,id,true,oldElement.lookup(mustTypes),emptySet) | ||
87 | elements2ID.put(oldElement, id) | ||
88 | elements2Node.put(oldElement, image) | ||
89 | } | ||
90 | for(newElementIndex: 0..<newElements.size) { | ||
91 | val newElement = newElements.get(newElementIndex) | ||
92 | val id = '''n «newElementIndex»''' | ||
93 | val image = drawElement(newElement,id,false,newElement.lookup(mustTypes),emptySet) | ||
94 | elements2ID.put(newElement,id) | ||
95 | elements2Node.put(newElement,image) | ||
96 | } | ||
97 | // Prototype elements | ||
98 | |||
99 | // Drawing the edges | ||
100 | val edges = new HashMap | ||
101 | for(element : elements2Node.values) { | ||
102 | edges.put(element,new LinkedList) | ||
103 | } | ||
104 | for(relationInterpretation : partialInterpretation.partialrelationinterpretation) { | ||
105 | val type = relationInterpretation.interpretationOf | ||
106 | val isContainment = problem.containmentHierarchies.exists[it.containmentRelations.contains(type)] | ||
107 | for(link : relationInterpretation.relationlinks.filter(BinaryElementRelationLink)) { | ||
108 | val sourceNode = link.param1.lookup(elements2Node) | ||
109 | val targetNode = link.param2.lookup(elements2Node) | ||
110 | |||
111 | val edge = drawEdge(link,type,targetNode,isContainment) | ||
112 | sourceNode.lookup(edges).add(edge) | ||
113 | } | ||
114 | } | ||
115 | |||
116 | val graph = graph("PartialInterpretation").directed.with( | ||
117 | edges.entrySet.map[entry | entry.key.link(entry.value)] | ||
118 | ) | ||
119 | |||
120 | return new GraphvisVisualisation(graph) | ||
121 | } | ||
122 | |||
123 | def protected drawElement(DefinedElement element, String ID, boolean old, Set<Type> mustTypes, Set<Type> mayTypes) { | ||
124 | var tableStyle = ''' CELLSPACING="0" BORDER="2" CELLBORDER="0" CELLPADDING="1" STYLE="ROUNDED"''' | ||
125 | if(typeColoringStyle==TypeColoringStyle::AVERAGE) { | ||
126 | tableStyle += ''' BGCOLOR="#«typePredicateColor(mustTypes).toBackgroundColorString»"''' | ||
127 | } | ||
128 | val mainLabel = if(element.name !== null) { | ||
129 | val parts = element.name.split("\\s+") | ||
130 | textWithSubSup(parts.getOrNull(0),parts.getOrNull(1),parts.getOrNull(2),null) | ||
131 | } else { | ||
132 | val parts = ID.split("\\s+") | ||
133 | textWithSubSup(parts.get(0),parts.get(1),parts.getOrNull(2),null) | ||
134 | } | ||
135 | val label = Label.html( | ||
136 | '''<TABLE«tableStyle»>'''+ | ||
137 | '''<TR><TD COLSPAN="2" BORDER="2" SIDES="B">«mainLabel»</TD></TR>'''+ | ||
138 | '''«FOR mustTypeName : mustTypes.map[it.name].sort»«typePredicateDescription(mustTypeName,true)»«ENDFOR»'''+ | ||
139 | '''«FOR mayTypeName : mayTypes.map[it.name].sort»«typePredicateDescription(mayTypeName,false)»«ENDFOR»'''+ | ||
140 | '''</TABLE>''') | ||
141 | |||
142 | val node = node(ID).with(label).with( | ||
143 | Shape.NONE, | ||
144 | Attributes.attr("margin","0") | ||
145 | ) | ||
146 | return node | ||
147 | } | ||
148 | |||
149 | protected def drawEdge(BinaryElementRelationLink link, Relation relation, Node to, boolean isContainemnt) { | ||
150 | val nameSegments = relation.name.split("\\s+") | ||
151 | var l = to(to).with(Label.html(textWithSubSup(nameSegments.getOrNull(0),nameSegments.getOrNull(1),nameSegments.getOrNull(2),null))) | ||
152 | if(isContainemnt) { | ||
153 | l = l.with(Style.BOLD) | ||
154 | } | ||
155 | return l | ||
156 | } | ||
157 | |||
158 | private def <T> getOrNull(List<T> list, int index) { | ||
159 | if(list.size>index) return list.get(index) | ||
160 | else return null | ||
161 | } | ||
162 | |||
163 | def private textWithSubSup(String text, String sub, String sup, String after) { | ||
164 | val actualText = text | ||
165 | val actualSub = if(sub===null) {" "} else {sub.checkAndHighlightKeyword} | ||
166 | val actualSup = if(sup==null) {" "} else {sup.checkAndHighlightKeyword} | ||
167 | val actualAfter = if(after === null) {""} else { | ||
168 | '''<TD ROWSPAN="2" ALIGN="LEFT">«after»</TD>''' | ||
169 | } | ||
170 | return | ||
171 | '''<FONT FACE="helvetica"><Table CELLSPACING="0" BORDER="0" CELLBORDER="0" CELLPADDING="0">'''+ | ||
172 | '''<TR><TD ROWSPAN="2" ALIGN="RIGHT">«actualText»</TD><TD ALIGN="LEFT" VALIGN="BOTTOM"><FONT POINT-SIZE="«smallFontSize»">«actualSup»</FONT></TD>«actualAfter»</TR>'''+ | ||
173 | '''<TR><TD ALIGN="LEFT" VALIGN="TOP"><FONT POINT-SIZE="«smallFontSize»">«actualSub»</FONT></TD></TR>'''+ | ||
174 | '''</Table></FONT>''' | ||
175 | } | ||
176 | def checkAndHighlightKeyword(String word) { | ||
177 | if(keywords.contains(word)) { | ||
178 | return '''<B>«word»</B>''' | ||
179 | } else { | ||
180 | word | ||
181 | } | ||
182 | } | ||
183 | def typePredicateDescription(String typeName, boolean must) | ||
184 | { | ||
185 | val value = if(must){'''1'''} else{'''½'''} | ||
186 | val backgroundColor = if(this.typeColoringStyle == TypeColoringStyle.FLAG) { | ||
187 | ''' BGCOLOR="#«typeName.typePredicateColor.toBackgroundColorString»"''' | ||
188 | } else { | ||
189 | "" | ||
190 | } | ||
191 | val typeNameSegments = typeName.split("\\s+") | ||
192 | return '''<TR><TD«backgroundColor»>«textWithSubSup(typeNameSegments.getOrNull(0),typeNameSegments.getOrNull(1),typeNameSegments.getOrNull(2),null)»</TD><TD«backgroundColor»> = «value» </TD></TR>''' | ||
193 | } | ||
194 | def toBackgroundColorString(List<Integer> backgroundColor) { | ||
195 | '''«Integer.toHexString(backgroundColor.get(0))»«Integer.toHexString(backgroundColor.get(1))»«Integer.toHexString(backgroundColor.get(2))»''' | ||
196 | } | ||
197 | protected def typePredicateColor(Set<Type> types) { types.averageColor } | ||
198 | protected def typePredicateColor(String name) { | ||
199 | val Random random = new Random(name.hashCode+1) | ||
200 | val rangePicker = [|random.nextInt(128)+128] | ||
201 | return #[rangePicker.apply(), rangePicker.apply(), rangePicker.apply()] | ||
202 | } | ||
203 | private def averageColor(Set<Type> types) { | ||
204 | if(types.empty) { | ||
205 | return #[256,256,256] | ||
206 | } else { | ||
207 | val typeColors = types.filter[!it.isIsAbstract].map[typePredicateColor(it.name)] | ||
208 | return #[ | ||
209 | typeColors.map[get(0)].average, | ||
210 | typeColors.map[get(1)].average, | ||
211 | typeColors.map[get(2)].average | ||
212 | ] | ||
213 | } | ||
214 | } | ||
215 | private def average(Iterable<Integer> doubles) { return doubles.reduce[p1, p2|p1+p2]/doubles.size } | ||
216 | |||
217 | |||
218 | |||
219 | |||
220 | } | ||
221 | |||
222 | enum TypeColoringStyle { | ||
223 | FLAG, AVERAGE | ||
224 | } | ||
225 | |||
226 | class GraphvisVisualisation implements PartialInterpretationVisualisation { | ||
227 | val private Graph graph | ||
228 | |||
229 | public new(Graph graph) { | ||
230 | this.graph = graph | ||
231 | } | ||
232 | |||
233 | override writeToFile(ReasonerWorkspace workspace, String name) { | ||
234 | val path = '''«workspace.workspaceURI.toFileString»/«name».png''' | ||
235 | Graphviz.fromGraph(graph)//.engine(Engine::NEATO) | ||
236 | .render(Format.PNG).toFile(new File(path)); | ||
237 | } | ||
238 | |||
239 | } | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/Test.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/Test.xtend new file mode 100644 index 00000000..75187c26 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/Test.xtend | |||
@@ -0,0 +1,24 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
4 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage | ||
5 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
6 | import org.eclipse.emf.ecore.resource.Resource | ||
7 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
8 | |||
9 | class Test { | ||
10 | def static void main(String[] args) { | ||
11 | val workspace = new FileSystemWorkspace("input/","") | ||
12 | |||
13 | PartialinterpretationPackage.eINSTANCE.eClass | ||
14 | Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl) | ||
15 | |||
16 | val model = workspace.readModel(PartialInterpretation,"solution1.partialinterpretation") | ||
17 | println("loaded") | ||
18 | val translator = new GraphvizVisualisation | ||
19 | val visualisation = translator.visualiseConcretization(model) | ||
20 | println("visualised") | ||
21 | visualisation.writeToFile(workspace,"output") | ||
22 | println("saved") | ||
23 | } | ||
24 | } \ No newline at end of file | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/xtend-gen/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/.gitignore b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/xtend-gen/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/.gitignore new file mode 100644 index 00000000..66ab25b3 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/xtend-gen/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/.gitignore | |||
@@ -0,0 +1,10 @@ | |||
1 | /.GraphvisVisualisation.java._trace | ||
2 | /.GraphvizVisualisation.java._trace | ||
3 | /.PartialInterpretation2Graphviz.xtendbin | ||
4 | /.Test.java._trace | ||
5 | /.Test.xtendbin | ||
6 | /.TypeColoringStyle.java._trace | ||
7 | /GraphvisVisualisation.java | ||
8 | /GraphvizVisualisation.java | ||
9 | /Test.java | ||
10 | /TypeColoringStyle.java | ||