It is impossible that Sandra left the milk. We believe that Daniel took the apple. We believe that Julius is a frog. There is little chance that if 'Daniel took the apple and Julius is a frog' then Mary went to the office. There is a better than even chance that if 'Sandra left the milk' or 'Julius is a frog' or both then Greg is white. We doubt that if 'Sandra left the milk' or 'Daniel took the apple' or both then Bernhard is yellow.
It is unlikely that either 'Bernhard is yellow' or 'Mary went to the office' but not both.
It is unlikely that either 'Bernhard is yellow' or 'Mary went to the office' but not both.
We believe that either 'Bernhard is yellow' or 'Mary went to the office' but not 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.0::factA.
  0.75::factB.
  0.75::factC.
  %hop1
  0.1::factX:-and(factB,factC).
  0.6::factY:-or(factA,factC).
  0.2::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Bernhard is yellow' or 'Mary went to the office' but not both.