From 8d79e7f39df0fde9b4f0ba8e6264f2900e9024c6 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Thu, 29 Jun 2023 02:08:40 +0200 Subject: feat: ordered query ResultSet Enable deterministic state-space exploration by ordering activations in lexicographic order. This preliminary implementation adds oredering as a wrapper for ResultSet instances, but more sophisticated support could be built directly into query engine adapters if a query engine supports deterministic output by default. * Implements Comparable for tuples with loops unrolled for small tuples by hand. * Cleans up the contents of the (root of the) tools.refinery.query package. * Adds ResultSetListener to notify clients about ResultSet changes. * Adds OrderStatisticTree data structure for determinisitc ordering of keys. --- .../src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java | 2 +- .../tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java | 2 +- .../java/tools/refinery/store/reasoning/literal/ModalConstraint.java | 2 +- .../store/reasoning/translator/base/BaseDecisionInterpretation.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'subprojects/store-reasoning') diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java index 8f319242..6d5d6f89 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java @@ -6,7 +6,7 @@ package tools.refinery.store.reasoning; import tools.refinery.store.adapter.ModelAdapter; -import tools.refinery.store.query.ResultSet; +import tools.refinery.store.query.resultset.ResultSet; import tools.refinery.store.query.dnf.Dnf; import tools.refinery.store.reasoning.representation.AnyPartialSymbol; import tools.refinery.store.reasoning.representation.PartialRelation; diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java index 33b6f3c6..1bd3ad2e 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java @@ -10,7 +10,7 @@ import tools.refinery.store.reasoning.ReasoningAdapter; import tools.refinery.store.reasoning.PartialInterpretation; import tools.refinery.store.reasoning.representation.PartialSymbol; import tools.refinery.store.query.dnf.Dnf; -import tools.refinery.store.query.ResultSet; +import tools.refinery.store.query.resultset.ResultSet; public class ReasoningAdapterImpl implements ReasoningAdapter { private final Model model; diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java index 5ad1d5f8..4e5a6099 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java @@ -7,7 +7,7 @@ package tools.refinery.store.reasoning.literal; import tools.refinery.store.query.Constraint; import tools.refinery.store.query.equality.LiteralEqualityHelper; -import tools.refinery.store.query.Reduction; +import tools.refinery.store.query.literal.Reduction; import tools.refinery.store.query.term.Parameter; import java.util.List; diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java index e7b67ae4..2a151aa2 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java @@ -7,7 +7,7 @@ package tools.refinery.store.reasoning.translator.base; import tools.refinery.store.map.Cursor; import tools.refinery.store.model.Interpretation; -import tools.refinery.store.query.ResultSet; +import tools.refinery.store.query.resultset.ResultSet; import tools.refinery.store.reasoning.MergeResult; import tools.refinery.store.reasoning.PartialInterpretation; import tools.refinery.store.reasoning.ReasoningAdapter; -- cgit v1.2.3-54-g00ecf