ASP is an approach to declarative problem solving. Rather than solving a problem by telling a computer how to solve the problem, the idea is simply to describe what the problem is and leave its solution to the computer. By comparison with other approaches such as SAT (Satisfiability Checking) and CP (Constraint Programming), ASP is an expressive nonmonotonic language based on stable model semantics, which allows elegant knowledge representation such as causality, defaults, and incomplete information. Then, we review the main concepts of ASP. More details can be seen in Ref. [23].