It is probably not the case that Lily is a swan. It is highly unlikely that Sandra left the milk. We believe that Jeff moved to the office. There is almost no chance that if either 'Lily is a swan' or 'Sandra left the milk' but not both then Sumit is thirsty. We doubt that if either 'Lily is a swan' or 'Jeff moved to the office' but not both then John grabbed the apple. Chances are slight that if 'Jeff moved to the office and Lily is a swan' then Mary got the football.
It is improbable that either 'Mary got the football' or 'John grabbed the apple' but not both.
It is improbable that either 'Mary got the football' or 'John grabbed the apple' but not both.
There is a better than even chance that either 'Mary got the football' or 'John grabbed 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.25::factA.
  0.05::factB.
  0.75::factC.
  %hop1
  0.02::factX:-xor(factA,factB).
  0.2::factY:-xor(factA,factC).
  0.1::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Mary got the football' or 'John grabbed the apple' but not both.