This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/ProbLog/problog_examples/alarm.pl
2011-06-26 23:13:43 +01:00

68 lines
1.5 KiB
Prolog

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