## Integrating ASP and CLP systems: Computing answer sets from partially ground programs

##### Abstract

Answer set programming (ASP) has emerged as a declarative paradigm for knowledge representation and reasoning. In this approach, a logic program is used to represent the knowledge of the domain and various tasks are reduced to computing answer sets of this program. ASP languages A-Prolog and CR-Prolog have been proven as powerful tools for constructing complex reasoning systems. Constraint logic programming (CLP) emerged as an alternate paradigm through the fusion of logic programming and constraint solving. A CLP solver thus integrates resolution techniques from logic programming and constraint solving techniques from constraint satisfaction. While ASP is expressive for knowledge representation and reasoning, CLP solvers are efficient in reasoning with numerical constraints.
Every state-of-the-art ASP solver computes answer sets of programs from their ground equivalents. Though these systems solve large industrial problems, the ground programs become huge and unmanageable. This is especially true when programs contain variables that range over large numerical domains; huge memory requirements eventually force the solvers to fail.
The goal of this research is to address this issue by integrating different types of reasoning techniques to compute answer sets of programs. First, we investigate the integration of answer set reasoning, a form of abduction, and constraint solving techniques. We design a collection of languages, V(C), parameterized over a class C of constraints. An instance ACo from this family is studied as a knowledge representation tool. An algorithm to compute answer sets of ACo programs is developed. An ACo solver is built that computes answer sets from partially ground programs. The use of this language and the efficiency of the solver are demonstrated.
We extend our investigation to develop methods to include resolution techniques. We design a collection of languages AC(C) parameterized over a class C of constraints. We develop an algorithm to compute answer sets of AC(C) programs from their partial ground instances by integrating the four reasoning techniques and prove correctness. A solver is built to compute answer sets for a class of AC(C) programs.
Our work is a significant step to declaratively solve problems that cannot be solved by pure ASP or CLP solvers. The solvers built are the first to tightly integrate different reasoning techniques to compute answer sets from partial ground programs.