aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-reasoning
Commit message (Collapse)AuthorAge
* feat: state-based store for cross referencesLibravatar Kristóf Marussy2023-12-08
| | | | | | | Efficiently store cross references even if default ref(*, *): false. Uses propagation rules instead of view queries to reason about type constraints and multiplicity.
* fix: lower multiplicity objectiveLibravatar Kristóf Marussy2023-12-01
| | | | We were spuriously counting lower multiplicity errors for non-existent objects.
* fix: contains assertionsLibravatar Kristóf Marussy2023-11-17
|
* feat: predicates as reference typesLibravatar Kristóf Marussy2023-11-17
| | | | | | | | | | Now unary predicates may be used as types for cross-references. This might create circular references between predicate, but no differently than when the user manually creates predicates with circular references. The reference types of containment and container references still have to be classes, because we use the class hierarchy to encode contained types.
* chore: remove VIATRA brandingLibravatar Kristóf Marussy2023-09-16
| | | | | | | | Rename VIATRA subprojects to Refinery Interpreter to avoid interfering with Eclipse Foundation trademarks. Uses refering to a specific (historical) version of VIATRA were kept to avoid ambiguity.
* fix: multiplicity error for non-existing objectsLibravatar Kristóf Marussy2023-09-13
|
* fix: multi-objects with lower bound of 1Libravatar Kristóf Marussy2023-09-13
| | | | | If an object has a lower bound of 1, but it is still a multi-object, model generation can't be finished yet.
* feat: connect model generator to UILibravatar Kristóf Marussy2023-09-12
|
* feat: cancellation token for ModelStoreLibravatar Kristóf Marussy2023-09-11
|
* fix: build failures after integrating generationLibravatar Kristóf Marussy2023-09-11
|
* feat: integrate DSE with partial interpretationLibravatar Kristóf Marussy2023-09-09
|
* feat: declarative DSE rules and model refinementLibravatar Kristóf Marussy2023-09-07
|
* feat(dse): transformation rule builderLibravatar Kristóf Marussy2023-09-06
|
* feat: type scope propagatorLibravatar Kristóf Marussy2023-09-03
|
* refactor: rename invalidNumberOfContainersLibravatar Kristóf Marussy2023-08-29
| | | | | Use a simplified name invalidContainer, since this pattern may match even if there is a sufficient number of ERROR containers.
* refactor: disable contains refinementLibravatar Kristóf Marussy2023-08-27
| | | | | | Providing an efficient refinement calculus would be too difficult at this point, and contains is much more useful as a constraint in predicates that as an assertions anyway.
* fix: strong represenative election algorithmLibravatar Kristóf Marussy2023-08-27
| | | | Make sure to merge all clusters reachable from source and target.
* feat: improve semantics error reportingLibravatar Kristóf Marussy2023-08-20
| | | | | Also makes model seeds cancellable to reduce server load during semantic analysis.
* fix: abstract type chain eliminationLibravatar Kristóf Marussy2023-08-19
|
* feat: predicate semanticsLibravatar Kristóf Marussy2023-08-18
|
* refactor: candidate interpreation only on demandLibravatar Kristóf Marussy2023-08-17
| | | | Avoid creating interpretations not needed for the graph analysis task.
* fix: opposite translation error reportingLibravatar Kristóf Marussy2023-08-17
|
* fix: containment link translationLibravatar Kristóf Marussy2023-08-17
| | | | | Improper equality implementation of representative election literals merged weak and strong connected components during query canonicalization.
* fix: concrete supertype translationLibravatar Kristóf Marussy2023-08-13
|
* feat: metamodel translatorLibravatar Kristóf Marussy2023-08-13
|
* refactor: partial model initialzer unique tableLibravatar Kristóf Marussy2023-07-25
| | | | | Reduce memory use of initial partial models by consolidating value objects.
* feat: concrete count in partial modelsLibravatar Kristóf Marussy2023-07-25
|
* feat: custom connected component RETE nodeLibravatar Kristóf Marussy2023-07-23
|
* feat: partial interpretation for type hierarchyLibravatar Kristóf Marussy2023-07-20
|
* feat: multi-object based EQUALS and EXISTSLibravatar Kristóf Marussy2023-07-20
| | | | | | | | | Adds translator for EQUALS and EXISTS symbols based on the multi-object formalism. Only diagonal equality links are supported (e.g., distinct nodes may not be EQUALS with each other). Also introduces initial model seeds to separate partial interpreter construction and graph initialization better.
* feat: basic partial interpretation infrastructureLibravatar Kristóf Marussy2023-07-20
|
* refactor: Dnf lifterLibravatar Kristóf Marussy2023-06-29
| | | | | * Use method object pattern to simplify code. * Optimize existential quantification in transitive queries.
* feat: Dnf liftingLibravatar Kristóf Marussy2023-06-29
| | | | Support for count and aggregation is still missing.
* feat: ordered query ResultSetLibravatar Kristóf Marussy2023-06-29
| | | | | | | | | | | | | | 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.
* fix: FilteredView default valueLibravatar Kristóf Marussy2023-06-22
| | | | | The filer can't return true for the default value, because tuples with default value cannot be enumerated.
* refactor: remove RuleLibravatar Kristóf Marussy2023-06-18
| | | | We will need to rework rule execution according to recent Dnf changes.
* refactor: clean up Symbol constructorLibravatar Kristóf Marussy2023-06-18
| | | | Shorthad syntax for the most commonly used symbol types.
* fix: further Dnf tests and fixesLibravatar Kristóf Marussy2023-06-17
|
* feat: count and aggregation literal reductionLibravatar Kristóf Marussy2023-05-03
|
* feat: query parameter binding validationLibravatar Kristóf Marussy2023-05-01
| | | | | | | * Introduce parameter directions for constraints and DNF * Introduce variable directions for literals * Infer and check variable directions in DNF and topologically sort literals by their input variables
* refactor: query termsLibravatar Kristóf Marussy2023-04-23
| | | | | | | * 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.
* refactor: simplify ModelAdapterLibravatar Kristóf Marussy2023-04-21
| | | | | | | | * Remove the reflection-based machinery around adapter types. * Adapter builders, store adapters, and model adapters are now only associated with each other based on static and runtime types. * Simplifies writing new adapters. * Hierarchical syntax for adding adapter builders to the store builder.
* refactor: rename RelationView to SymbolViewLibravatar Kristóf Marussy2023-04-15
| | | | | * Add NodeFunctionView for symbols that hold function-like (single associated object for each key) relations as integer values for performance.
* chore: add copyright headersLibravatar Kristóf Marussy2023-04-15
| | | | | | | | | | | | | | Make sure we obey the REUSE (https://reuse.software) specification and the origin, copyright owner, and license of all files are clearly marked. The whole project is under the EPL-2.0, except for trivial files where copyright is not applicable that are marked with the CC0-1.0 license. Moreover, code included from third parties is also available under the respective license. chore: add CONTRIBUTORS.md List all authors and supporting organizations in accordance with the REUSE specification.
* build: organize build scripts into packagesLibravatar Kristóf Marussy2023-04-09
| | | | | | | Also take advantage of precompiled Kotlin scripts to write build scripts in a more straightforward manner through generated accessors. Might increase memory usage of Gradle.
* build: convert Gradle scripts to KotlinLibravatar Kristóf Marussy2023-04-08
| | | | | | | Improves IDE support build scripts in IntelliJ. There is no Eclipse IDE support, but Eclipse didn't have support for Groovy either, so there is no degradation of functionality.
* refactor: remove TupleLikeLibravatar Kristóf Marussy2023-04-07
| | | | | | | | | | * Directly transform VIATRA tuples into Refinery tuples, since creating the additional wrapper object doesn't save any memory. * Adds static arity Tuple3 and Tuple4 implementations to be more aligned with VIATRA internals and save memory for queries with up to 4 parameters. * Makes sure no new objects are allocated (for varargs handling) when a static arity tuple is hashed.
* feat: terms and improved query evaluationLibravatar Kristóf Marussy2023-03-31
| | | | | | | | | | | | | | | | | * Implement data terms for computations in queries. * Function-like queries with computed results. * Improved query evaluation, including positive and negative diagonal cosntraints. * Preliminary local search support. * Changes to the DNF representation for count and aggregation support. feat: terms wip feat: query terms wip feat: query evaluation, diagonal constraints, local search wip fix reasoning compilation wip
* refactor: more direct access to VIATRA result setLibravatar Kristóf Marussy2023-03-01
| | | | | | | | | | | | | | | | | | | | | Accessing VIATRA result sets through IQueryResultProvider requires a lot of indirection, allocations, and locking. We use reflection instead to have direct access to the underlying Indexer instead. Unfortunately, projection to arbitrary tuple masks (with wildcard entries in a tuple) is completely broken in VIATRA when RETE update propagation is delayed. While a new, ad-hoc projection indexer gets added to the RETE net immediately, it is not populated with the projection results until updates are flushed in the query engine. Therefore, when encountering an ad-hoc projection for the first time, the projection results will always be empty (thus usually out of date). While declaring the desired projections ahead of time would be a possible solution, for now, we completely remove ad-hoc projection support. If projections are needed on the ModelQuery level, we should create an API for declaring projections for each registered Dnf.
* refactor: rename PartialInterpretation adapterLibravatar Kristóf Marussy2023-02-25