It is probably not the case that Daniel left the milk. It is improbable that John went to the office. It is highly likely that Julius is a lion. It is certain that if 'Daniel left the milk and Julius is a lion' then Brian is yellow. We doubt that if 'Julius is a lion' or 'Daniel left the milk' or both then Mary dropped the milk. It is highly likely that if either 'Julius is a lion' or 'Daniel left the milk' but not both then Greg is a frog.
It is probably not the case that either 'John went to the office' or 'Daniel left the milk' but not both.
It is probably not the case that either 'John went to the office' or 'Daniel left the milk' but not both.
It is certain that either 'John went to the office' 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.25::factA.
  0.1::factB.
  0.9::factC.
  %hop1
  1.0::factX:-and(factA,factC).
  0.2::factY:-or(factC,factA).
  0.9::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'John went to the office' or 'Daniel left the milk' but not both.