Integrating case-based and rule-based reasoning in knowledge-based systems development