aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-02-17 15:12:05 -0500
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-02-17 15:12:05 -0500
commit2e5968a5162b04d33eb1d3a60dd394b68583a4b6 (patch)
treed3797fcf89614b1f7c69917dc6849585dd555fad
parentCommit before merge (diff)
parentCreated new module to load referred patterns. hacked metamodel linking. (diff)
downloadVIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.tar.gz
VIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.tar.zst
VIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.zip
Merge remote-tracking branch 'origin/master' into Vampire-New
Merge Oszkar's Java-related commit
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend46
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSSetup.xtend15
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend17
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/StandaloneScriptExecutor.xtend21
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend100
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend33
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend1
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend2
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend3
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend4
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/model/PartialModelAnnotations.genmodel1
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/SolutionStoreWithDiversityDescriptor.xtend3
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF5
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/Test.xtend25
14 files changed, 136 insertions, 140 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend
new file mode 100644
index 00000000..1269ec1f
--- /dev/null
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend
@@ -0,0 +1,46 @@
1package hu.bme.mit.inf.dslreasoner.application.execution
2
3import com.google.inject.Binder
4import com.google.inject.multibindings.Multibinder
5import com.google.inject.name.Names
6import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup.StandaloneParserWithSeparateModules
7import org.eclipse.viatra.query.patternlanguage.emf.scoping.EMFPatternLanguageImportNamespaceProvider
8import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider
9import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProviderInstance
10import org.eclipse.xtext.scoping.IScopeProvider
11import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider
12import org.eclipse.viatra.query.patternlanguage.emf.scoping.CompoundMetamodelProviderService
13import org.eclipse.viatra.query.patternlanguage.emf.scoping.MetamodelProviderService
14import org.eclipse.viatra.query.patternlanguage.emf.scoping.ResourceSetMetamodelProviderService
15import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeInferrer
16import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeSystem
17import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeInferrer
18import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeSystem
19import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule
20
21class PatternLanguageWithRSModule extends EMFPatternLanguageRuntimeModule{
22
23 override configureIScopeProviderDelegate(Binder binder) {
24 binder.bind(IScopeProvider).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
25 .to(EMFPatternLanguageImportNamespaceProvider);
26 Multibinder::newSetBinder(binder, IMetamodelProviderInstance);
27 }
28
29 override Class<? extends IMetamodelProvider> bindIMetamodelProvider() {
30 CompoundMetamodelProviderService
31 }
32
33 def configureMetamodelProviderInstance(Binder binder) {
34 val metamodelProviderBinder = Multibinder.newSetBinder(binder, IMetamodelProviderInstance)
35 metamodelProviderBinder.addBinding.to(MetamodelProviderService)
36 metamodelProviderBinder.addBinding.to(ResourceSetMetamodelProviderService)
37 }
38
39 override Class<? extends ITypeSystem> bindITypeSystem() {
40 return EMFTypeSystem;
41 }
42
43 override Class<? extends ITypeInferrer> bindITypeInferrer() {
44 return EMFTypeInferrer;
45 }
46} \ No newline at end of file
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSSetup.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSSetup.xtend
new file mode 100644
index 00000000..dd5af673
--- /dev/null
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSSetup.xtend
@@ -0,0 +1,15 @@
1package hu.bme.mit.inf.dslreasoner.application.execution
2
3import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetupGenerated
4import com.google.inject.Injector
5import com.google.inject.Guice
6import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule
7import com.google.inject.Guice;
8import com.google.inject.Injector;
9import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup
10
11class PatternLanguageWithRSSetup extends EMFPatternLanguageStandaloneSetup{
12 override Injector createInjector() {
13 return Guice::createInjector(new PatternLanguageWithRSModule());
14 }
15} \ No newline at end of file
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend
index 8f8348b1..cfc91143 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend
@@ -22,6 +22,10 @@ import org.eclipse.xtext.EcoreUtil2
22 22
23import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* 23import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
24import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternCall 24import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternCall
25import org.eclipse.viatra.query.runtime.api.IPatternMatch
26import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher
27import java.util.LinkedHashMap
28import java.util.LinkedList
25 29
26class QueryLoader { 30class QueryLoader {
27 //val parser = new VQLParser 31 //val parser = new VQLParser
@@ -34,6 +38,9 @@ class QueryLoader {
34 patterns += getPatterns(entry) 38 patterns += getPatterns(entry)
35 } 39 }
36 40
41 //val errors = patterns.map[eResource].toSet.map[errors]
42 //errors.forEach[println(it)]
43
37 val allConcernedPatterns = patterns.allReferredPatterns 44 val allConcernedPatterns = patterns.allReferredPatterns
38 val pattern2Specification = allConcernedPatterns.translatePatterns() 45 val pattern2Specification = allConcernedPatterns.translatePatterns()
39 46
@@ -108,7 +115,15 @@ class QueryLoader {
108 } 115 }
109 116
110 def private translatePatterns(Set<Pattern> xtextPattern) { 117 def private translatePatterns(Set<Pattern> xtextPattern) {
111 xtextPattern.toInvertedMap[builder.getOrCreateSpecification(it) as IQuerySpecification<?>] 118 val res = new LinkedHashMap<Pattern,IQuerySpecification<?>>
119 val patterns = new LinkedList<IQuerySpecification<?>>
120 for(pattern : xtextPattern) {
121 val querySpecification = builder.getOrCreateSpecification(pattern,patterns,true)
122 res.put(pattern,querySpecification)
123 patterns += querySpecification
124 }
125
126 return res
112 } 127 }
113 128
114 def private calculateDerivedFeatures(Set<EPackage> packages, Iterable<IQuerySpecification<?>> patterns) { 129 def private calculateDerivedFeatures(Set<EPackage> packages, Iterable<IQuerySpecification<?>> patterns) {
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/StandaloneScriptExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/StandaloneScriptExecutor.xtend
index f373d910..c612f0ea 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/StandaloneScriptExecutor.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/StandaloneScriptExecutor.xtend
@@ -17,6 +17,11 @@ import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions
17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint 17import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint
18import org.eclipse.viatra.query.runtime.rete.util.ReteHintOptions 18import org.eclipse.viatra.query.runtime.rete.util.ReteHintOptions
19import org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine 19import org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine
20import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneCompilerSetup
21import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetupGenerated
22import org.eclipse.xtext.resource.XtextResourceSet
23import com.google.inject.Injector
24import com.google.inject.Guice
20 25
21class StandaloneScriptExecutor { 26class StandaloneScriptExecutor {
22 def static void main(String[] args) { 27 def static void main(String[] args) {
@@ -32,9 +37,19 @@ class StandaloneScriptExecutor {
32 } 37 }
33 } 38 }
34 39
40 static def protected Injector internalCreateInjector() {
41 var newInjector = new EMFPatternLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
42 val PatternLanguageWithRSModule module = new PatternLanguageWithRSModule
43 newInjector = Guice.createInjector(module)
44 //val XtextInjectorProvider x = null
45 return newInjector;
46 }
47
48
35 def static loadScript(String path) { 49 def static loadScript(String path) {
36 //Initialise extensions 50 //Initialise extensions
37 EMFPatternLanguageStandaloneSetup.doSetup 51 val i = (new PatternLanguageWithRSSetup).createInjectorAndDoEMFRegistration
52 //PatternLanguageWithRSSetup.createInjectorAndDoEMFRegistration
38 ApplicationConfigurationStandaloneSetup.doSetup 53 ApplicationConfigurationStandaloneSetup.doSetup
39 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("xmi",new XMIResourceFactoryImpl) 54 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("xmi",new XMIResourceFactoryImpl)
40 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("logicproblem",new XMIResourceFactoryImpl) 55 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("logicproblem",new XMIResourceFactoryImpl)
@@ -43,7 +58,9 @@ class StandaloneScriptExecutor {
43 58
44 val ext = path.split("\\.").last 59 val ext = path.split("\\.").last
45 if(ext.equals("vsconfig")) { 60 if(ext.equals("vsconfig")) {
46 val resourceSet = new ResourceSetImpl 61
62 val resourceSet = //new ResourceSetImpl
63 i.getInstance(XtextResourceSet);
47 var Resource resource 64 var Resource resource
48 65
49 try{ 66 try{
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend
deleted file mode 100644
index e458267c..00000000
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend
+++ /dev/null
@@ -1,100 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.application.execution.util
2
3import com.google.inject.Guice
4import com.google.inject.Injector
5import com.google.inject.Module
6import hu.bme.mit.inf.dslreasoner.application.execution.ScriptConsole
7import java.util.LinkedHashMap
8import java.util.List
9import org.eclipse.emf.common.util.URI
10import org.eclipse.emf.ecore.resource.Resource
11import org.eclipse.emf.ecore.resource.ResourceSet
12import org.eclipse.emf.ecore.util.EcoreUtil
13import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule
14import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup
15import org.eclipse.viatra.query.patternlanguage.emf.GenmodelExtensionLoader
16import org.eclipse.viatra.query.patternlanguage.emf.IGenmodelMappingLoader
17import org.eclipse.viatra.query.patternlanguage.emf.scoping.CompoundMetamodelProviderService
18import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider
19import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder
20import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternModel
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification
22import org.eclipse.xtext.resource.XtextResourceSet
23
24class MyModule extends EMFPatternLanguageRuntimeModule implements Module {
25// override public Class<? extends IAnnotationValidatorLoader> bindAnnotationValidatorLoader() {
26// return typeof(ExtensionBasedAnnotationValidatorLoader);
27// }
28 def public Class<? extends IGenmodelMappingLoader> bindGenmodelMappingLoader() {
29 return typeof(GenmodelExtensionLoader);
30 }
31 override Class<? extends IMetamodelProvider> bindIMetamodelProvider() {
32 CompoundMetamodelProviderService
33 // PreloadedMetamodelProvider
34 }
35}
36
37class VQLParser {
38 val Injector injector;
39 val SpecificationBuilder builder = new SpecificationBuilder
40
41 new() {
42 EMFPatternLanguageStandaloneSetup.doSetup;
43
44 injector = internalCreateInjector
45 }
46
47 def protected Injector internalCreateInjector() {
48 new EMFPatternLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
49 val Module module = new MyModule
50 val newInjector = Guice.createInjector(module)
51 return newInjector;
52 }
53
54 public def createResourceSet() {
55 injector.getInstance(XtextResourceSet);
56 }
57
58 /**
59 * Load patterns in two steps: first, the pattern models are are loaded to a resource set, then
60 * the linked patterns are loaded validated and translated to a {@link IQuerySpecification} object.
61 * @returns uri -> (name -> pattern)
62 */
63 public def parse(List<String> uris, ResourceSet resourceSet, ScriptConsole context) {
64 val res = new LinkedHashMap
65 val uri2resource = new LinkedHashMap
66
67 for(uri : uris) {
68 var Resource resource
69 var PatternModel patternModel
70 try {
71 resource = resourceSet.getResource(URI.createURI(uri),true);
72 patternModel = resource.getContents().get(0) as PatternModel;
73 uri2resource.put(uri,patternModel)
74 } catch(RuntimeException e) {
75 context.writeError('''Unable to load patterns from "«uri»"!''')
76 }
77 }
78
79 for(entry : uri2resource.entrySet) {
80 val uri = entry.key
81 val model = entry.value
82 EcoreUtil.resolveAll(model.eResource)
83 model.eResource.validate(uri, context)
84
85 val map = new LinkedHashMap
86 for(pattern : model.patterns) {
87 val IQuerySpecification<?> querySpecification = (this.builder as SpecificationBuilder).getOrCreateSpecification(pattern)
88 map.put(querySpecification.fullyQualifiedName.split('.').last,querySpecification)
89 }
90 res.put(uri,map)
91 }
92
93 return res
94 }
95
96 def private validate(Resource resource, String URI, ScriptConsole context) {
97 val errors = resource.errors
98 errors.forEach[context.writeError('''Error in loading pattern "«URI»": «it»''')]
99 }
100} \ No newline at end of file
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend
index 41a89e6f..fc4b721a 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend
@@ -20,6 +20,8 @@ import org.eclipse.xtext.conversion.ValueConverterException
20import org.eclipse.xtext.linking.impl.DefaultLinkingService 20import org.eclipse.xtext.linking.impl.DefaultLinkingService
21import org.eclipse.xtext.nodemodel.ILeafNode 21import org.eclipse.xtext.nodemodel.ILeafNode
22import org.eclipse.xtext.nodemodel.INode 22import org.eclipse.xtext.nodemodel.INode
23import org.eclipse.emf.ecore.resource.ResourceSet
24import org.eclipse.emf.ecore.EPackage
23 25
24class ApplicationConfigurationLinkingService extends DefaultLinkingService{ 26class ApplicationConfigurationLinkingService extends DefaultLinkingService{
25 27
@@ -57,11 +59,32 @@ class ApplicationConfigurationLinkingService extends DefaultLinkingService{
57 } 59 }
58 60
59 private def getEPackage(EPackageImport packageImport, ILeafNode node) { 61 private def getEPackage(EPackageImport packageImport, ILeafNode node) {
60 getNSUri(node).flatMap [ uri | 62 val x = getNSUri(node)
61 Optional.ofNullable(metamodelProvider.loadEPackage(uri, packageImport.eResource.resourceSet)) 63 if(x.isPresent) {
62 ].map [ ePackage | 64 val uriString = x.get
63 Collections.singletonList(ePackage as EObject) 65 val epackageByMetamodelProvider = metamodelProvider.loadEPackage(uriString, packageImport.eResource.resourceSet)
64 ].orElse(emptyList) 66 val epackageByMe = ePackageByMe(packageImport.eResource.resourceSet,uriString)
67 //println(epackageByMetamodelProvider)
68 //println(epackageByMe)
69 if(epackageByMetamodelProvider!==null) {
70 return Collections.singletonList(epackageByMetamodelProvider as EObject)
71 } else if(epackageByMe !== null) {
72 return Collections.singletonList(epackageByMe as EObject)
73 } else {
74 emptyList
75 }
76 } else {
77 return emptyList
78 }
79 }
80
81 private def ePackageByMe(ResourceSet rs, String uri) {
82 try {
83 val resource = rs.getResource(URI.createURI(uri), true);
84 return resource.contents.head as EPackage
85 } catch (Exception e) {
86 return null
87 }
65 } 88 }
66 89
67 private def getViatra(ViatraImport viatraImport, INode node) { 90 private def getViatra(ViatraImport viatraImport, INode node) {
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend
index 82abd252..9c774dd9 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend
@@ -31,6 +31,7 @@ class EClassMapper_AllElementAsObject implements EClassMapper{
31 } 31 }
32 for(c:classes) { 32 for(c:classes) {
33 for(s : c.ESuperTypes) { 33 for(s : c.ESuperTypes) {
34 //println('''«c.name» -> «s.name»''')
34 Supertype(classMapperTrace.typeMap.get(c),classMapperTrace.typeMap.get(s)) 35 Supertype(classMapperTrace.typeMap.get(c),classMapperTrace.typeMap.get(s))
35 } 36 }
36 } 37 }
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend
index 4eb78bc6..179690dd 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend
@@ -124,6 +124,8 @@ class EReferenceMapper_RelationsOverTypes implements EReferenceMapper{
124 } else { 124 } else {
125 val sourceType = reference.EContainingClass 125 val sourceType = reference.EContainingClass
126 val targetType = reference.EType as EClass 126 val targetType = reference.EType as EClass
127 //val name = '''oppositeReference «reference.name» «sourceType.name»'''
128 //println(name)
127 val assertion = Assertion('''oppositeReference «reference.name» «sourceType.name»''', 129 val assertion = Assertion('''oppositeReference «reference.name» «sourceType.name»''',
128 Forall[ 130 Forall[
129 val src = addVar('''src''', trace.TypeofEClass(sourceType)) 131 val src = addVar('''src''', trace.TypeofEClass(sourceType))
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend
index b3b7da5a..f6bd9541 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicProblemBuilder.xtend
@@ -557,6 +557,9 @@ public class LogicProblemBuilder{
557 return relationReference 557 return relationReference
558 } 558 }
559 def private checkRelationCall(SymbolicValue value, Relation referredRelation) { 559 def private checkRelationCall(SymbolicValue value, Relation referredRelation) {
560// if(value === null || referredRelation === null) {
561// println("gebasz")
562// }
560 if(value.parameterSubstitutions.size != referredRelation.parameters.size) { 563 if(value.parameterSubstitutions.size != referredRelation.parameters.size) {
561 throw new LogicProblemBuilderException( 564 throw new LogicProblemBuilderException(
562 '''The relation "«referredRelation.name»" called has «referredRelation.parameters.size» parameters but it is called with «value.parameterSubstitutions.size»!''') 565 '''The relation "«referredRelation.name»" called has «referredRelation.parameters.size» parameters but it is called with «value.parameterSubstitutions.size»!''')
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend
index 8a0ff3b3..3b828170 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend
@@ -472,7 +472,7 @@ class Viatra2Logic {
472 } 472 }
473 def dispatch TypeReference transformTypeReference(EClassTransitiveInstancesKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { 473 def dispatch TypeReference transformTypeReference(EClassTransitiveInstancesKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) {
474 val c = k.wrappedKey 474 val c = k.wrappedKey
475 475
476 if(this.ecore2Logic.allClassesInScope(ecore2LogicTrace.trace).toList.contains(c)) { 476 if(this.ecore2Logic.allClassesInScope(ecore2LogicTrace.trace).toList.contains(c)) {
477 return builder.toTypeReference(this.ecore2Logic.TypeofEClass(ecore2LogicTrace.trace,k.wrappedKey)) 477 return builder.toTypeReference(this.ecore2Logic.TypeofEClass(ecore2LogicTrace.trace,k.wrappedKey))
478 } else { 478 } else {
@@ -490,7 +490,7 @@ class Viatra2Logic {
490 } 490 }
491 491
492 def dispatch TypeReference transformTypeReference(IInputKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) { 492 def dispatch TypeReference transformTypeReference(IInputKey k,TracedOutput<LogicProblem, Ecore2Logic_Trace> ecore2LogicTrace) {
493 println(k) 493 //println(k)
494 throw new IllegalArgumentException('''Unsupported type: «k.class.simpleName»''') 494 throw new IllegalArgumentException('''Unsupported type: «k.class.simpleName»''')
495 } 495 }
496 496
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/model/PartialModelAnnotations.genmodel b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/model/PartialModelAnnotations.genmodel
index 6c2f83c1..cfc356ca 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/model/PartialModelAnnotations.genmodel
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/model/PartialModelAnnotations.genmodel
@@ -10,7 +10,6 @@
10 <genPackages prefix="Partial2logicannotations" basePackage="hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage" 10 <genPackages prefix="Partial2logicannotations" basePackage="hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage"
11 disposableProviderFactory="true" ecorePackage="PartialModelAnnotations.ecore#/"> 11 disposableProviderFactory="true" ecorePackage="PartialModelAnnotations.ecore#/">
12 <genClasses ecoreClass="PartialModelAnnotations.ecore#//PartialModelRelation2Assertion"> 12 <genClasses ecoreClass="PartialModelAnnotations.ecore#//PartialModelRelation2Assertion">
13 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference PartialModelAnnotations.ecore#//PartialModelRelation2Assertion/links"/>
14 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference PartialModelAnnotations.ecore#//PartialModelRelation2Assertion/targetRelation"/> 13 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference PartialModelAnnotations.ecore#//PartialModelRelation2Assertion/targetRelation"/>
15 </genClasses> 14 </genClasses>
16 </genPackages> 15 </genPackages>
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/SolutionStoreWithDiversityDescriptor.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/SolutionStoreWithDiversityDescriptor.xtend
index a6e49d53..1e7f18a8 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/SolutionStoreWithDiversityDescriptor.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/SolutionStoreWithDiversityDescriptor.xtend
@@ -68,8 +68,7 @@ class SolutionStoreWithDiversityDescriptor {
68 val differentCodes = codes.filter[!solutionCodeList.contains(it)] 68 val differentCodes = codes.filter[!solutionCodeList.contains(it)]
69 //println(differentCodes.size) 69 //println(differentCodes.size)
70 70
71 isDifferent = differentCodes.size>=3 71 isDifferent = differentCodes.size>=1
72 if(isDifferent)println(differentCodes.size)
73 } else { 72 } else {
74 throw new UnsupportedOperationException('''Unsupported diversity type: «this.granularity»''') 73 throw new UnsupportedOperationException('''Unsupported diversity type: «this.granularity»''')
75 } 74 }
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF
index 699c9308..2abc6d50 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/META-INF/MANIFEST.MF
@@ -27,7 +27,8 @@ Require-Bundle: com.google.guava,
27 org.apache.batik.util.gui;bundle-version="[1.6.0,1.6.1]", 27 org.apache.batik.util.gui;bundle-version="[1.6.0,1.6.1]",
28 org.apache.xerces;bundle-version="2.9.0", 28 org.apache.xerces;bundle-version="2.9.0",
29 org.w3c.dom.svg;bundle-version="1.1.0", 29 org.w3c.dom.svg;bundle-version="1.1.0",
30 org.w3c.css.sac;bundle-version="1.3.1" 30 org.w3c.css.sac;bundle-version="1.3.1",
31 org.eclipse.m2e.maven.runtime.slf4j.simple;bundle-version="1.10.0"
31Import-Package: com.eclipsesource.v8;version="4.6.0", 32Import-Package: com.eclipsesource.v8;version="4.6.0",
32 com.eclipsesource.v8.debug;version="4.6.0", 33 com.eclipsesource.v8.debug;version="4.6.0",
33 com.eclipsesource.v8.utils;version="4.6.0", 34 com.eclipsesource.v8.utils;version="4.6.0",
@@ -36,9 +37,9 @@ Import-Package: com.eclipsesource.v8;version="4.6.0",
36 javax.xml.parsers, 37 javax.xml.parsers,
37 org.apache.log4j;version="1.2.15", 38 org.apache.log4j;version="1.2.15",
38 org.slf4j;version="1.7.2", 39 org.slf4j;version="1.7.2",
40 org.slf4j.helpers;version="1.7.2",
39 org.w3c.dom, 41 org.w3c.dom,
40 org.xml.sax, 42 org.xml.sax,
41 org.xml.sax.helpers 43 org.xml.sax.helpers
42Export-Package: hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz 44Export-Package: hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz
43Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.visualisation 45Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.visualisation
44
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/Test.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/Test.xtend
deleted file mode 100644
index 6680c780..00000000
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.visualisation/src/hu/bme/mit/inf/dslreasoner/visualisation/pi2graphviz/Test.xtend
+++ /dev/null
@@ -1,25 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz
2
3import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
4import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage
5import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
6import org.eclipse.emf.ecore.resource.Resource
7import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
8
9class Test {
10 def static void main(String[] args) {
11 println("xxx")
12 val workspace = new FileSystemWorkspace("input/","")
13
14 PartialinterpretationPackage.eINSTANCE.eClass
15 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl)
16
17 val model = workspace.readModel(PartialInterpretation,"solution1.partialinterpretation")
18 println("loaded")
19 val translator = new GraphvizVisualiser
20 val visualisation = translator.visualiseConcretization(model)
21 println("visualised")
22 visualisation.writeToFile(workspace,"output")
23 println("saved")
24 }
25} \ No newline at end of file