aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-query-viatra/src/main/java
Commit message (Collapse)AuthorAge
* feat: custom connected component RETE nodeLibravatar Kristóf Marussy2023-07-23
|
* feat: use base index for local searchLibravatar Kristóf Marussy2023-07-15
|
* fix: ConstantLiteral to PConstraintLibravatar Kristóf Marussy2023-07-15
|
* feat: query rewriters for ViatraLibravatar Kristóf Marussy2023-07-15
|
* refactor: enable data variable unificationLibravatar Kristóf Marussy2023-07-09
| | | | | | This is needed for demand set transformation of DNFs with input data parameters, where the result of the transformation has an out data parameter that has to be unified with the variable in the parent clause.
* feat: Dnf liftingLibravatar Kristóf Marussy2023-06-29
| | | | Support for count and aggregation is still missing.
* refactor: query equality and hash codeLibravatar Kristóf Marussy2023-06-29
| | | | | | | Allow computing hash codes up to the renaming of variables. Also introduces CheckLiteral instead of AssumeLiteral for more straightforward naming.
* 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.
* refactor: simplified Dnf parameter directionsLibravatar Kristóf Marussy2023-05-26
|
* 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.
* 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: use Cursor in query result setsLibravatar Kristóf Marussy2023-03-01
|
* 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.
* feat: Dnf reduction and structural equalityLibravatar Kristóf Marussy2023-02-24
|
* feat: PartialInterpretation representationsLibravatar Kristóf Marussy2023-02-17
|
* refactor: Atom -> Literal naming conventionLibravatar Kristóf Marussy2023-02-09
|
* feat: track ModelQuery pending changesLibravatar Kristóf Marussy2023-02-02
|
* feat: model query functional dependenciesLibravatar Kristóf Marussy2023-02-02
|
* refactor: VIATRA adapter fixesLibravatar Kristóf Marussy2023-02-01
|
* feat: negative and transitive RelationViewAtomLibravatar Kristóf Marussy2023-01-29
| | | | | Use PVisibility.EMBEDDED helper patterns to avoid superfluous production nodes in the Rete net.
* refactor: Model store and query APILibravatar Kristóf Marussy2023-01-29
| | | | Use Adapters to simplify API usage.
* refactor(store): simplify return typesLibravatar Kristóf Marussy2022-12-13
| | | | | | Prefers sealed non-generic interfaces over wildcard types to avoid confusion about method return types, especially in collections (see SonarQube rule java:S1452).
* refactor(store): remove CountPolarityLibravatar Kristóf Marussy2022-12-09
| | | | We will have to implement counting in DNF queries in another way.
* feat: add cardinality interval abstractionLibravatar Kristóf Marussy2022-12-09
|
* refactor: rename CallKind to PolarityLibravatar Kristóf Marussy2022-11-05
|
* refactor: DNF atomsLibravatar Kristóf Marussy2022-11-05
| | | | | | Restore count != capability. Still needs semantics and tests for count atoms over partial models.
* refactor: DNF query builderLibravatar Kristóf Marussy2022-11-05
|
* refactor: tuples in QueryableModelLibravatar Kristóf Marussy2022-10-03
|
* refactor: remove viatra dependency from storeLibravatar Kristóf Marussy2022-10-03
|
* refactor: move viatra into a separate subprojectLibravatar Kristóf Marussy2022-10-03