Introduction to Logic Programming

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Logic Programming is a style of programming in which programs take the form of sets of sentences in the language of Symbolic Logic. Over the years, there has been growing interest in Logic Programming due to applications in deductive databases, automated worksheets, Enterprise Management (business rules), Computational Law, and General Game Playing. This book introduces Logic Programming theory, current technology, and popular applications. In this volume, we take an innovative, model-theoretic approach to logic programming. We begin with the fundamental notion of datasets, i.e., sets of ground atoms. Given this fundamental notion, we introduce views, i.e., virtual relations; and we define classical logic programs as sets of view definitions, written using traditional Prolog-like notation but with semantics given in terms of datasets rather than implementation. We then introduce actions, i.e., additions and deletions of ground atoms; and we define dynamic logic programs as sets of action definitions. In addition to the printed book, there is an online version of the text with an interpreter and a compiler for the language used in the text and an integrated development environment for use in developing and deploying practical logic programs. 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

Author(s): Michael Genesereth, Vinay K Chaudhri
Series: Synthesis Lectures on Artificial Intelligence and Machine Learning
Edition: 1
Publisher: Morgan & Claypool
Year: 2020

Language: English
Commentary: Vector PDF
Pages: 219
City: San Rafael, CA
Tags: Artificial Intelligence; Natural Language Processing; Data Structures; Prolog; Queries; Logic Programming; Knowledge Representation; Knowledge Acquisition; Datalog; Epilog; Datasets; Metaknowledge; Deductiver Databases; Computational Logic

Preface
Introduction
Introduction
Programming in Logic
Logic Programs as Runnable Specifications
Advantages of Logic Programming
Applications of Logic Programming
Basic Logic Programming
Datasets
Introduction
Conceptualization
Datasets
Example – Sorority World
Example – Kinship
Example – Blocks World
Example – Food World
Reformulation
Exercises
Queries and Updates
Queries
Introduction
Query Syntax
Query Semantics
Safety
Predefined Concepts
Example – Kinship
Example – Map Coloring
Exercises
Updates
Introduction
Update Syntax
Update Semantics
Simultaneous Updates
Example – Kinship
Example – Colors
Exercises
Query Evaluation
Introduction
Evaluating Ground Queries
Matching
Evaluating Queries With Variables
Computational Analysis
Exercises
View Optimization
Introduction
Subgoal Ordering
Subgoal Removal
Rule Removal
Example – Cryptarithmetic
Exercises
View Definitions
View Definitions
Introduction
Syntax
Semantics
Semipositive Programs
Stratified Programs
Exercises
View Evaluation
Introduction
Top-Down Processing of Ground Goals and Rules
Unification
Top-Down Processing of Non-Ground Queries and Rules
Exercises
Examples
Introduction
Example – Kinship
Example – Blocks World
Example – Modular Arithmetic
Example – Directed Graphs
Exercises
Lists, Sets, Trees
Introduction
Example – Peano Arithmetic
Lists
Example – Sorted Lists
Example – Sets
Example – Trees
Exercises
Dynamic Systems
Introduction
Representation
Simulation
Planning
Exercises
Metaknowledge
Introduction
Natural Language Processing
Boolean Logic
Exercises
Operation Definitions
Operations
Introduction
Syntax
Semantics
Exercises
Dynamic Logic Programs
Introduction
Reactive Systems
Closed Systems
Mixed Initiative
Simultaneous Actions
Exercises
Database Management
Introduction
Update With Constraints
Maintaining Materialized Views
Update Through Views
Exercises
Interactive Worksheets
Interactive Worksheets
Example
Page Data
Gestures
Operation Definitions
View Definitions
Semantic Modeling
Conclusion
Variations
Introduction
Logic Production Systems
Constraint Logic Programming
Disjunctive Logic Programming
Existential Logic Programming
Answer Set Programming
Inductive Logic Programming
Predefined Concepts in EpilogJS
Introduction
Relations
Math Functions
String Functions
List Functions
Arithmetic List Functions
Conversion Functions
Aggregates
Operators
Sierra
Introduction
Getting Started
Data
Queries
Updates
View Definitions
Operation Definitions
Settings
File Management
Conclusion
References
Authors' Biographies
Blank Page