There is almost no chance that Lily is a swan. It is impossible that John moved to the office. It is improbable that Julius is a frog. We believe that if 'Lily is a swan and John moved to the office' then Mary dropped the milk. There is a very good chance that if 'Lily is a swan' or 'John moved to the office' or both then Greg is a lion. There is almost no chance that if either 'Julius is a frog' or 'John moved to the office' but not both then Jessica is a sheep.
It is impossible that either 'John moved to the office' or 'Mary dropped the milk' but not both.
It is impossible that either 'John moved to the office' or 'Mary dropped the milk' but not both.
Chances are about even that either 'John moved to the office' or 'Mary dropped 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.02::factA.
  0.0::factB.
  0.1::factC.
  %hop1
  0.75::factX:-and(factA,factB).
  0.8::factY:-or(factA,factB).
  0.02::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'John moved to the office' or 'Mary dropped the milk' but not both.