aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend24
1 files changed, 17 insertions, 7 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 d718bb91..3563163e 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
@@ -17,11 +17,13 @@ import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic 17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation 18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml 19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
20import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration
20import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser 21import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser
21import hu.bme.mit.inf.dslreasoner.workspace.URIBasedWorkspace 22import hu.bme.mit.inf.dslreasoner.workspace.URIBasedWorkspace
22import java.io.File 23import java.io.File
23import java.util.LinkedHashMap 24import java.util.LinkedHashMap
24import java.util.LinkedList 25import java.util.LinkedList
26import java.util.Map
25import java.util.Optional 27import java.util.Optional
26import org.eclipse.core.runtime.IProgressMonitor 28import org.eclipse.core.runtime.IProgressMonitor
27import org.eclipse.emf.common.util.URI 29import org.eclipse.emf.common.util.URI
@@ -101,6 +103,13 @@ class GenerationTaskExecutor {
101 } 103 }
102 monitor.worked(50) 104 monitor.worked(50)
103 105
106 // 5. create a solver and a configuration
107 // 5.1 initialize
108 val solver = solverLoader.loadSolver(task.solver,configurationMap)
109 val objectiveSpecification = scriptExecutor.getObjectiveSpecification(task.objectives)
110 val objectiveEntries = objectiveSpecification?.entries ?: emptyList
111 val solverConfig = solverLoader.loadSolverConfig(task.solver,configurationMap,objectiveEntries,console)
112
104 // 4. translate all description to a logic problem 113 // 4. translate all description to a logic problem
105 monitor.subTask('''Translating all resources to logic''') 114 monitor.subTask('''Translating all resources to logic''')
106 var domain2LogicTransformationTime = System.nanoTime 115 var domain2LogicTransformationTime = System.nanoTime
@@ -112,9 +121,15 @@ class GenerationTaskExecutor {
112 var modelGeneration = ecore2Logic.transformMetamodel(metamodelDescriptor,new Ecore2LogicConfiguration()) 121 var modelGeneration = ecore2Logic.transformMetamodel(metamodelDescriptor,new Ecore2LogicConfiguration())
113 var problem = modelGeneration.output 122 var problem = modelGeneration.output
114 if(partialModelDescriptor !== null) { 123 if(partialModelDescriptor !== null) {
124 //get ignored attributes
125 var Map<String, Map<String, String>>ignoredAttributes = null
126 if (solverConfig instanceof ViatraReasonerConfiguration)
127 ignoredAttributes = (solverConfig as ViatraReasonerConfiguration).ignoredAttributesMap
128
115 problem = instanceModel2Logic.transform( 129 problem = instanceModel2Logic.transform(
116 modelGeneration, 130 modelGeneration,
117 partialModelDescriptor 131 partialModelDescriptor,
132 ignoredAttributes
118 ).output 133 ).output
119 } 134 }
120 if(queryDescriptor !== null){ 135 if(queryDescriptor !== null){
@@ -128,13 +143,8 @@ class GenerationTaskExecutor {
128 if(documentationLevel.atLeastNormal) { 143 if(documentationLevel.atLeastNormal) {
129 reasonerWorkspace.writeModel(problem,"generation.logicproblem") 144 reasonerWorkspace.writeModel(problem,"generation.logicproblem")
130 } 145 }
146 // END 4
131 147
132 // 5. create a solver and a configuration
133 // 5.1 initialize
134 val solver = solverLoader.loadSolver(task.solver,configurationMap)
135 val objectiveSpecification = scriptExecutor.getObjectiveSpecification(task.objectives)
136 val objectiveEntries = objectiveSpecification?.entries ?: emptyList
137 val solverConfig = solverLoader.loadSolverConfig(task.solver,configurationMap,objectiveEntries,console)
138 // 5.2 set values that defined directly 148 // 5.2 set values that defined directly
139 solverConfig.solutionScope = new SolutionScope => [ 149 solverConfig.solutionScope = new SolutionScope => [
140 it.numberOfRequiredSolutions = if(task.numberSpecified) { 150 it.numberOfRequiredSolutions = if(task.numberSpecified) {