How can knowledge be represented symbolically and manipulated in an automated way by reasoning programs