The USA-Advisor: A Case Study in Answer Set Programming

Answer set programming [8] is a new declarative programming paradigm suitable for solving a large range of problem related to knowledge representation and search. The paradigm is rooted in recent developments in several areas of artificial intelligence. Answer set programming starts by encoding relevant domain knowledge as a (possibly disjunctive) logic program, II. The connectives of this program are normally understood in accordance with answer set (stable model) semantics [4,5]. The language's ability to express defaults, i.e. statements of the form "normally, objects of the class C have property P", coupled with its natural treatment of recursion, and other useful features, often leads to a comparatively concise and clear representation of knowledge. Insights on the nature of causality and its relationship with the answer sets of logic programs [6,7,10] allows description of the effects of actions which solves the frame, ramification, and qualification problems, which for long time have caused difficulties in modeling knowledge about dynamic domains.