Introduction to
Logic Programming


Chapter 1   - Introduction
Chapter 2   - Datasets

Queries and Updates

Chapter 3   - Queries
Chapter 4   - Updates
Chapter 5   - Query Evaluation
Chapter 6   - Query Optimization

View Definitions

Chapter 7   - View Definitions
Chapter 8   - View Evaluation
Chapter 9   - Simple Examples
Chapter 10 - Lists, Sets, Trees
Chapter 11 - Dynamic Systems
Chapter 12 - Metaknowledge
Operation Definitions

Chapter 13 - Operation Definitions
Chapter 14 - Dynamic Logic Programs
Chapter 15 - Database Management
Chapter 16 - Interactive Worksheets


Chapter 17 - Variations
Appendix 1   - Predefined Concepts
Appendix 2   - Sierra


This is a book for the 21st century: presenting an elegant and innovative perspective on logic programming. Unlike other texts, it takes datasets as a fundamental notion, thereby bridging the gap between programming languages and knowledge representation languages; and it treats updates on an equal footing with datasets, leading to a sound and practical treatment of action and change.
     - Bob Kowalski, Professor Emeritus, Imperial College London

In a world where Deep Learning and Python are the talk of the day, this book is a remarkable development. It introduces the reader to the fundamentals of traditional Logic Programming and makes clear the benefits of using the technology to create runnable specifications for complex systems.
     - Son Cao Tran, Professor in Computer Science, New Mexico State University

Excellent introduction to the fundamentals of Logic Programming. The book is well-written and well-structured. Concepts are explained clearly and the gradually increasing complexity of exercises makes it so that one can understand easy notions quickly before moving on to more difficult ideas.
     - George Younger, student, Stanford University