A logical agent that accepts user requirements and recommends a suitable electronic device