Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

In this lecture we provide a simple logic programming language (from SICP), called a query language since it can be used to retrieve information - by lookup or deduction - from a database. In addition to studying the language, we will study an implementation of the language. The key concepts in the implementation of this language are pattern-matching, binding, and a generalization of pattern matching called unification that can be used for deduction.

The system finds all assignments to variables in the query pattern that satisfy the pattern -- that is, all sets of values for the variables such that if the pattern variables are instantiated with (replaced by) the values, the result is in the data base.

The system responds to the query by listing all instantiations of the query pattern with the variable assignments that satisfy it.

Define a rule that says that person 1 can replace person 2 if either person 1 does the same job as person 2 or someone who does person 1's job can also do person 2's job, and if person 1 and person 2 are not the same person. Using your rule, give queries that find the following:

all people who can replace Cy D. Fect

all people who can replace someone who is being paid more than they are, together with the two salaries