aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src
diff options
context:
space:
mode:
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend10
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend6
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend22
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/SolverLoader.xtend37
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend2
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
3import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript 3import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript
4import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask 4import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask
5import hu.bme.mit.inf.dslreasoner.application.validation.MetamodelValidator
6import hu.bme.mit.inf.dslreasoner.application.validation.QueryAndMetamodelValidator
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 5import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel 7import 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
14import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MemoryEntry 14import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MemoryEntry
15import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference 15import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference
16import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelSpecification 16import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelSpecification
17import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveReference
18import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveSpecification
17import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference 19import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference
18import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification 20import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification
19import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification 21import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification
@@ -30,8 +32,6 @@ import org.eclipse.core.runtime.Status
30import org.eclipse.core.runtime.jobs.Job 32import org.eclipse.core.runtime.jobs.Job
31import org.eclipse.emf.common.util.URI 33import org.eclipse.emf.common.util.URI
32import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor 34import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
33import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveSpecification
34import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectiveReference
35 35
36@FinalFieldsConstructor 36@FinalFieldsConstructor
37class ScriptExecutor { 37class 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
11class QueryAndMetamodelValidator { 11class 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 {