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!