In Datalog, missing values are represented by Skolem constants. More generally, in logic programming missing values, or existentially
quantified variables, are represented by terms built from Skolem functors. The CLP(

) language represents the joint probability distribution over missing values in a database or logic program by using constraints
to represent Skolem functions. Algorithms from inductive logic programming (ILP) can be used with only minor modification
to learn CLP(

) programs. An implementation of CLP(

) is publicly available as part of YAP Prolog at
http://www.ncc.up.pt/~vsc/Yap
.