Export Citations
Logic Programming (LP) is at the nexus of knowledge representation, AI, mathematical logic, databases, and programming languages. It allows programming to be more declarative, by specifying “what” to do instead of “how” to do it. This field is fascinating and intellectually stimulating due to the fundamental interplay among theory, systems, and applications brought about by logic. Several books cover the basics of LP but they focus mostly on the Prolog language. There is generally a lack of accessible collections of articles covering the key aspects of LP, such as the well-founded vs. stable semantics for negation, constraints, object-oriented LP, updates, probabilistic LP, and implementation methods, including top-down vs. bottom-up evaluation and tabling.
For systems, the situation is even less satisfactory, lacking expositions of LP inference machinery that supports tabling and other state-of-the-art implementation techniques. There is also a dearth of articles about systems that support truly declarative languages, especially those that tie into first-order logic, mathematical programming, and constraint programming. Also rare are surveys of challenging application areas of LP, such as bioinformatics, natural language processing, verification, and planning, as well as analysis of LP applications based on language abstractions and implementations methods.
The goal of this book is to help fill in the void in the literature with state-of-the-art surveys on key aspects of LP. Much attention was paid to making these surveys accessible to researchers, practitioners, and graduate students alike.
Preface
The idea of this book grew out of a symposium that was held at Stony Brook in September 2012 in celebration of David S. Warren's fundamental contributions to Computer Science and the area of Logic Programming in particular.
Logic Programming (LP) is at ...
Datalog: concepts, history, and outlook
This chapter is a survey of the history and the main concepts of Datalog.We begin with an introduction to the language and its use for database definition and querying. We then look back at the threads from logic languages, databases, artificial ...
An introduction to the stable and well-founded semantics of logic programs
This chapter provides a brief introduction to two main semantics of logic programs with negation, the stable-model semantics of Gelfond and Lifschitz, and the well-founded semantics of Van Gelder, Ross, and Schlipf. We present definitions, introduce ...
A survey of probabilistic logic programming
The combination of logic programming and probability has proven useful for modeling domains with complex and uncertain relationships among elements. Many probabilistic logic programming (PLP) semantics have been proposed; among these, the distribution ...
WAM for everyone: a virtual machine for logic programming
This chapter is a tutorial presentation of the Warren Abstract Machine (akaWAM), which is a virtual machine for Prolog designed by David H. D.Warren [Warren 1983] (note not David S. Warren, who is the author of this chapter.) We present a variant of the ...
SolverBlox: algebraic modeling in datalog
Datalog is a deductive query language for relational databases. We introduce LogiQL, a language based on Datalog and show how it can be used to specify mixedinteger linear optimization models and solve them. Unlike pure algebraic modeling languages, ...
Exploring life: answer set programming in bioinformatics
This chapter provides a broad overview of howlogic programming, and more specifically Answer Set Programming (ASP), can be used to model and solve some popular and challenging classes of problems in the general domain of bioinformatics. In particular, ...
State-space search with tabled logic programs
A number of problems involving state space search can be naturally formulated as query evaluation over tabled logic programs. This chapter uses model checking and planning problems to illustrate the effectiveness of logic programming to model and solve ...
Natural language processing with (tabled and constraint) logic programming
We survey the evolution of natural language processing as it relates to Logic Programming, with particular focus on David Scott Warren's crucial contributions such as tabling, and the relationship with hypothetical reasoning and constraint based ...
Logic programming applications: what are the abstractions and implementations?
This chapter 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. ...
Index
Cited By
-
Wieczorek W, Strąk Ł and Nowakowski A (2023). Report on the exact methods for finding minimum-sized DFA, Logic Journal of the IGPL, 10.1093/jigpal/jzad014, 32:5, (909-935), Online publication date: 25-Sep-2024.
-
Steen A and Benzmüller C (2024). Challenges for Non-Classical Reasoning in Contemporary AI Applications, KI - Künstliche Intelligenz, 10.1007/s13218-024-00855-8, 38:1-2, (7-16), Online publication date: 1-Aug-2024.
-
CAPPANERA P, GAVANELLI M, NONATO M and ROMA M (2023). Logic-Based Benders Decomposition in Answer Set Programming for Chronic Outpatients Scheduling, Theory and Practice of Logic Programming, 10.1017/S147106842300025X, (1-17)
-
Le V (2022). Extending Fuzzy Linguistic Logic Programming with Negation †, Mathematics, 10.3390/math10173105, 10:17, (3105)
- Seifermann S, Heinrich R, Werle D and Reussner R (2022). Detecting violations of access control and information flow policies in data flow diagrams, Journal of Systems and Software, 184:C, Online publication date: 1-Feb-2022.
-
Makrynioti N and Vassalos V Declarative Data Analytics: A Survey, IEEE Transactions on Knowledge and Data Engineering, 10.1109/TKDE.2019.2958084, 33:6, (2392-2411)
-
Vandevelde S, Etikala V, Vanthienen J and Vennekens J (2021). Leveraging the Power of IDP with the Flexibility of DMN: A Multifunctional API Rules and Reasoning, 10.1007/978-3-030-91167-6_17, (250-263),
-
Vilchis Medina J, Siegel P, Risch V and Doncescu A (2019). An Implementation of a Non-monotonic Logic in an Embedded Computer for a Motor-glider, Electronic Proceedings in Theoretical Computer Science, 10.4204/EPTCS.306.37, 306, (323-329)
- Declarative Logic Programming: Theory, Systems, and Applications
Recommendations
Logical foundations for more expressive declarative temporal logic programming languages
In this article, we present a declarative propositional temporal logic programming language called TeDiLog that is a combination of the temporal and disjunctive paradigms in logic programming. TeDiLog is, syntactically, a sublanguage of the well-known ...