Reasoning: Goal Trees and Rule-Based Expert Systems