diff options
3 files changed, 12 insertions, 12 deletions
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/.project b/Domains/Examples/ModelGenExampleFAM_plugin/.project index 70920828..6e1b3a06 100644 --- a/Domains/Examples/ModelGenExampleFAM_plugin/.project +++ b/Domains/Examples/ModelGenExampleFAM_plugin/.project | |||
@@ -11,11 +11,6 @@ | |||
11 | </arguments> | 11 | </arguments> |
12 | </buildCommand> | 12 | </buildCommand> |
13 | <buildCommand> | 13 | <buildCommand> |
14 | <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> | ||
15 | <arguments> | ||
16 | </arguments> | ||
17 | </buildCommand> | ||
18 | <buildCommand> | ||
19 | <name>org.eclipse.jdt.core.javabuilder</name> | 14 | <name>org.eclipse.jdt.core.javabuilder</name> |
20 | <arguments> | 15 | <arguments> |
21 | </arguments> | 16 | </arguments> |
@@ -33,7 +28,6 @@ | |||
33 | </buildSpec> | 28 | </buildSpec> |
34 | <natures> | 29 | <natures> |
35 | <nature>org.eclipse.jdt.core.javanature</nature> | 30 | <nature>org.eclipse.jdt.core.javanature</nature> |
36 | <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> | ||
37 | <nature>org.eclipse.viatra.query.projectnature</nature> | 31 | <nature>org.eclipse.viatra.query.projectnature</nature> |
38 | <nature>org.eclipse.pde.PluginNature</nature> | 32 | <nature>org.eclipse.pde.PluginNature</nature> |
39 | </natures> | 33 | </natures> |
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend index 9845560c..0ae28b66 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend | |||
@@ -34,7 +34,7 @@ class RelationDefinitionIndexer { | |||
34 | this.base = base | 34 | this.base = base |
35 | } | 35 | } |
36 | 36 | ||
37 | public def generateRelationDefinitions( | 37 | def generateRelationDefinitions( |
38 | LogicProblem problem, | 38 | LogicProblem problem, |
39 | Iterable<RelationDefinition> relations, | 39 | Iterable<RelationDefinition> relations, |
40 | Map<String,PQuery> fqn2PQuery) { | 40 | Map<String,PQuery> fqn2PQuery) { |
@@ -110,7 +110,7 @@ class RelationDefinitionIndexer { | |||
110 | else return Modality::MUST | 110 | else return Modality::MUST |
111 | } | 111 | } |
112 | 112 | ||
113 | def public referPattern(PQuery p, String[] variables, Modality modality, boolean positive, boolean transitive) ''' | 113 | def referPattern(PQuery p, String[] variables, Modality modality, boolean positive, boolean transitive) ''' |
114 | «IF !positive»neg «ENDIF»find «IF transitive»twoParam_«ENDIF»«modality.name.toLowerCase»InRelation_pattern_«p.fullyQualifiedName.replace('.','_')»«IF transitive»+«ENDIF»(«IF !transitive»problem,interpretation,«ENDIF»«variables.join(',')»); | 114 | «IF !positive»neg «ENDIF»find «IF transitive»twoParam_«ENDIF»«modality.name.toLowerCase»InRelation_pattern_«p.fullyQualifiedName.replace('.','_')»«IF transitive»+«ENDIF»(«IF !transitive»problem,interpretation,«ENDIF»«variables.join(',')»); |
115 | ''' | 115 | ''' |
116 | 116 | ||
@@ -228,10 +228,11 @@ class RelationDefinitionIndexer { | |||
228 | var String additionalDefinition; | 228 | var String additionalDefinition; |
229 | if(target instanceof EEnumLiteral) { | 229 | if(target instanceof EEnumLiteral) { |
230 | targetString = '''const_«target.name»_«target.EEnum.name»''' | 230 | targetString = '''const_«target.name»_«target.EEnum.name»''' |
231 | additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.EEnum.name»"); //LogicProblem.elements(problem,«targetString»);''' | 231 | additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» literal «target.EEnum.name»"); //LogicProblem.elements(problem,«targetString»);''' |
232 | } else if(target instanceof Enumerator) { | 232 | } else if(target instanceof Enumerator) { |
233 | // XXX We should get the corresponding EEnum name instead of the java class name. | ||
233 | targetString = '''const_«target.name»_«target.class.simpleName»''' | 234 | targetString = '''const_«target.name»_«target.class.simpleName»''' |
234 | additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.class.simpleName»"); //LogicProblem.elements(problem,«targetString»);''' | 235 | additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» literal «target.class.simpleName»"); //LogicProblem.elements(problem,«targetString»);''' |
235 | } else if(target instanceof Integer) { | 236 | } else if(target instanceof Integer) { |
236 | targetString = '''const_«target»_Integer''' | 237 | targetString = '''const_«target»_Integer''' |
237 | additionalDefinition = '''IntegerElement.value(«targetString»,«target»);''' | 238 | additionalDefinition = '''IntegerElement.value(«targetString»,«target»);''' |
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 fe4dcadd..b65826ad 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 | |||
@@ -15,6 +15,7 @@ import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | |||
15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | 15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic |
16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | 16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration |
17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor | 17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor |
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.ScopePropagatorStrategy | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | 19 | 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.partialinterpretation.PartialInterpretation |
20 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | 21 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml |
@@ -60,6 +61,7 @@ class SimpleRun { | |||
60 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) | 61 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) |
61 | val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) | 62 | val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) |
62 | val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelExtensionProblem,new Viatra2LogicConfiguration) | 63 | val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelExtensionProblem,new Viatra2LogicConfiguration) |
64 | // workspace.writeModel(validModelExtensionProblem.output, "generation.logicproblem") | ||
63 | 65 | ||
64 | val logicProblem = validModelExtensionProblem.output | 66 | val logicProblem = validModelExtensionProblem.output |
65 | 67 | ||
@@ -72,6 +74,7 @@ class SimpleRun { | |||
72 | it.typeScopes.maxNewElements = 40 | 74 | it.typeScopes.maxNewElements = 40 |
73 | it.typeScopes.minNewElements = 40 | 75 | it.typeScopes.minNewElements = 40 |
74 | it.solutionScope.numberOfRequiredSolutions = 1 | 76 | it.solutionScope.numberOfRequiredSolutions = 1 |
77 | // it.scopePropagatorStrategy = ScopePropagatorStrategy.BasicTypeHierarchy | ||
75 | it.documentationLevel = DocumentationLevel.NONE | 78 | it.documentationLevel = DocumentationLevel.NONE |
76 | it.debugConfiguration.partalInterpretationVisualisationFrequency = 1 | 79 | it.debugConfiguration.partalInterpretationVisualisationFrequency = 1 |
77 | it.debugConfiguration.partialInterpretatioVisualiser = new GraphvizVisualiser | 80 | it.debugConfiguration.partialInterpretatioVisualiser = new GraphvizVisualiser |
@@ -91,12 +94,14 @@ class SimpleRun { | |||
91 | 94 | ||
92 | println("Problem solved") | 95 | println("Problem solved") |
93 | 96 | ||
94 | val interpretations = reasoner.getInterpretations(solution as ModelResult) | 97 | val result = solution as ModelResult |
98 | val interpretations = reasoner.getInterpretations(result) | ||
95 | val models = new LinkedList | 99 | val models = new LinkedList |
96 | for(interpretation : interpretations) { | 100 | for(interpretation : interpretations) { |
97 | val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) | 101 | val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) |
98 | models+=instanceModel | 102 | models+=instanceModel |
99 | } | 103 | } |
104 | println(result.statistics.solverTime) | ||
100 | 105 | ||
101 | solution.writeSolution(workspace, #[]) | 106 | solution.writeSolution(workspace, #[]) |
102 | } | 107 | } |
@@ -129,7 +134,7 @@ class SimpleRun { | |||
129 | def static loadPartialModel(ReasonerWorkspace inputs) { | 134 | def static loadPartialModel(ReasonerWorkspace inputs) { |
130 | EMFPatternLanguageStandaloneSetup.doSetup | 135 | EMFPatternLanguageStandaloneSetup.doSetup |
131 | ReteEngine.getClass | 136 | ReteEngine.getClass |
132 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl()); | 137 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); |
133 | inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList | 138 | inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList |
134 | } | 139 | } |
135 | 140 | ||