It is improbable that Sandra left the milk. It is likely that Julius is white. It is certain that Lily is a rhino. It is highly unlikely that if 'Julius is white and Sandra left the milk' then Bernhard is green. It is probably not the case that if 'Lily is a rhino and Julius is white' then Antoine is thirsty. There is almost no chance that if either 'Sandra left the milk' or 'Lily is a rhino' but not both then Greg is gray.
Chances are slight that either 'Sandra left the milk' or 'Bernhard is green' but not both.
Chances are slight that either 'Sandra left the milk' or 'Bernhard is green' but not both.
It is highly likely that either 'Sandra left the milk' or 'Bernhard is green' 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.7::factB.
  1.0::factC.
  %hop1
  0.05::factX:-and(factB,factA).
  0.25::factY:-and(factC,factB).
  0.02::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Sandra left the milk' or 'Bernhard is green' but not both.