Rule-based reasoning