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).
 |