· 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.
· Queries
· Math
· Symmetric and Transitive Closures
·
Examples
· Labs
· Proplog