Knowledge Representation, Reasoning, and the Design of Intelligent Agents : The Answer-Set Programming Approach