We found a problem with the interaction
of a serialized working memory and updates to the rules.
Our process involves serializing the
working memory to a database. Later, when we load the serialized
version of the working memory back from the database, if we've updated
the rules it will detect that fact and it will throw away our carefully
preserved working memory. We suspect this is because the working
memory maintains a reference to the rules as they were when the working
memory is originally serialized.
I'm wondering if there is some way to
accomplish what we're trying to do, either a way to serialize the working
memory with no reference to the rules or some way to have the working memory
update to accomodate any changes to the rules that may have occurred since
it was serialized.
I know that some other rules engines,
such as FairIsaac's Blaze engine, have complex schemes where you can have
versioned rules in a repository and update the rules in that fashion. I'm
not sure that we're trying to do anything quite so complex, just a way
to occasionally push out a new version of our rules without having to lose
all of the work we've done to the working memory in the past.
(There may come a time where we may
intend for the working memories to be cleared out, but I think we can do
that in a manual fashion when the time comes.)
Thanks for your time, hopefully there's
an easy answer!