Analogical Reasoning in Reflective Prolog