diff options
Diffstat (limited to 'Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend')
-rw-r--r-- | Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend | 84 |
1 files changed, 36 insertions, 48 deletions
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend index 863a91c8..91c46dd6 100644 --- a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend +++ b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend | |||
@@ -1,41 +1,39 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.run | 1 | package hu.bme.mit.inf.dslreasoner.run |
2 | 2 | ||
3 | import functionalarchitecture.FunctionalarchitecturePackage | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.Model | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.Type | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | ||
14 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
20 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | ||
21 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner | ||
22 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration | ||
23 | import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser | ||
3 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | 24 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace |
4 | import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage | 25 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace |
26 | import java.util.LinkedHashMap | ||
27 | import java.util.LinkedList | ||
5 | import java.util.List | 28 | import java.util.List |
29 | import org.eclipse.emf.ecore.EAttribute | ||
6 | import org.eclipse.emf.ecore.EClass | 30 | import org.eclipse.emf.ecore.EClass |
7 | import org.eclipse.emf.ecore.EEnumLiteral | ||
8 | import org.eclipse.emf.ecore.EReference | ||
9 | import org.eclipse.emf.ecore.EEnum | 31 | import org.eclipse.emf.ecore.EEnum |
10 | import org.eclipse.emf.ecore.EAttribute | 32 | import org.eclipse.emf.ecore.EEnumLiteral |
11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
12 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
13 | import org.eclipse.emf.ecore.EObject | 33 | import org.eclipse.emf.ecore.EObject |
14 | import java.util.LinkedHashMap | 34 | import org.eclipse.emf.ecore.EReference |
15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor | ||
16 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
19 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
20 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
21 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration | ||
22 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod | ||
23 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.StateCoderStrategy | ||
24 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner | ||
25 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | ||
26 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
27 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
28 | import org.eclipse.emf.ecore.resource.Resource | 35 | import org.eclipse.emf.ecore.resource.Resource |
29 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 36 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
30 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | ||
31 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration | ||
32 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver | ||
33 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
34 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
35 | import java.util.LinkedList | ||
36 | import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualisation | ||
37 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder | ||
38 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
39 | 37 | ||
40 | class SimpleRun { | 38 | class SimpleRun { |
41 | 39 | ||
@@ -59,7 +57,7 @@ class SimpleRun { | |||
59 | 57 | ||
60 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) | 58 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) |
61 | val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) | 59 | val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) |
62 | val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) | 60 | val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelExtensionProblem,new Viatra2LogicConfiguration) |
63 | 61 | ||
64 | val logicProblem = validModelExtensionProblem.output | 62 | val logicProblem = validModelExtensionProblem.output |
65 | 63 | ||
@@ -71,11 +69,10 @@ class SimpleRun { | |||
71 | val viatraConfig = new ViatraReasonerConfiguration => [ | 69 | val viatraConfig = new ViatraReasonerConfiguration => [ |
72 | it.typeScopes.maxNewElements = 40 | 70 | it.typeScopes.maxNewElements = 40 |
73 | it.typeScopes.minNewElements = 40 | 71 | it.typeScopes.minNewElements = 40 |
74 | it.solutionScope.numberOfRequiredSolution = 1 | 72 | it.solutionScope.numberOfRequiredSolutions = 1 |
75 | it.existingQueries = queries.patterns.map[it.internalQueryRepresentation] | 73 | it.documentationLevel = DocumentationLevel.NONE |
76 | it.debugCongiguration.logging = false | 74 | it.debugConfiguration.partalInterpretationVisualisationFrequency = 1 |
77 | it.debugCongiguration.partalInterpretationVisualisationFrequency = 1 | 75 | it.debugConfiguration.partialInterpretatioVisualiser = new GraphvizVisualiser |
78 | it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation | ||
79 | ] | 76 | ] |
80 | solution = reasoner.solve(logicProblem,viatraConfig,workspace) | 77 | solution = reasoner.solve(logicProblem,viatraConfig,workspace) |
81 | /*/ | 78 | /*/ |
@@ -95,11 +92,6 @@ class SimpleRun { | |||
95 | val interpretations = reasoner.getInterpretations(solution as ModelResult) | 92 | val interpretations = reasoner.getInterpretations(solution as ModelResult) |
96 | val models = new LinkedList | 93 | val models = new LinkedList |
97 | for(interpretation : interpretations) { | 94 | for(interpretation : interpretations) { |
98 | val extension b = new LogicStructureBuilder | ||
99 | val extension a = new LogicProblemBuilder | ||
100 | |||
101 | |||
102 | |||
103 | val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) | 95 | val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) |
104 | models+=instanceModel | 96 | models+=instanceModel |
105 | } | 97 | } |
@@ -108,7 +100,7 @@ class SimpleRun { | |||
108 | } | 100 | } |
109 | 101 | ||
110 | def private static loadMetamodel() { | 102 | def private static loadMetamodel() { |
111 | val pckg = FunctionalArchitecturePackage.eINSTANCE | 103 | val pckg = FunctionalarchitecturePackage.eINSTANCE |
112 | val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList | 104 | val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList |
113 | val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList | 105 | val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList |
114 | val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList | 106 | val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList |
@@ -118,12 +110,12 @@ class SimpleRun { | |||
118 | } | 110 | } |
119 | 111 | ||
120 | def private static loadQueries(EcoreMetamodelDescriptor metamodel) { | 112 | def private static loadQueries(EcoreMetamodelDescriptor metamodel) { |
121 | val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance | 113 | val i = FamPatterns.instance |
122 | val patterns = i.specifications.toList | 114 | val patterns = i.specifications.toList |
123 | val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet | 115 | val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet |
124 | val derivedFeatures = new LinkedHashMap | 116 | val derivedFeatures = new LinkedHashMap |
125 | derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) | 117 | derivedFeatures.put(Type.instance,metamodel.attributes.filter[it.name == "type"].head) |
126 | derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) | 118 | derivedFeatures.put(Model.instance,metamodel.references.filter[it.name == "model"].head) |
127 | val res = new ViatraQuerySetDescriptor( | 119 | val res = new ViatraQuerySetDescriptor( |
128 | patterns, | 120 | patterns, |
129 | wfPatterns, | 121 | wfPatterns, |
@@ -160,8 +152,4 @@ class SimpleRun { | |||
160 | println("Solution saved and visualised") | 152 | println("Solution saved and visualised") |
161 | } | 153 | } |
162 | } | 154 | } |
163 | |||
164 | def static visualizeSolution() { | ||
165 | |||
166 | } | ||
167 | } \ No newline at end of file | 155 | } \ No newline at end of file |