aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-reasoning/src/main
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-04-23 23:39:39 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-04-23 23:42:53 +0200
commit565de1cb116e5e4f116544aaa035be58336656ec (patch)
tree5d4cff8e77e280552f13b9c7f8aafa79a39a0090 /subprojects/store-reasoning/src/main
parentrefactor: simplify ModelAdapter (diff)
downloadrefinery-565de1cb116e5e4f116544aaa035be58336656ec.tar.gz
refinery-565de1cb116e5e4f116544aaa035be58336656ec.tar.zst
refinery-565de1cb116e5e4f116544aaa035be58336656ec.zip
refactor: query terms
* Separate different operators into different classes to make it easier to add functionality (e.g., simplification) later. * Add UpperCardinality terms. * Move UpperCardinality aggregator and tests into refinery-store-query.
Diffstat (limited to 'subprojects/store-reasoning/src/main')
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java9
1 files changed, 2 insertions, 7 deletions
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
index dd7a018d..d6a9e02c 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
@@ -5,11 +5,11 @@
5 */ 5 */
6package tools.refinery.store.reasoning.translator; 6package tools.refinery.store.reasoning.translator;
7 7
8import tools.refinery.store.query.substitution.Substitution;
8import tools.refinery.store.reasoning.representation.AnyPartialSymbol; 9import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
9import tools.refinery.store.reasoning.representation.PartialRelation; 10import tools.refinery.store.reasoning.representation.PartialRelation;
10import tools.refinery.store.query.term.Variable; 11import tools.refinery.store.query.term.Variable;
11import tools.refinery.store.query.literal.Literal; 12import tools.refinery.store.query.literal.Literal;
12import tools.refinery.store.query.substitution.Substitutions;
13 13
14import java.util.*; 14import java.util.*;
15 15
@@ -66,14 +66,9 @@ public final class Advice {
66 public List<Literal> substitute(List<Variable> substituteParameters) { 66 public List<Literal> substitute(List<Variable> substituteParameters) {
67 checkArity(substituteParameters); 67 checkArity(substituteParameters);
68 markProcessed(); 68 markProcessed();
69 int arity = parameters.size();
70 var variableMap = new HashMap<Variable, Variable>(arity);
71 for (int i = 0; i < arity; i++) {
72 variableMap.put(parameters.get(i), substituteParameters.get(i));
73 }
74 // Use a renewing substitution to remove any non-parameter variables and avoid clashed between variables 69 // Use a renewing substitution to remove any non-parameter variables and avoid clashed between variables
75 // coming from different advice in the same clause. 70 // coming from different advice in the same clause.
76 var substitution = Substitutions.renewing(variableMap); 71 var substitution = Substitution.builder().putManyChecked(parameters, substituteParameters).renewing().build();
77 return literals.stream().map(literal -> literal.substitute(substitution)).toList(); 72 return literals.stream().map(literal -> literal.substitute(substitution)).toList();
78 } 73 }
79 74