68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| 
								 | 
							
								%%% -*- Mode: Prolog; -*-
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								% ProbLog program describing modelling a simplified version of the ALARM network
							 | 
						||
| 
								 | 
							
								% (running example used in the paper [Gutmann et. al, ECML 2011])
							 | 
						||
| 
								 | 
							
								% $Id: alarm.pl 6416 2011-06-10 14:38:44Z bernd $
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								% example for parameter learning with LFI-ProbLog
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% training examples are included at the end of the file
							 | 
						||
| 
								 | 
							
								% query ?- do_learning(20).
							 | 
						||
| 
								 | 
							
								% will run 20 iterations of learning with default settings
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:- use_module('../problog').
							 | 
						||
| 
								 | 
							
								:- use_module('../problog_lfi').
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% uncomment to see what is happening
							 | 
						||
| 
								 | 
							
								:- set_problog_flag(verbosity_learning,5).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								%%%   Probabilistic Facts  %
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								% the t(_) identifies them as tunable, that is,
							 | 
						||
| 
								 | 
							
								% the probabilities are to be learned
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								t(_) :: burglary.
							 | 
						||
| 
								 | 
							
								t(_) :: earthquake.
							 | 
						||
| 
								 | 
							
								t(_) :: hears_alarm(_Person).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								%%%   Background Knowledge %
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								% the background knowledge, read as myclause(Head,Body)
							 | 
						||
| 
								 | 
							
								% clauses are assumed to be range-restricted
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								myclause(person(mary), true).
							 | 
						||
| 
								 | 
							
								myclause(person(john), true).
							 | 
						||
| 
								 | 
							
								myclause(alarm, burglary).
							 | 
						||
| 
								 | 
							
								myclause(alarm, earthquake).
							 | 
						||
| 
								 | 
							
								myclause(calls(Person), (person(Person),alarm,hears_alarm(Person))).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								%%%   Training examples    %
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								example(1).
							 | 
						||
| 
								 | 
							
								example(2).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%% Example 1
							 | 
						||
| 
								 | 
							
								known(1,alarm,true).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%% Example 2
							 | 
						||
| 
								 | 
							
								known(2,earthquake,false).
							 | 
						||
| 
								 | 
							
								known(2,calls(mary),true).
							 | 
						||
| 
								 | 
							
								
							 |