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 the nexus of Knowledge Representation, Artificial Intelligence, Mathematical Logic, Databases, and Programming Languages. It is fascinating and intellectually stimulating due to the fundamental interplay among theory, systems, and applications brought about by logic. Logic programs are more declarative in the sense that they strive to be logical specifications of ‘what’ to do rather than ‘how’ to do it, and thus they are high-level and easier to understand and maintain. Yet, without being given an actual algorithm, LP systems implement the logical specifications automatically.
Several books cover the basics of LP but focus mostly on the Prolog language with its incomplete control strategy and non-logical features. At the same time, there is generally a lack of accessible yet comprehensive collections of articles covering the key aspects in declarative LP. These aspects include, among others, well-founded vs. stable model semantics for negation, constraints, object-oriented LP, updates, probabilistic LP, and evaluation methods, including top-down vs. bottom-up, and tabling.
For systems, the situation is even less satisfactory, lacking accessible literature that can help train the new crop of developers, practitioners, and researchers. There are a few guides on Warren’s Abstract Machine (WAM), which underlies most implementations of Prolog, but very little exists on what is needed for constructing a state-of-the-art declarative LP inference engine. Contrast this with the literature on, say, Compilers, where one can first study a book on the general principles and algorithms and then dive in the particulars of a specific compiler. Such resources greatly facilitate the ability to start making meaningful contributions quickly. 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 solving.
LP helps solve challenging problems in a wide range of application areas, but in-depth analysis of their connection with LP language abstractions and LP implementation methods is lacking. Also, rare are surveys of challenging application areas of LP, such as Bioinformatics, Natural Language Processing, Verification, and Planning.
The goal of this book is to help fill in the previously mentioned void in the LP literature. It offers a number of overviews on key aspects of LP that are suitable for researchers and practitioners as well as graduate students. The following chapters in theory, systems, and applications of LP are included.
Tabella dei contenuti
Table of Contents: Preface / PART I THEORY / 1. Datalog: Concepts, History, and Outlook / 2. An Introduction to the Stable and Well-Founded Semantics of Logic Programs / 3. A Survey of Probabilistic Logic Programming / PART II SYSTEMS / 4. WAM for Everyone: A Virtual Machine for Logic Programming / 5. Predicate Logic as a Modeling Language: The IDP System / 6. Solver Blox: Algebraic Modeling in Dialog / PART III APPLICATIONS / 7. Exploring Life: Answer Set Programming in Bioinformatics / 8. State-Space Search with Tabled Logic Programs / 9. Natural Language Processing with (Tabled and Constraint) Logic Programming / 10. Logic Programming Applications: What Are the Abstractions and Implementations? / Index / Biographies
Circa l’autore
Yanhong Annie Liu is a professor of Computer Science at Stony Brook University. She received her B.S. from Peking University, M.Eng. from Tsinghua University, and Ph.D. from Cornell University, all in Computer Science. Her primary research is in languages and algorithms, especially on systematic design and optimization, centered around incrementalization—the discrete counterpart of differentiation in calculus. Her current research focus is on languages and efficient implementations for secure distributed programming and for declarative system specifications. She has published in many prestigious venues, taught in a wide range of computer science areas, and presented over 100 conferences and invited talks worldwide. She serves on the ACM Books Editorial Board as the Area Editor for Programming Languages, and she is a member of IFIP WG 2.1 on Algorithmic Languages and Calculi. Her awards include a State University of New York Chancellor’s Award for Excellence in Scholarship and Creative Activities.