Fedor Isakov
|
d26b7197fd
|
Fix a bug in new matching algorithm that prevented correct matching of ref-ed metalogicals with terms.
|
2018-08-19 17:32:59 +02:00 |
Fedor Isakov
|
faaa9f12d6
|
Cleanup reactor code, drop obsolete code:
old matching algorithm implementation,
store occurrences indexing,
propagation history.
|
2018-08-04 16:10:35 +02:00 |
Fedor Isakov
|
d8c2310f98
|
Deprecate primary symbols in handler. All usages are safe to be dropped.
|
2018-08-04 16:10:35 +02:00 |
Fedor Isakov
|
74402a8a1c
|
New rule matching algorithm
|
2018-08-03 11:48:23 +02:00 |
Fedor Isakov
|
11d87c7846
|
Minor performance tweaks.
|
2017-11-03 12:09:43 +01:00 |
Fedor Isakov
|
c05dad493c
|
Reimplement unification algorithm in Kotlin using jtrove lib. Add dependency on trove4.
|
2017-10-30 18:22:02 +01:00 |
Fedor Isakov
|
bfd6010b7d
|
Fix a bug in rule matching preventing good matches to be reported. Tests.
|
2017-10-06 12:09:57 +02:00 |
Fedor Isakov
|
e72585aa65
|
Refactoring Matcher, MatchTrie. Trying to optimize calls to lookupAuxOccurrences() by reusing the previous searches.
|
2017-07-15 13:36:01 +02:00 |
Fedor Isakov
|
0dcf1ecd81
|
Rename API interfaces for better readability.
|
2017-06-05 13:37:56 +02:00 |
Fedor Isakov
|
a23c0db226
|
Integrate unification into the Core module. Remove the unification lib and all its stuff.
|
2017-06-02 11:19:36 +02:00 |
Fedor Isakov
|
c5c198cf8b
|
Refactoring in the reactor API: move invocation/occurrence factory methods to evaluation session, enable access to logical context from an invocation.
|
2017-03-27 19:01:07 +02:00 |
Fedor Isakov
|
cae150819f
|
Introduce StoreView as a parameter to launching evaluation session. Minor code refactoring/extracting.
|
2017-01-10 20:19:59 +01:00 |
Fedor Isakov
|
c68d9a0bd7
|
Refactoring the reactor API. Extract StoreView. Get rid of obsolete calls to SessionSolver, cleanup the interface. Introduce AbstractSolver. Move instantiation arguments to solver/program. Cleaning up the code.
|
2017-01-05 17:34:53 +01:00 |
Fedor Isakov
|
ebfe680aae
|
Refactoring the reactor API. Extract StoreView, get rid of obsolete calls to SessionSolver. Cleaning up the code.
|
2017-01-04 10:47:23 +01:00 |
Fedor Isakov
|
0771504044
|
Refactoring the reactor API, cleaning up the code.
|
2017-01-03 12:11:31 +01:00 |
Fedor Isakov
|
466c015263
|
Handlers to have multiple primary constraints. RuleIndex to select handlers with matching primary symbol, if a handler has one. Only "accept-all" handlers process non-primary constraints.
|
2016-12-28 12:54:19 +01:00 |
Fedor Isakov
|
26f12f187d
|
Refactor the evaluation controller to have handlers. RuleIndex to select handlers with matching primary symbol first, then the "accept-all" handlers. Tests.
|
2016-12-23 16:50:31 +01:00 |
Fedor Isakov
|
49a6ee0bd0
|
New naming convention for test helper classes (prefix Mock-).
|
2016-12-22 15:56:23 +01:00 |
Fedor Isakov
|
e6c7ee74f5
|
Renaming implementation classes to clean up the namespace.
|
2016-12-22 12:27:34 +01:00 |
Fedor Isakov
|
b891f0fa47
|
Optimizing the aux lookup of constraints by moving the constraint symbol to the top of the search term.
|
2016-12-14 17:07:58 +01:00 |
Fedor Isakov
|
b02f3d727b
|
Fix infinite loop on cyclic terms. Detect term cycles while walking on put/remove/retrieve.
|
2016-12-06 16:58:15 +01:00 |
Fedor Isakov
|
7fe7662873
|
Fix the failing match if case of the wrong constraints order. Test.
|
2016-11-23 15:55:45 +01:00 |
Fedor Isakov
|
b4e9d45f7e
|
Enforce the constraint transparency contract on bound logicals: treat the value as the constraint argument. Remove misbehaving test.
|
2016-10-13 11:07:27 +02:00 |
Fedor Isakov
|
60cd075bf3
|
Specifying occurrence arguments to patternPredicates.
Correctly wrapping/unwrapping of arguments when matching rules.
Optimizing MatchTrie: process related occurrences first to avoid quadratic complexity.
|
2016-06-26 18:19:30 +02:00 |
Fedor Isakov
|
61ef4ff4af
|
Refactor the way logical's parent update are handled in the occurrence store, fix the broken update leading to corrupted store.
Ensure constraint occurrences are alive before reactivating.
|
2016-06-16 11:48:06 +02:00 |
Fedor Isakov
|
ed2ff61ec4
|
Reimplemented TermTrie using discrimination trees.
|
2016-06-06 16:18:49 +02:00 |
Fedor Isakov
|
57a76ad43c
|
Fix memory leak
|
2016-06-02 12:20:00 +02:00 |
Fedor Isakov
|
8185605e99
|
Optimizing term trie and rules index. Using bitset to mark value tokens incidental with nodes in the "term superposition" of term trie.
|
2016-06-02 11:03:19 +02:00 |
Fedor Isakov
|
0f7ffd9141
|
Support for triggering arbitrary predicates on an occurrence match with a head's rule.
Properly handling constraint pattern/occurrence match with values/variables on either side using modal unificaiton.
|
2016-05-27 20:55:31 +02:00 |
Fedor Isakov
|
1652eacfe3
|
Integrating TermTrie in the occurrence store.
|
2016-05-22 17:09:02 +02:00 |
Fedor Isakov
|
e9969b08b7
|
Integrating TermTrie in the rules index, tests.
|
2016-05-22 15:44:35 +02:00 |
Fedor Isakov
|
82d5763039
|
TermTrie: maintaining the order of the values.
|
2016-05-19 20:31:05 +02:00 |
Fedor Isakov
|
b42f005c7e
|
TermTrie: supporting term variables.
|
2016-05-19 16:39:52 +02:00 |
Fedor Isakov
|
a44366921b
|
TermTrie: building an index of rules/occurrences from term values. Term variables not yet supported.
|
2016-05-18 15:44:56 +02:00 |
Fedor Isakov
|
79e920c546
|
Refactoring utility classes to a separate package
|
2016-05-10 10:09:18 +02:00 |
Fedor Isakov
|
b54673b5a8
|
Matcher optimizations: get rid of sequence and flatMap, re-implement iterating over MatchTrie using primitives, ensure no exponential search is necessary.
|
2016-05-10 10:04:32 +02:00 |
Fedor Isakov
|
43e9b35e1e
|
Some more minor optimizations in the match processing. Minor code refactorings.
|
2016-04-24 17:53:49 +02:00 |
Fedor Isakov
|
2d46cd9542
|
Rewritten Matcher to not rely on Sequence and flatMap, instead using MatchTrie. OccurrenceIndex interface made clear. Some minor code optimizations.
|
2016-04-21 20:49:06 +02:00 |
Fedor Isakov
|
d0bf94fc91
|
Support body alternation in Handler. Adopt the changes in the API.
|
2016-04-15 13:59:23 +02:00 |
Fedor Isakov
|
e55108030b
|
Avoid dependency of Handler onto Solver. Access solver via the evaluation session.
|
2016-04-07 11:40:50 +02:00 |
Fedor Isakov
|
a1a17426b7
|
Extract PropagationHistory. Code refactoring and cleanup in preparation to switching to persistent OccurrenceStore and Handler.
|
2016-04-06 13:23:04 +02:00 |
Fedor Isakov
|
8c103ddbd1
|
Integrate changes in the API imported from the Logic project. Change the code accordingly.
|
2016-03-16 16:26:25 +01:00 |
Fedor Isakov
|
6089f8c5ff
|
Optimize selection of rules to try based on the values in the constraint arguments
|
2016-03-09 15:14:51 +01:00 |
Fedor Isakov
|
ec6ce31cc2
|
Propagation history feature, tests. Minor refactorings.
|
2016-03-07 15:23:57 +01:00 |
Fedor Isakov
|
63bb7f578d
|
Ensure the null value is never exposed when merging variable (ground-free)
|
2016-03-03 16:42:09 +01:00 |
Fedor Isakov
|
701a434d69
|
Reactivate occurrences on union of var arguments. Tests.
|
2016-03-03 12:58:53 +01:00 |
Fedor Isakov
|
619337151f
|
Updated API sources from the latest version of Logic. Adapted to the new API. LogicalPattern -> MetaLogical. Renamed all *pattern entities. RuleBuilder for tests.
|
2016-01-29 14:41:57 +01:00 |
Fedor Isakov
|
322485c046
|
Index occurrences by value.
Lookup of occurrences in the store is forced to match value OR logical (probably need both).
|
2016-01-25 18:00:18 +01:00 |
Fedor Isakov
|
ed76bdae73
|
Optimizing looking up constraint occurrences to complete a match.
Parent observer for logicals, maintaining the logical-to-occurrence index in occurrence store.
Some code refactoring.
|
2016-01-24 20:45:46 +01:00 |
Fedor Isakov
|
b8aa435eb4
|
Introduced Profiler to track bottlenecks. Some obvious optimizations. Refactoring for cleaner code.
|
2016-01-21 11:44:52 +01:00 |