7 ms·
I've been dabbling in expert systems (aka rules engines) for the last few years. See CLIPs and Rete algo in your language of choice. This, combined with exposu
by chartpath 5y ago
I've been dabbling in expert systems (aka rules engines) for the last few years. See CLIPs and Rete algo in your language of choice.
This, combined with exposure to KNN over TF-IDF (either live indexes like Elasticsearch under the hood or GiST over trigrams in Postgres or custom trained models), allowed me to discover a kind of "ratcheting" of knowledge.
If the I/O of the program is like an interview with a client, then it's possible to have a "topic stack" where each frame represents a volley in that conversation. I think chatbots also go deep on "dialog engines" like this (see RavenClaw).
For each fact being input, it's possible to check all the policies (rules) that might apply in a declarative way where the developer doesn't need to care about order. Rete takes care of performance concerns, but it's not horizontally scalable (which doesn't really matter IMHO).
Then, for the same stack frame, checking what all other facts are by doing that light KNN to see which other fact patterns were similar, and computing the rule matching on those selectively. This is like making analogies to case law.
Rinse and repeat that flow until some kind of solution is found/suggested/validated by the user, etc. See SHYSTER paper which covered this approach in the 90s.