It is probably not the case that Bernhard is a lion. Chances are about even that Brian is yellow. It is probably not the case that John put down the apple. Chances are slight that if either 'Bernhard is a lion' or 'John put down the apple' but not both then Sandra took the milk. It is almost certain that if 'Bernhard is a lion and Brian is yellow' then Winona is a wolf. It is likely that if 'John put down the apple and Brian is yellow' then Mary went to the office.
It is improbable that 'Sandra took the milk' or 'Mary went to the office' or both.
It is improbable that 'Sandra took the milk' or 'Mary went to the office' or both.
We believe that 'Sandra took the milk' or 'Mary went to the office' 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.25::factA.
  0.5::factB.
  0.25::factC.
  %hop1
  0.1::factX:-xor(factA,factC).
  0.95::factY:-and(factA,factB).
  0.7::factZ:-and(factC,factB).

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

  query(conclusion).
  
'Sandra took the milk' or 'Mary went to the office' or both.