A nswer set programming (ASP) is a knowledge representation and reasoning (KR) paradigm. It has rich highlevel representation languages that allow recursive definitions, aggregates, weight constraints, optimization statements, default negation, and external atoms. With such expressive languages, ASP can be used to declaratively represent knowledge (for example, mathematical models of problems, behaviour of dynamic systems, beliefs and actions of agents) and solve combinatorial search problems (for example, planning, diagnosis, phylogeny reconstruction) and knowledge-intensive problems (for example, query answering, explanation generation). The idea is to represent a problem as a "program" whose models (called "answer sets" Lifschitz 1988, 1991]