diff options
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application')
5 files changed, 63 insertions, 14 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend index 1ee69827..c3ba9f81 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend | |||
@@ -2,8 +2,6 @@ package hu.bme.mit.inf.dslreasoner.application.execution | |||
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript | 3 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript |
4 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask | 4 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask |
5 | import hu.bme.mit.inf.dslreasoner.application.validation.MetamodelValidator | ||
6 | import hu.bme.mit.inf.dslreasoner.application.validation.QueryAndMetamodelValidator | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 5 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | 6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration |
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel |
@@ -35,9 +33,6 @@ class GenerationTaskExecutor { | |||
35 | val scopeLoader = new ScopeLoader | 33 | val scopeLoader = new ScopeLoader |
36 | val statisticsUtil = new StatisticSections2CSV | 34 | val statisticsUtil = new StatisticSections2CSV |
37 | 35 | ||
38 | val metamodelValidator = new MetamodelValidator | ||
39 | val queryAndMetamodelValidator = new QueryAndMetamodelValidator | ||
40 | |||
41 | def executeGenerationTask( | 36 | def executeGenerationTask( |
42 | GenerationTask task, | 37 | GenerationTask task, |
43 | ScriptExecutor scriptExecutor, | 38 | ScriptExecutor scriptExecutor, |
@@ -136,8 +131,6 @@ class GenerationTaskExecutor { | |||
136 | val objectiveSpecification = scriptExecutor.getObjectiveSpecification(task.objectives) | 131 | val objectiveSpecification = scriptExecutor.getObjectiveSpecification(task.objectives) |
137 | val objectiveEntries = objectiveSpecification?.entries ?: emptyList | 132 | val objectiveEntries = objectiveSpecification?.entries ?: emptyList |
138 | val solverConfig = solverLoader.loadSolverConfig(task.solver,configurationMap,objectiveEntries,console) | 133 | val solverConfig = solverLoader.loadSolverConfig(task.solver,configurationMap,objectiveEntries,console) |
139 | |||
140 | |||
141 | // 5.2 set values that defined directly | 134 | // 5.2 set values that defined directly |
142 | solverConfig.solutionScope = new SolutionScope => [ | 135 | solverConfig.solutionScope = new SolutionScope => [ |
143 | it.numberOfRequiredSolutions = if(task.numberSpecified) { | 136 | it.numberOfRequiredSolutions = if(task.numberSpecified) { |
@@ -188,6 +181,9 @@ class GenerationTaskExecutor { | |||
188 | 181 | ||
189 | console.writeMessage("Model generation started") | 182 | console.writeMessage("Model generation started") |
190 | for(run : 1..runs) { | 183 | for(run : 1..runs) { |
184 | if(run > 1) { | ||
185 | ScriptExecutor::restForMeasurements(console) | ||
186 | } | ||
191 | monitor.subTask('''Solving problem«IF runs>0» «run»/«runs»«ENDIF»''') | 187 | monitor.subTask('''Solving problem«IF runs>0» «run»/«runs»«ENDIF»''') |
192 | val visualisationProgressMonitor= new EclipseBasedProgressMonitor(monitor) | 188 | val visualisationProgressMonitor= new EclipseBasedProgressMonitor(monitor) |
193 | 189 | ||
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend index 2ce86a78..d49a0f2a 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend | |||
@@ -23,9 +23,9 @@ abstract class ScriptConsole { | |||
23 | val List<String> errorMessagesDuringInitialisation = new LinkedList; | 23 | val List<String> errorMessagesDuringInitialisation = new LinkedList; |
24 | 24 | ||
25 | val statisticsHeaderBuffer = new LinkedHashSet<String> | 25 | val statisticsHeaderBuffer = new LinkedHashSet<String> |
26 | val statisticsDataBuffer = new LinkedList<Map<String, ? extends Object>> | 26 | val statisticsDataBuffer = new LinkedList<Map<String,? extends Object>> |
27 | 27 | ||
28 | static val delimier = ';' | 28 | static val delimier = ',' |
29 | static val empty = "" | 29 | static val empty = "" |
30 | 30 | ||
31 | new(boolean printToConsole, boolean cleanFiles, URI messageConsoleURI, URI errorConsoleURI, | 31 | new(boolean printToConsole, boolean cleanFiles, URI messageConsoleURI, URI errorConsoleURI, |
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend index 3941179a..3dea677f 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend | |||
@@ -14,6 +14,8 @@ import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPatt | |||
14 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MemoryEntry | 14 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MemoryEntry |
15 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference | 15 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference |
16 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelSpecification | 16 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelSpecification |
17 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveReference | ||
18 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveSpecification | ||
17 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference | 19 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference |
18 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification | 20 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification |
19 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification | 21 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification |
@@ -30,8 +32,6 @@ import org.eclipse.core.runtime.Status | |||
30 | import org.eclipse.core.runtime.jobs.Job | 32 | import org.eclipse.core.runtime.jobs.Job |
31 | import org.eclipse.emf.common.util.URI | 33 | import org.eclipse.emf.common.util.URI |
32 | import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor | 34 | import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor |
33 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveSpecification | ||
34 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveReference | ||
35 | 35 | ||
36 | @FinalFieldsConstructor | 36 | @FinalFieldsConstructor |
37 | class ScriptExecutor { | 37 | class ScriptExecutor { |
@@ -62,8 +62,12 @@ class ScriptExecutor { | |||
62 | def executeScript(ConfigurationScript script, IProgressMonitor monitor) { | 62 | def executeScript(ConfigurationScript script, IProgressMonitor monitor) { |
63 | script.activateAllEPackageReferences | 63 | script.activateAllEPackageReferences |
64 | val tasks = script.commands.filter(Task) | 64 | val tasks = script.commands.filter(Task) |
65 | val intermediateScriptConsole = scriptConsoleFactory.createScriptConsole(false, null, null, null) | ||
65 | 66 | ||
66 | for(taskIndex : 0..<tasks.size) { | 67 | for(taskIndex : 0..<tasks.size) { |
68 | if(taskIndex>0) { | ||
69 | restForMeasurements(intermediateScriptConsole) | ||
70 | } | ||
67 | val task = tasks.get(taskIndex) | 71 | val task = tasks.get(taskIndex) |
68 | monitor.beginTask('''Executing task«IF tasks.size>1» «taskIndex+1»«ENDIF»: «task.name»''',task.totalWork) | 72 | monitor.beginTask('''Executing task«IF tasks.size>1» «taskIndex+1»«ENDIF»: «task.name»''',task.totalWork) |
69 | task.execute(monitor) | 73 | task.execute(monitor) |
@@ -250,4 +254,16 @@ class ScriptExecutor { | |||
250 | } | 254 | } |
251 | } | 255 | } |
252 | } | 256 | } |
253 | } | 257 | |
258 | static val boolean measuring = true | ||
259 | static def restForMeasurements(ScriptConsole console) { | ||
260 | if(measuring) { | ||
261 | if(console !== null) { | ||
262 | console.writeMessage('''Cleaning memory.''') | ||
263 | } | ||
264 | System.gc System.gc System.gc | ||
265 | Thread.sleep(2500) | ||
266 | } | ||
267 | } | ||
268 | } | ||
269 | |||
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/SolverLoader.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/SolverLoader.xtend index 1139080b..b1be56cb 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/SolverLoader.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/SolverLoader.xtend | |||
@@ -98,6 +98,43 @@ class SolverLoader { | |||
98 | console.writeError('''Malformed number format: «e.message»''') | 98 | console.writeError('''Malformed number format: «e.message»''') |
99 | } | 99 | } |
100 | } | 100 | } |
101 | if(config.containsKey("numeric-solver-at-end")) { | ||
102 | val stringValue = config.get("numeric-solver-at-end") | ||
103 | if(stringValue.equals("true")) { | ||
104 | println("numeric-solver-at-end") | ||
105 | c.runIntermediateNumericalConsistencyChecks = false | ||
106 | } | ||
107 | } | ||
108 | if(config.containsKey("fitness-punishSize")) { | ||
109 | val stringValue = config.get("fitness-punishSize") | ||
110 | try { | ||
111 | c.punishSize = Boolean.parseBoolean(stringValue) | ||
112 | } catch(Exception e) {} | ||
113 | } | ||
114 | if(config.containsKey("fitness-scope")) { | ||
115 | val stringValue = config.get("fitness-scope") | ||
116 | try { | ||
117 | c.scopeWeight = Integer.parseInt(stringValue) | ||
118 | } catch(Exception e) {} | ||
119 | } | ||
120 | if(config.containsKey("fitness-missing-containent")) { | ||
121 | val stringValue = config.get("fitness-missing-containent") | ||
122 | try { | ||
123 | c.conaintmentWeight = Integer.parseInt(stringValue) | ||
124 | } catch(Exception e) {} | ||
125 | } | ||
126 | if(config.containsKey("fitness-missing-noncontainent")) { | ||
127 | val stringValue = config.get("fitness-missing-noncontainent") | ||
128 | try { | ||
129 | c.nonContainmentWeight = Integer.parseInt(stringValue) | ||
130 | } catch(Exception e) {} | ||
131 | } | ||
132 | if(config.containsKey("fitness-missing-wf")) { | ||
133 | val stringValue = config.get("fitness-missing-wf") | ||
134 | try { | ||
135 | c.unfinishedWFWeight = Integer.parseInt(stringValue) | ||
136 | } catch(Exception e) {} | ||
137 | } | ||
101 | for (objectiveEntry : objectiveEntries) { | 138 | for (objectiveEntry : objectiveEntries) { |
102 | val costObjectiveConfig = new CostObjectiveConfiguration | 139 | val costObjectiveConfig = new CostObjectiveConfiguration |
103 | switch (objectiveEntry) { | 140 | switch (objectiveEntry) { |
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend index 7d79bbbb..b378ec0c 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend | |||
@@ -10,7 +10,7 @@ import org.eclipse.viatra.query.patternlanguage.emf.vql.Pattern | |||
10 | 10 | ||
11 | class QueryAndMetamodelValidator { | 11 | class QueryAndMetamodelValidator { |
12 | 12 | ||
13 | def public validateQueryAndMetamodel( | 13 | def validateQueryAndMetamodel( |
14 | EcoreMetamodelDescriptor metamodel, | 14 | EcoreMetamodelDescriptor metamodel, |
15 | Pair<ViatraQuerySetDescriptor, Set<Pattern>> viatra) | 15 | Pair<ViatraQuerySetDescriptor, Set<Pattern>> viatra) |
16 | { | 16 | { |