Prolog

Logic Programming

·       Logic programming is a declarative paradigm that describes a problem domain using a set of facts and rules called a knowledge base.

·       An inference engine searches for proofs of user queries from the knowledge base.

·       There are different algorithms inference engines can use. They all involve the techniques of unification, resolution, and backtracking.

·       Failure to find a proof is interpreted to mean "false". This is called negation as failure or the Closed World Assumption.

·       Prolog, and its subsets Datalog and Proplog, are the principle examples of logic programming languages.

·       Knowledge bases can be compared to databases, and Prolog to SQL. SQL answers queries by combining database relationships using select, project, and join operations.

·       Prolog is a decidable subset of First-order logic.

References

·       SWI-Prolog

·       SWI Prolog online!

·       Learn Prolog Now

·       Using Prolog

Basics

·       Knowledge Bases

·       Queries

·       The inference engine

·       Structures

Hacks

·       Math

·       Symmetric and Transitive Closures

·       List Processing

·       Meta-Prolog

Examples, Labs and Projects

·       Examples

·       Labs

·       Proplog