aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-reasoning-scope
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-12-06 23:52:07 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-12-08 21:48:48 +0100
commitd40ec70132ebb324873cb8c3868eb65309f46f8c (patch)
tree31c9ca6e5454f61868b4123574b723b33ecc704e /subprojects/store-reasoning-scope
parentchore: upgrade to Eclipse 2023-12 (diff)
downloadrefinery-d40ec70132ebb324873cb8c3868eb65309f46f8c.tar.gz
refinery-d40ec70132ebb324873cb8c3868eb65309f46f8c.tar.zst
refinery-d40ec70132ebb324873cb8c3868eb65309f46f8c.zip
feat: state-based store for cross references
Efficiently store cross references even if default ref(*, *): false. Uses propagation rules instead of view queries to reason about type constraints and multiplicity.
Diffstat (limited to 'subprojects/store-reasoning-scope')
-rw-r--r--subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java b/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java
index a2c56a6b..5ee97ce1 100644
--- a/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java
+++ b/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java
@@ -27,7 +27,6 @@ import tools.refinery.store.reasoning.translator.containment.ContainmentHierarch
27import tools.refinery.store.reasoning.translator.metamodel.Metamodel; 27import tools.refinery.store.reasoning.translator.metamodel.Metamodel;
28import tools.refinery.store.reasoning.translator.metamodel.MetamodelTranslator; 28import tools.refinery.store.reasoning.translator.metamodel.MetamodelTranslator;
29import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 29import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
30import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity;
31import tools.refinery.store.representation.TruthValue; 30import tools.refinery.store.representation.TruthValue;
32import tools.refinery.store.representation.cardinality.CardinalityIntervals; 31import tools.refinery.store.representation.cardinality.CardinalityIntervals;
33import tools.refinery.store.statecoding.StateCoderAdapter; 32import tools.refinery.store.statecoding.StateCoderAdapter;
@@ -109,10 +108,16 @@ class PredicateScopeTest {
109 private ModelStore createStore() { 108 private ModelStore createStore() {
110 var metamodel = Metamodel.builder() 109 var metamodel = Metamodel.builder()
111 .type(index) 110 .type(index)
112 .reference(next, index, false, 111 .reference(next, builder -> builder
113 ConstrainedMultiplicity.of(CardinalityIntervals.LONE, nextInvalidMultiplicity), index, prev) 112 .source(index)
114 .reference(prev, index, false, 113 .target(index)
115 ConstrainedMultiplicity.of(CardinalityIntervals.LONE, prevInvalidMultiplicity), index, next) 114 .multiplicity(CardinalityIntervals.LONE, nextInvalidMultiplicity)
115 .opposite(prev))
116 .reference(prev, builder -> builder
117 .source(index)
118 .target(index)
119 .multiplicity(CardinalityIntervals.LONE, prevInvalidMultiplicity)
120 .opposite(next))
116 .build(); 121 .build();
117 return ModelStore.builder() 122 return ModelStore.builder()
118 .with(QueryInterpreterAdapter.builder()) 123 .with(QueryInterpreterAdapter.builder())