FOIL is an algorithm for inductive logic programming that learns sets of first-order rules from examples to perform tasks like predicting relationships between people. FOIL extends earlier rule learning algorithms to handle first-order logic representations using predicates, variables, and quantification. It searches for the most specific rules that cover positive training examples, removing covered examples and searching for additional rules. FOIL's use of first-order logic makes the rules it learns more generally applicable than propositional rules.