Introduction to logic programming / Michael Genesereth and Vinay K. Chaudhri.

Genesereth, Michael R., 1948- author.
[San Rafael, California] : Morgan & Claypool, [2020]
1 online resource (221 pages).
Synthesis digital library of engineering and computer science.
Synthesis lectures on artificial intelligence and machine learning ; #44.
Synthesis lectures on artificial intelligence and machine learning, 1939-4616 ; #44

Location Notes Your Loan Policy


Logic programming.
Electronic books.
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.
part I. Introduction. 1. Introduction
1.1. Programming in logic
1.2. Logic programs as runnable specifications
1.3. Advantages of logic programming
1.4. Applications of logic programming
1.5. Basic logic programming
2. Datasets
2.1. Introduction
2.2. Conceptualization
2.3. Datasets
2.4. Example : sorority world
2.5. Example : kinship
2.6. Example : blocks world
2.7. Example : food world
2.8. Reformulation
2.9. Exercises
part II. Queries and updates. 3. Queries
3.1. Introduction
3.2. Query syntax
3.3. Query semantics
3.4. Safety
3.5. Predefined concepts
3.6. Example : kinship
3.7. Example : map coloring
3.8. Exercises
4. Updates
4.1. Introduction
4.2. Update syntax
4.3. Update semantics
4.4. Simultaneous updates
4.5. Example : kinship
4.6. Example : colors
4.7. Exercises
5. Query evaluation
5.1. Introduction
5.2. Evaluating ground queries
5.3. Matching
5.4. Evaluating queries with variables
5.5. Computational analysis
5.6. Exercises
6. View optimization
6.1. Introduction
6.2. Subgoal ordering
6.3. Subgoal removal
6.4. Rule removal
6.5. Example : cryptarithmetic
6.6. Exercises
part III. View definitions. 7. View definitions
7.1. Introduction
7.2. Syntax
7.3. Semantics
7.4. Semipositive programs
7.5. Stratified programs
7.6. Exercises
8. View evaluation
8.1. Introduction
8.2. Top-down processing of ground goals and rules
8.3. Unification
8.4. Top-down processing of non-ground queries and rules
8.5. Exercises
9. Examples
9.1. Introduction
9.2. Example : kinship
9.3. Example : blocks world
9.4. Example : modular arithmetic
9.5. Example : directed graphs
9.6. Exercises
10. Lists, sets, trees
10.1. Introduction
10.2. Example : Peano arithmetic
10.3. Lists
10.4. Example : sorted lists
10.5. Example : sets
10.6. Example : trees
10.7. Exercises
11. Dynamic systems
11.1. Introduction
11.2. Representation
11.3. Simulation
11.4. Planning
11.5. Exercises
12. Metaknowledge
12.1. Introduction
12.2. Natural language processing
12.3. Boolean logic
12.4. Exercises
part IV. Operation definitions. 13. Operations
13.1. Introduction
13.2. Syntax
13.3. Semantics
13.4. Exercises
14. Dynamic logic programs
14.1. Introduction
14.2. Reactive systems
14.3. Closed systems
14.4. Mixed initiative
14.5. Simultaneous actions
14.6. Exercises
15. Database management
15.1. Introduction
15.2. Update with constraints
15.3. Maintaining materialized views
15.4. Update through views
15.5. Exercises
16. Interactive worksheets
16.1. Interactive worksheets
16.2. Example
16.3. Page data
16.4. Gestures
16.5. Operation definitions
16.6. View definitions
16.7. Semantic modeling
part V. Conclusion. 17. Variations
17.1. Introduction
17.2. Logic production systems
17.3. Constraint logic programming
17.4. Disjunctive logic programming
17.5. Existential logic programming
17.6. Answer set programming
17.7. Inductive logic programming
A. Predefined concepts in EpilogJS
A.1. Introduction
A.2. Relations
A.3. Math functions
A.4. String functions
A.5. List functions
A.6. Arithmetic List functions
A.7. Conversion functions
A.8. Aggregates
A.9. Operator
sB. Sierra
B.1. Introduction
B.2. Getting started
B.3. Data
B.4. Queries
B.5. Updates
B.6. View definitions
B.7. Operation definitions
B.8. Settings
B.9. File management
B.10. Conclusion.
Title from PDF title page (viewed on February 28, 2020).
Part of: Synthesis digital library of engineering and computer science.
Includes bibliographical references (pages 195-197).
Cited in:
Google scholar
Google book search
Chaudhri, Vinay K., author.
Publisher Number:
10.2200/S00966ED1V01Y201911AIM044 doi
Access Restriction:
Abstract freely available; full-text restricted to subscribers or individual document purchasers.