#3 sounds good. 99% of the time we are not adding/removing rules, so we don't wnat to impact the 99% of the time with what will happen 1% of the time !
On 3/30/06, Edson Tirelli <[EMAIL PROTECTED]> wrote: > > Mark, > > I thought about what we discussed regarding the OTN creation and the > rule adding. My considerations are: > > 1. It is possible to map the class hirarchy in an oriented graph during > fact assertion, and this way, when adding a new rule with new OTNs, we > can iterate only over existing object type nodes that might contain > objects that are "assignable from" the new OTNs. Although: > 1.a. this algorithm is pretty complex and there is an assertion > (runtime) cost associated to it, since every time a fact of a new > unknown concrete class is added to the WM we need to map the class > hirarchy and add it to the graph. > 1.b. there is also a cost associated to the adding of a new OTN (when > adding a rule) since we need to run over the graph updating it to > include the added OTNs > > 2. We can stop supporting class hirarchy, but as I said before, I would > be completelly against it. I use this a lot to avoid writing multiple > rules, one for each possible concrete class, when I can instead simply > write a rule for a superclass or interface. > > 3. We can simply hold all facts asserted in a list inside working > memory, independent of class (as we already do), and when adding a new > rule, iterate over all facts checking if it should be asserted to the > new OTN. This imposes a cost when adding new rules, but on the other > side, has no effect on usual modus operandi. > > My suggestion is to go with #3. Easy and quick to implement and will > cause no impact on the most common use case: immutable rule base. Then, > after RC and maybe final, we can research a strategy to implement #1 in > a more robust way then the one I thought already (oriented graph). > > Let me know what you think. If we go with #3, I can do it relativelly > quickly I believe. > > []s > Edson > > PS: if anyone else has any suggestion, just let us know. They are all > welcome. > > --- > Edson Tirelli > Auster Solutions do Brasil > @ www.auster.com.br > +55 11 5096-2277 / +55 11 9218-4151 > > >
