Re: KnowledgeWorks: limits on size of rule base?
>>>>> On Wed, 30 Jul 2003 10:21:02 -0400, "Young, David" <dyoung@bloodhoundinc.com> said:
David> Greetings. We're building an expert system that is composed in large part of
David> classification-type "rules". These "rules" (quoted here because the
David> implementation is in question) are generally simple, and lend themselves to
David> auto-generation. However, in our production system there will realistically
David> be hundreds of thousands, if not more than a million, such "rules".
David> We must choose between two implementations. One approach is to store the
David> classification "rule" data in hash tables that reside in a saved image;
David> other rules using this data would employ predicates as part of pattern
David> matching. The other approach is to auto-generate the classification rules
David> from our database.
David> I'm looking for advice. Are there limitations within the KW implementation
David> that would make the table approach preferable to the rule approach, or
David> vice-versa? If not, from an engineering perspective is one implementation
David> preferable?
Hi,
I presume that you are talking about forward chaining rules? KW
compiles the left-hand sides of these rules into a network of nodes
(called a RETE network). As each KW object is created or modified it
immediately creates objects that represent partial matches to the
rules. These matches are combined with other matches and flow through
the network. When the inference engine is run the eligible rules are
therefore already known and fire immediately. Each time the right-hand
side of a rule modifies the state another wave of incremental change
propagates through the network and so the eligible rule-set is
efficiently known at each cycle.
So KW goes to some trouble to make matching efficient. However, I
don't really know whether you will find creating rules or testing
properties more efficient. It depends on the complexity of the tests,
the number of objects, the amount of change, etc.
__Jason