It is unlikely that Julius is a swan. Chances are slight that Jeff moved to the office. Chances are about even that Antoine is hungry. It is probably the case that if 'Julius is a swan' or 'Antoine is hungry' or both then John discarded the apple. It is improbable that if either 'Antoine is hungry' or 'Julius is a swan' but not both then Bernhard is a frog. It is highly unlikely that if 'Jeff moved to the office' or 'Antoine is hungry' or both then Sandra put down the milk.
Chances are about even that either 'Sandra put down the milk' or 'Antoine is hungry' but not both.
Chances are about even that either 'Sandra put down the milk' or 'Antoine is hungry' but not both.
It is almost certain that either 'Sandra put down the milk' or 'Antoine is hungry' 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.2::factA.
  0.1::factB.
  0.5::factC.
  %hop1
  0.7::factX:-or(factA,factC).
  0.1::factY:-xor(factC,factA).
  0.05::factZ:-or(factB,factC).

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

  query(conclusion).
  
Either 'Sandra put down the milk' or 'Antoine is hungry' but not both.