Principles of knowledge representation and reasoning