It is improbable that Brian is yellow. It is highly unlikely that Mary is in the bathroom. There is a very good chance that Winona is a wolf. It is highly unlikely that if 'Winona is a wolf' or 'Brian is yellow' or both then Jessica is a cat. Chances are slight that if 'Winona is a wolf' or 'Brian is yellow' or both then Bernhard is white. There is little chance that if either 'Winona is a wolf' or 'Mary is in the bathroom' but not both then Julius is a lion.
It is probably the case that either 'Mary is in the bathroom' or 'Brian is yellow' but not both.
Chances are slight that either 'Mary is in the bathroom' or 'Brian is yellow' but not both.
It is probably the case that either 'Mary is in the bathroom' or 'Brian is yellow' 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.1::factA.
  0.05::factB.
  0.8::factC.
  %hop1
  0.05::factX:-or(factC,factA).
  0.1::factY:-or(factC,factA).
  0.1::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Mary is in the bathroom' or 'Brian is yellow' but not both.