It is improbable that Sandra dropped the milk. It is unlikely that John picked up the apple. It is likely that Greg is gray. It is impossible that if either 'Greg is gray' or 'John picked up the apple' but not both then Julius is a frog. Chances are slight that if either 'Sandra dropped the milk' or 'John picked up the apple' but not both then Antoine is thirsty. It is almost certain that if 'Sandra dropped the milk' or 'Greg is gray' or both then Emily is a sheep.
It is probably not the case that either 'Sandra dropped the milk' or 'John picked up the apple' but not both.
It is probably not the case that either 'Sandra dropped the milk' or 'John picked up the apple' but not both.
It is likely that either 'Sandra dropped the milk' or 'John picked up the apple' 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.2::factB.
  0.7::factC.
  %hop1
  0.0::factX:-xor(factC,factB).
  0.1::factY:-xor(factA,factB).
  0.95::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Sandra dropped the milk' or 'John picked up the apple' but not both.