It is impossible that Mary went to the bedroom. It is improbable that Sandra left the milk. Chances are slight that Brian is a swan. It is almost certain that if either 'Brian is a swan' or 'Sandra left the milk' but not both then John picked up the apple. It is highly unlikely that if 'Sandra left the milk' or 'Mary went to the bedroom' or both then Daniel put down the milk. It is improbable that if 'Mary went to the bedroom and Sandra left the milk' then Julius is gray.
It is likely that either 'Brian is a swan' or 'Sandra left the milk' but not both.
It is unlikely that either 'Brian is a swan' or 'Sandra left the milk' but not both.
It is likely that either 'Brian is a swan' or 'Sandra left the milk' 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.1::factB.
  0.1::factC.
  %hop1
  0.95::factX:-xor(factC,factB).
  0.05::factY:-or(factB,factA).
  0.1::factZ:-and(factA,factB).

  %hop2
  conclusion:-xor(factC,factB).

  query(conclusion).
  
Either 'Brian is a swan' or 'Sandra left the milk' but not both.