Logic Programming Applications: What Are the Abstractions and Implementations?
This is an incremental review that organizes existing knowledge for researchers and practitioners in logic programming.
The article provides an overview of logic programming applications by classifying them based on abstractions (join, recursion, constraint) and implementations (for-loops, fixed points, backtracking), linking these to database queries, inductive analysis, and combinatorial search.
This article presents an overview of applications of logic programming, classifying them based on the abstractions and implementations of logic languages that support the applications. The three key abstractions are join, recursion, and constraint. Their essential implementations are for-loops, fixed points, and backtracking, respectively. The corresponding kinds of applications are database queries, inductive analysis, and combinatorial search, respectively. We also discuss language extensions and programming paradigms, summarize example application problems by application areas, and touch on example systems that support variants of the abstractions with different implementations.