diff options
author | OszkarSemerath <oszkar.semerath@gmail.com> | 2018-02-27 20:40:13 -0500 |
---|---|---|
committer | OszkarSemerath <oszkar.semerath@gmail.com> | 2018-02-27 20:40:13 -0500 |
commit | 929f6279d960a293c83632a0d476c49c3eca62bb (patch) | |
tree | ce7415ebe5e074c9d51e5b318f18804dd288ce82 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeRefinementGenerator.xtend | |
parent | logging removed (diff) | |
download | VIATRA-Generator-929f6279d960a293c83632a0d476c49c3eca62bb.tar.gz VIATRA-Generator-929f6279d960a293c83632a0d476c49c3eca62bb.tar.zst VIATRA-Generator-929f6279d960a293c83632a0d476c49c3eca62bb.zip |
Viatra Solver support for tasks with no partial model
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeRefinementGenerator.xtend')
-rw-r--r-- | Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeRefinementGenerator.xtend | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeRefinementGenerator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeRefinementGenerator.xtend index 4b7af959..1081fafc 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeRefinementGenerator.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeRefinementGenerator.xtend | |||
@@ -25,6 +25,12 @@ class GenericTypeRefinementGenerator extends TypeRefinementGenerator { | |||
25 | inverseRelations.put(it.inverseB,it.inverseA) | 25 | inverseRelations.put(it.inverseB,it.inverseA) |
26 | ] | 26 | ] |
27 | return ''' | 27 | return ''' |
28 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
29 | «FOR type :containment.typesOrderedInHierarchy SEPARATOR "or"»{ | ||
30 | find interpretation(problem,interpretation); | ||
31 | «base.typeIndexer.referInstanceOf(type,Modality.MAY,"root")» | ||
32 | find mustExist(problem, interpretation, root); | ||
33 | }«ENDFOR» | ||
28 | «FOR type:newObjectTypes» | 34 | «FOR type:newObjectTypes» |
29 | «IF(containment.typesOrderedInHierarchy.contains(type))» | 35 | «IF(containment.typesOrderedInHierarchy.contains(type))» |
30 | «FOR containmentRelation : containment.containmentRelations.filter[canBeContainedByRelation(it,type)]» | 36 | «FOR containmentRelation : containment.containmentRelations.filter[canBeContainedByRelation(it,type)]» |
@@ -66,6 +72,18 @@ class GenericTypeRefinementGenerator extends TypeRefinementGenerator { | |||
66 | } | 72 | } |
67 | «ENDIF» | 73 | «ENDIF» |
68 | «ENDFOR» | 74 | «ENDFOR» |
75 | pattern «patternName(null,null,type)»( | ||
76 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
77 | typeInterpretation:PartialTypeInterpratation) | ||
78 | { | ||
79 | find interpretation(problem,interpretation); | ||
80 | neg find hasElementInContainment(problem,interpretation); | ||
81 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
82 | PartialTypeInterpratation.interpretationOf.name(type,"«type.name»"); | ||
83 | «base.typeIndexer.referInstanceOf(type,Modality.MAY,"newObject")» | ||
84 | find mayExist(problem, interpretation, newObject); | ||
85 | neg find mustExist(problem, interpretation, newObject); | ||
86 | } | ||
69 | «ELSE» | 87 | «ELSE» |
70 | pattern createObject_«this.patternName(null,null,type)»( | 88 | pattern createObject_«this.patternName(null,null,type)»( |
71 | problem:LogicProblem, interpretation:PartialInterpretation, | 89 | problem:LogicProblem, interpretation:PartialInterpretation, |