There is a very good chance that Yann is bored. We doubt that Antoine is thirsty. There is little chance that Mary left the milk. It is probably the case that if either 'Mary left the milk' or 'Yann is bored' but not both then Brian is green. It is probable that if either 'Mary left the milk' or 'Antoine is thirsty' but not both then John went to the kitchen. It is impossible that if either 'Mary left the milk' or 'Yann is bored' but not both then Lily is a swan.
It is probable that 'John went to the kitchen' or 'Lily is a swan' or both.
We doubt that 'John went to the kitchen' or 'Lily is a swan' or both.
It is probable that 'John went to the kitchen' or 'Lily is a swan' or both.

  and(A,B) :- A,B.
  or(A,B) :- A;B.
  nand(A,B) :- not(and(A,B)).
  nor(A,B) :- not(or(A,B)).
  xor(A,B) :- or(A,B), nand(A,B).

  %hop0
  0.8::factA.
  0.2::factB.
  0.1::factC.
  %hop1
  0.7::factX:-xor(factC,factA).
  0.7::factY:-xor(factC,factB).
  0.0::factZ:-xor(factC,factA).

  %hop2
  conclusion:-or(factY,factZ).

  query(conclusion).
  
'John went to the kitchen' or 'Lily is a swan' or both.