Fedor Isakov
ed79a8b9b9
Fix TermTrie not processing correctly ref to a Nil.
...
The code in ClassicTermTrie that is responsible for recursion guarding
when processing cyclic terms, used to mismatch valid pattern term
containing ref to a Nil term, which is a constant.
2019-08-10 15:18:04 +02:00
Fedor Isakov
a95b1c1311
Document and optimize implementation of PersistentTermTrie.
...
Introduce alternative "classic" implementation of TermTrie.
Switch to ClassicTermTrie.
2018-09-09 17:14:13 +02:00
Fedor Isakov
3bdcbc0aa8
Rename TermTrie -> PersistentTermTrie, remove dummy usages.
2018-09-08 13:16:43 +02:00
Fedor Isakov
74402a8a1c
New rule matching algorithm
2018-08-03 11:48:23 +02: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
ed2ff61ec4
Reimplemented TermTrie using discrimination trees.
2016-06-06 16:18:49 +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
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