36 lines
		
	
	
		
			584 B
		
	
	
	
		
			Prolog
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			584 B
		
	
	
	
		
			Prolog
		
	
	
	
	
	
 | 
						|
%
 | 
						|
% adapted from Hendrik Blockeel's ILP04 paper.
 | 
						|
%
 | 
						|
 | 
						|
:- use_module(library(clpbn)).
 | 
						|
 | 
						|
cg(X,1,C):-
 | 
						|
    father(Y,X),
 | 
						|
    cg(Y,1,C1),cg(Y,2,C2),
 | 
						|
    parent_cpt(cg(X,1), C1, C2, C).
 | 
						|
 | 
						|
cg(X,2,C):-
 | 
						|
    mother(Y,X),
 | 
						|
    cg(Y,1,C1),cg(Y,2,C2),
 | 
						|
    parent_cpt(cg(X,2), C1, C2, C).
 | 
						|
 | 
						|
 | 
						|
 | 
						|
cg(f,X,C) :-
 | 
						|
    prior_cpt(cg(f,X),C).
 | 
						|
 | 
						|
cg(m,X,C) :-
 | 
						|
    prior_cpt(cg(m,X),C).
 | 
						|
 | 
						|
 | 
						|
prior_cpt(CKEY, C) :-
 | 
						|
    { C = CKEY with p([p,w], [0.5,0.5])}.
 | 
						|
 | 
						|
parent_cpt(CKEY, C1, C2, C) :-
 | 
						|
    { C = CKEY with p([p,w], [   1,0.5,0.5,0.0,
 | 
						|
                               0.0,0.5,0.5,  1],[C1,C2])}.
 | 
						|
 | 
						|
father(f,s).
 | 
						|
mother(m,s).
 |