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(
BN\cal{BN}
) 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(
BN\cal{BN}
) programs. An implementation of CLP(
BN\cal{BN}
) is publicly available as part of YAP Prolog at
http://www.ncc.up.pt/~vsc/Yap
.