Commit Graph

2207 Commits

Author SHA1 Message Date
Grigorii Kirgizov f9602c8bbf Throw on null terms in term trie (relates to MPSCR-40)
For more clear errors stemming from usage of constraints with null values, which ain't handled
2020-02-12 20:15:07 +03:00
Grigorii Kirgizov 2aeadaf63f Always silently handle wildcard classifiers to avoid errors while handling 'promote' relation (fixes MPSCR-41) 2020-02-12 20:15:07 +03:00
Fedor Isakov 796ad9ad2c Apply migration to drop ValueOfExpression. 2020-02-12 12:26:09 +01:00
Fedor Isakov 0d7316adf4 Introduce LogicalItemValueExpr, deprecate ValueOfExpr, migration.
LogicalItemValueExpression is to play the same role as valueOf(logical)
within an instance of EvaluationSubject.
LogicalItemExpression is to represent the logical variable itself.
2020-02-12 12:18:30 +01:00
Fedor Isakov 66cf34ae80 Drop instances of ExpressionItem that don't contain a node ref.
ExpressionItem is to be ousted. It has no real use aside from
containing a .pointer op.
2020-02-12 10:53:40 +01:00
Fedor Isakov 98461166bc Switch to binaries configuration on TC for MPS artefacts. 2020-02-12 10:53:40 +01:00
Fedor Isakov 25585f9166 Deprecate assert constraint: a simple $() should serve. 2020-02-12 10:53:40 +01:00
Fedor Isakov 115c368a2f Reconcile different syntaxes for ExpressionConstraint and LateExpression. Use $() for both.
This is an important change in coderules syntax: all expressions to be evaluated from
constraints/predicates are to be wrapped in parentheses and preceded by dollar sign.
So, instead of eval/backticks the new syntax is to be used: $(<expression>).
Also the expressions to be passed to "feedback reporting" predicates are to be wrapped similarly.
2020-02-12 10:53:40 +01:00
Grigorii Kirgizov 516ecd594f Fix incr test failure due to incorrect flow from duplicated line 2020-02-11 16:00:18 +03:00
Grigorii Kirgizov 820edb8e5a Distinguish between origin and reportOrigin in generator to track changes for regenerating rules (fixes MPSCR-36) 2020-02-11 15:52:30 +03:00
Grigorii Kirgizov c87a2741fe Add test for incrementality in BL to reproduce MPSCR-36 2020-02-11 15:52:30 +03:00
Fedor Isakov 1a6b107a76 Apply migration to replace condition block with if statement. 2020-02-07 13:14:46 +01:00
Fedor Isakov a35b5b46ec Deprecated condition block in rule template, isApplicable method in API. Migration to use if statement instead. 2020-02-07 13:14:24 +01:00
Fedor Isakov 73219399f4 Deprecate unused flag "principal" in rule template, drop usages. 2020-02-07 12:05:45 +01:00
Fedor Isakov b76ed3d3e0 Add folding to rule list editor, fix constraint rule editor. 2020-02-07 11:58:11 +01:00
Fedor Isakov 3ae40153a2 Un-deprecate local logical var declaration, drop MITM concept. 2020-02-07 11:33:26 +01:00
Fedor Isakov 4a84ebce5f Apply migration to switch to BodyBlock. 2020-02-06 12:55:32 +01:00
Fedor Isakov fa4537dbc3 Introduce BodyBlock to contain multiple body clause lists. Support multi-line body. Migration. 2020-02-06 12:50:26 +01:00
Fedor Isakov 71d2d8a340 Give more memory to gradle process 2020-02-06 11:24:16 +01:00
Grigorii Kirgizov c6889be4e7 Consider possible errors at rule generation stage as non fatal and produce Program with some rules dropped (fixes MPSCR-38)
New Result.RECOVERED case-class is added which collects errors but doesn't fail.
Currently errors are collected but not reported.
2020-02-06 01:02:50 +03:00
Grigorii Kirgizov 7b168e40c7 Provide failure cause in ouput Effect to get more informative failures of Coderules on ApplyTemplatesStep (related to MPSCR-38) 2020-02-05 23:29:05 +03:00
Fedor Isakov c353f89ea0 Apply migration to drop ParameterContainer. 2020-02-05 17:02:32 +01:00
Fedor Isakov c15c6694de Ensure all rule parameters of same type are displayed on separate lines. Deprecte ParameterContainer. Migration. 2020-02-05 17:02:31 +01:00
Grigorii Kirgizov a1682106d8 Let Dispatcher handle future matches and don't store postponed matches (fixes MPSCR-37) 2020-02-05 18:52:18 +03:00
Grigorii Kirgizov f61c436809 Add tests to verify expected behavior of repeated expansion of the same occurrence (MPSCR-37)
Tests are structured similar to how occurrences are processes with ExecQueue
and its 'postponedFutureMatches' in incremental processing in ConstraintProcessing.
Also don't ignore one old test.
2020-02-05 18:52:18 +03:00
Grigorii Kirgizov 238b9e10cf Fix Rete RuleMatcher .forget method 2020-02-05 18:52:18 +03:00
Fedor Isakov 3f51c1e5c1 Apply migration that replaces empty logical type with term type. 2020-02-05 12:34:20 +01:00
Fedor Isakov 58a1cf16fe Introduce TermType (term) to be represented as "DataForm" in runtime. Migration to specify term type where expected. 2020-02-05 12:24:40 +01:00
Grigorii Kirgizov 438d8e6e9a Ensure rule tags of all dropped rule matches are propagated as algo output (MPSCR-32) 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 73ebfbe7d1 Use invalidatedTags info in TypeIndex to invalidate ReportItems 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 51ec8973d2 Add test to reproduce MPSCR-35 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov efd22872a9 Handle case of invalidating stale discarding matches (MPSCR-35) 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 18fc4592f0 Modify logging methods of MatchJournal to return logged Chunks 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 7074112b7c Revert "Refine logic for finding activation Pos to correctly handle discarding rules"
This reverts commit 746c4808
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 3b0008ad22 Remove some unused code 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 840d02c9f7 Provide restricted version of MatchJournal.replay to utilize the descendants information of chunks
In some cases replay could 'overshoot' because the position replayed to was invalidated.
The natural way is to replay to the last descendant of such activated occurrence
and continue execution from here.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov ab3eb716ae Refactor ExecPos from ExecQueue to work with OccChunk instead of any Occurrence
This interface change it means that only Occurrences from previous session can be reexecuted.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov b909706a04 Refine logic for finding activation Pos to correctly handle discarding rules 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov d7c2b7f977 Extend MatchJournal with replayUntil method 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov b2cf46f813 Refactor a bit of logic responsible for finding appropriate place for inserting descendant chunk 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov d69b7bff98 Fix incremental match insertion logic for corner case of rules of equal priority
Behavior was incorrect in the case of discarding rules.
Several discarding matches could appear on the same occurrence,
beacuase newer incremental matches were inserted before later one,
thus seeing their occurrence as still active and stored.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 3a15d40625 Update Supervisor and TypesIndex to incorporate changes in feedback reporting (MPSCR-32)
TypesIndex now invalidates report items from previous sessions not by node refs,
but by tags of rules which produced them. Set of invalidated tags is an addiitonal
output from incremental engine.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov a4b28509a8 Provide additional information about parent principal chunk to Feedback (MPSCR-32)
Allows to track connection between invalidated matches and reported feedback.
In future this Journal info can help in simplifying error reporting.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 119daf05d9 Restrict notion of a principal rule to not track unnecessary matches in journal
Now principal rule head must  include only principal constraints or be empty.
Without this restriction journal may include stale chunks which have no information to invalidate them.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov e55e67bc08 Modify EvaluationResult to also return the set of tags of all invalidated rules (MPSCR-32) 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 1334c7c7a1 Fix missed dependencies when computing rule's uniqueTag (from nodes in macro expand) 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 046f4969e1 Remove unnecessary calls to EvaluationResult.storeView() to save some time 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 79c31a44ba Handle journal reset for occurrences: upd their status (eg !alive). Add test for one error caused by it.
Occurrences which weren't yet activated (according to current journal position) can't be reactivated.
Test program is an example of such case.
2020-02-05 12:29:33 +03:00
Grigorii Kirgizov ba8d00c224 Handle incr exec of cases unhandled with introduced mem opt. Added test passes. 2020-02-05 12:29:33 +03:00
Grigorii Kirgizov 9aaf35561a Mem opt: store RuleMatchers only for principal rules between sessions. Add a test for incr processing.
The number of preserved matchers is around 4-10 times less.
The added test is an example of programs handled incorrectly with this opt. Fails now.
2020-02-05 12:29:33 +03:00