It is probable that Julius is a swan. It is unlikely that John moved to the office. It is highly unlikely that Lily is a swan. We doubt that if 'Julius is a swan and Lily is a swan' then Greg is gray. It is unlikely that if 'John moved to the office and Julius is a swan' then Brian is white. It is probable that if 'John moved to the office and Lily is a swan' then Daniel left the milk.
There is almost no chance that either 'Brian is white' or 'Daniel left the milk' but not both.
There is almost no chance that either 'Brian is white' or 'Daniel left the milk' but not both.
Chances are about even that either 'Brian is white' or 'Daniel left 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.7::factA.
  0.2::factB.
  0.05::factC.
  %hop1
  0.2::factX:-and(factA,factC).
  0.2::factY:-and(factB,factA).
  0.7::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'Brian is white' or 'Daniel left the milk' but not both.