It is probable that Lily is white. Chances are about even that Jessica is a mouse. It is highly likely that Sandra got the milk. It is almost certain that if either 'Sandra got the milk' or 'Lily is white' but not both then Brian is a rhino. There is a better than even chance that if either 'Sandra got the milk' or 'Jessica is a mouse' but not both then Bernhard is a swan. It is highly unlikely that if 'Sandra got the milk' or 'Jessica is a mouse' or both then Mary moved to the garden.
We doubt that either 'Mary moved to the garden' or 'Sandra got the milk' but not both.
It is highly likely that either 'Mary moved to the garden' or 'Sandra got the milk' but not both.
We doubt that either 'Mary moved to the garden' or 'Sandra got 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.7::factA.
  0.5::factB.
  0.9::factC.
  %hop1
  0.95::factX:-xor(factC,factA).
  0.6::factY:-xor(factC,factB).
  0.05::factZ:-or(factC,factB).

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

  query(conclusion).
  
Either 'Mary moved to the garden' or 'Sandra got the milk' but not both.