diff options
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.xtend | 24 |
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 | |||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | 17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic |
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | 18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation |
19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | 19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml |
20 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration | ||
20 | import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser | 21 | import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser |
21 | import hu.bme.mit.inf.dslreasoner.workspace.URIBasedWorkspace | 22 | import hu.bme.mit.inf.dslreasoner.workspace.URIBasedWorkspace |
22 | import java.io.File | 23 | import java.io.File |
23 | import java.util.LinkedHashMap | 24 | import java.util.LinkedHashMap |
24 | import java.util.LinkedList | 25 | import java.util.LinkedList |
26 | import java.util.Map | ||
25 | import java.util.Optional | 27 | import java.util.Optional |
26 | import org.eclipse.core.runtime.IProgressMonitor | 28 | import org.eclipse.core.runtime.IProgressMonitor |
27 | import org.eclipse.emf.common.util.URI | 29 | import 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) { |