It is certain that Lily is a swan. It is probably the case that Winona is a cat. Chances are slight that Mary dropped the apple. There is almost no chance that if 'Mary dropped the apple' or 'Lily is a swan' or both then Julius is a rhino. It is probable that if 'Winona is a cat' or 'Mary dropped the apple' or both then Sandra left the milk. It is improbable that if 'Winona is a cat and Lily is a swan' then Jeff moved to the office.
Chances are about even that either 'Jeff moved to the office' or 'Sandra left the milk' but not both.
Chances are about even that either 'Jeff moved to the office' or 'Sandra left the milk' but not both.
It is almost certain that either 'Jeff moved to the office' or 'Sandra 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
  1.0::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.02::factX:-or(factC,factA).
  0.7::factY:-or(factB,factC).
  0.1::factZ:-and(factB,factA).

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

  query(conclusion).
  
Either 'Jeff moved to the office' or 'Sandra left the milk' but not both.