Reasoning by analogy with applications to heuristic problem-solving: a case study