It is improbable that Mary went to the bedroom. Chances are about even that John dropped the milk. It is improbable that Greg is a swan. It is improbable that if 'Mary went to the bedroom' or 'John dropped the milk' or both then Brian is white. There is a better than even chance that if either 'Mary went to the bedroom' or 'John dropped the milk' but not both then Bernhard is green. It is impossible that if either 'John dropped the milk' or 'Mary went to the bedroom' but not both then Daniel took the football.
It is certain that 'Bernhard is green and Brian is white'.
There is almost no chance that 'Bernhard is green and Brian is white'.
It is certain that 'Bernhard is green and Brian is white'.

  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.5::factB.
  0.1::factC.
  %hop1
  0.1::factX:-or(factA,factB).
  0.6::factY:-xor(factA,factB).
  0.0::factZ:-xor(factB,factA).

  %hop2
  conclusion:-and(factY,factX).

  query(conclusion).
  
'Bernhard is green and Brian is white'.