There is almost no chance that Brian is a swan. It is impossible that Mary went to the bedroom. It is impossible that Greg is white. Chances are about even that if 'Greg is white and Mary went to the bedroom' then Emily is a wolf. It is probably the case that if 'Greg is white' or 'Mary went to the bedroom' or both then Sandra dropped the milk. It is improbable that if either 'Mary went to the bedroom' or 'Brian is a swan' but not both then Bernhard is yellow.
There is a very good chance that either 'Emily is a wolf' or 'Sandra dropped the milk' but not both.
It is impossible that either 'Emily is a wolf' or 'Sandra dropped the milk' but not both.
There is a very good chance that either 'Emily is a wolf' or 'Sandra dropped 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.02::factA.
  0.0::factB.
  0.0::factC.
  %hop1
  0.5::factX:-and(factC,factB).
  0.7::factY:-or(factC,factB).
  0.1::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'Emily is a wolf' or 'Sandra dropped the milk' but not both.