Predicate invention is used in inductive logic programming to refer to the automatic introduction of new relations or predicates in the hypothesis language. Inventing relevant new predicates is one of the hardest tasks in machine learning, because there are so many possible ways to introduce such predicates and because it is hard to judge their quality. As an example, consider a situation where in the predicates fatherof and motherof are known. Then it would make sense to introduce a new predicate that is true whenever fatherof or motherof is true. The new predicate that would be introduced this way corresponds to the parentof predicate. Predicate invention has been introduced in the context of inverse resolution.