Case-Based Reasoning: Experiences, Lessons and Future Directions