Social networks (Friends & Smokers)

The previous example is propositional. Learning can be used for all valid ProbLog programs, also first-order or relational ones, like for instance the Friends & Smokers program. For such relational programs, even a dataset consisting of a single (partial) interpretation can suffice for learning, as such an example can contain multiple groundings of the intensional probabilistic facts whose probabilities we are trying to learn.

t(_)::stress(X) :- person(X). t(_)::influences(X,Y) :- person(X), person(Y). smokes(X) :- stress(X). smokes(X) :- friend(X,Y), influences(Y,X), smokes(Y). person(1). person(2). person(3). person(4). friend(1,2). friend(2,1). friend(2,4). friend(3,2). friend(4,2).
evidence(smokes(2),false). evidence(smokes(4),true). evidence(influences(1,2),false). evidence(influences(4,2),false). evidence(influences(2,3),true). evidence(stress(1),true).