There is a very good chance that John discarded the milk. It is impossible that Lily is a swan. It is probably not the case that Jeff dropped the apple. We doubt that if 'Jeff dropped the apple and Lily is a swan' then Mary moved to the office. There is almost no chance that if 'Lily is a swan and Jeff dropped the apple' then Brian is yellow. It is certain that if either 'Lily is a swan' or 'John discarded the milk' but not both then Julius is white.
It is impossible that either 'Brian is yellow' or 'Mary moved to the office' but not both.
It is impossible that either 'Brian is yellow' or 'Mary moved to the office' but not both.
There is a better than even chance that either 'Brian is yellow' or 'Mary moved to the office' 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.8::factA.
  0.0::factB.
  0.25::factC.
  %hop1
  0.2::factX:-and(factC,factB).
  0.02::factY:-and(factB,factC).
  1.0::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'Brian is yellow' or 'Mary moved to the office' but not both.