:- use_module(library(clpbn)). :- set_clpbn_flag(solver, bp). r(R) :- r_cpt(RCpt), { R = r with p([r1, r2], RCpt) }. t(T) :- t_cpt(TCpt), { T = t with p([t1, t2], TCpt) }. a(A) :- r(R), t(T), a_cpt(ACpt), { A = a with p([a1, a2], ACpt, [R, T]) }. j(J) :- a(A), j_cpt(JCpt), { J = j with p([j1, j2], JCpt, [A]) }. m(M) :- a(A), m_cpt(MCpt), { M = m with p([m1, m2], MCpt, [A]) }. r_cpt([0.001, 0.999]). t_cpt([0.002, 0.998]). a_cpt([0.95, 0.94, 0.29, 0.001, 0.05, 0.06, 0.71, 0.999]). j_cpt([0.9, 0.05, 0.1, 0.95]). m_cpt([0.7, 0.01, 0.3, 0.99]).