Introduce a source x rule pair pool that the forward chainer can draw from to select its next application.
Store source and rules with shared pointers to avoid memory corruptions
Optimize rule insertion and retrieval (log instead of linear)
The most important change is item 1. that offers better out-of-the-box inference control as the source x rule pair selection is drawn from a potentially much bigger pool, controlled by the production-application-ratio user parameter.
Early experiments are showing promises, it allows to converge to the desired solutions with x2 less rule applications on a subsample (10%) of the bio-atomspace, with almost no tuning required. More thorough benchmarking will be required to better assess the performance gains.
The most important change is item 1. that offers better out-of-the-box inference control as the source x rule pair selection is drawn from a potentially much bigger pool, controlled by the
production-application-ratio
user parameter.Early experiments are showing promises, it allows to converge to the desired solutions with x2 less rule applications on a subsample (10%) of the bio-atomspace, with almost no tuning required. More thorough benchmarking will be required to better assess the performance gains.