From 53ce0bea21c18061eabfd890f6ea6776fe4e1d08 Mon Sep 17 00:00:00 2001 From: Oszkar Semerath Date: Tue, 12 May 2020 02:38:04 +0200 Subject: advanced goal heuristics for missing containment and non-cont. edges --- .../logic2viatra/patterns/PatternProvider.xtend | 25 ++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend index 750107f6..cfea499b 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend @@ -27,7 +27,8 @@ import java.util.HashMap @Data class GeneratedPatterns { public Map>> invalidWFQueries public Map>> unfinishedWFQueries - public Map>> unfinishedMulticiplicityQueries + public Map>> unfinishedContainmentMulticiplicityQueries + public Map>> unfinishedNonContainmentMulticiplicityQueries public Map>> refineObjectQueries public Map>> refineTypeQueries public Map, IQuerySpecification>> refinerelationQueries @@ -86,8 +87,23 @@ class PatternProvider { invalidWFQueries = patternGenerator.invalidIndexer.getInvalidateByWfQueryNames(problem).mapValues[it.lookup(queries)] val Map>> unfinishedWFQueries = patternGenerator.unfinishedIndexer.getUnfinishedWFQueryNames(problem).mapValues[it.lookup(queries)] - val Map>> - unfinishedMultiplicityQueries = patternGenerator.unfinishedIndexer.getUnfinishedMultiplicityQueries(problem).mapValues[it.lookup(queries)] + + val unfinishedMultiplicities = patternGenerator.unfinishedIndexer.getUnfinishedMultiplicityQueries(problem) + val unfinishedContainmentMultiplicities = new HashMap + val unfinishedNonContainmentMultiplicities = new HashMap + for(entry : unfinishedMultiplicities.entrySet) { + val relation = entry.key + val value = entry.value.lookup(queries) + if(problem.containmentHierarchies.head.containmentRelations.contains(relation)) { + unfinishedContainmentMultiplicities.put(relation,value) + } else { + unfinishedNonContainmentMultiplicities.put(relation,value) + } + } +// val Map>> +// unfinishedMultiplicityQueries = patternGenerator.unfinishedIndexer.getUnfinishedMultiplicityQueries(problem).mapValues[it.lookup(queries)] +// + val Map>> refineObjectsQueries = patternGenerator.typeRefinementGenerator.getRefineObjectQueryNames(problem,emptySolution,typeAnalysisResult).mapValues[it.lookup(queries)] val Map>> @@ -101,7 +117,8 @@ class PatternProvider { return new GeneratedPatterns( invalidWFQueries, unfinishedWFQueries, - unfinishedMultiplicityQueries, + unfinishedContainmentMultiplicities, + unfinishedNonContainmentMultiplicities, refineObjectsQueries, refineTypeQueries, refineRelationQueries, -- cgit v1.2.3-70-g09d2