aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
blob: 15f9e1feb834fb4f89c44e520d947c70643e11aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package ca.mcgill.ecse.dslreasoner.vampire.test

import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup
import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage
import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage
import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory
import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage
import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
import java.util.Collections
import org.eclipse.emf.common.util.URI
import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl

class MedicalSystem {
	def static void main(String[] args) {
		init()
		val workspace = new FileSystemWorkspace('''output/MedicalSystem/''',"")
		workspace.initAndClear
		val root = load()
		println("Problem Loaded")
		
		
//		val rs = new ResourceSetImpl
//		val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp"))
//		
//		var vampireModel = VampireLanguageFactory.eINSTANCE.createVampireModel()
		

		
		var LogicResult solution
		var LogicReasoner reasoner
		
		reasoner = new VampireSolver
		val vampireConfig = new VampireSolverConfiguration => [
			//add configuration things, in config file first
			it.writeToFile = true
		]
		
		solution = reasoner.solve(root, vampireConfig,	workspace)
		
//		vampireModel = solution
//		
//		logRes.contents.add(vampireModel)
//		logRes.save(Collections.EMPTY_MAP)
		
		
		println("Problem Solved")
		
	}
	
	protected def static LogicProblem load() {
		val resourceSet = new ResourceSetImpl
		val resource = resourceSet.getResource(URI.createURI("inputLPs/newMedicalSystem.logicproblem"),true)
		val root = resource.contents.get(0) as LogicProblem
		root
	}
	
	protected def static void init() {
		LogiclanguagePackage.eINSTANCE.eClass
		LogicproblemPackage.eINSTANCE.eClass()
		Ecore2logicannotationsPackage.eINSTANCE.eClass()
		Viatra2LogicAnnotationsPackage.eINSTANCE.eClass()
		val reg = Resource.Factory.Registry.INSTANCE
		val map = reg.extensionToFactoryMap
		map.put("logicproblem", new XMIResourceFactoryImpl)
		map.put("tptp", new XMIResourceFactoryImpl)
		VampireLanguageStandaloneSetup.doSetup
	}
}