It is improbable that John put down the milk. It is probably not the case that Mary took the milk. We believe that Bernhard is yellow. It is highly likely that if either 'Bernhard is yellow' or 'John put down the milk' but not both then Winona is a wolf. There is a very good chance that if 'Bernhard is yellow and John put down the milk' then Brian is a swan. There is almost no chance that if either 'John put down the milk' or 'Bernhard is yellow' but not both then Lily is white.
It is almost certain that 'Brian is a swan' or 'John put down the milk' or both.
There is little chance that 'Brian is a swan' or 'John put down the milk' or both.
It is almost certain that 'Brian is a swan' or 'John put down the milk' 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.1::factA.
  0.25::factB.
  0.75::factC.
  %hop1
  0.9::factX:-xor(factC,factA).
  0.8::factY:-and(factC,factA).
  0.02::factZ:-xor(factA,factC).

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

  query(conclusion).
  
'Brian is a swan' or 'John put down the milk' or both.