Inductive Logic Programming (ILP) is a paradigm which derives a hypothesized first-order logic given the background knowledge, positive, and negative examples [1]}. The central component of ILP is known as clauses. A clause is a rule expressed as \(\alpha \leftarrow \alpha _1,..., \alpha _n\) , where \(\alpha \)  is the head atom and \(\alpha _1,..., \alpha _n\)  are body atoms. An atom \(p(t_1,...,t_m)\)  is composed of an \(m\) -ary predicate \(p\)  and a tuple of terms \(t_1,...,t_m\) , which can be variables or constants. An atom is ground if it only contains constants. For example, The following clause defines when to perform the action of confirmation:
\(\mathtt {confirm}(S) \leftarrow \mathtt {user\_request}(S, T), \mathtt {not\_confident}(S),\) 
