Chances are about even that Julius is a swan. There is almost no chance that Bernhard is white. There is little chance that Sandra got the milk. It is almost certain that if 'Julius is a swan and Sandra got the milk' then John put down the apple. We believe that if either 'Bernhard is white' or 'Sandra got the milk' but not both then Greg is yellow. It is highly likely that if 'Bernhard is white' or 'Julius is a swan' or both then Gertrude is a sheep.
It is certain that either 'John put down the apple' or 'Sandra got the milk' but not both.
It is highly unlikely that either 'John put down the apple' or 'Sandra got the milk' but not both.
It is certain that either 'John put down the apple' or 'Sandra got 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.5::factA.
  0.02::factB.
  0.1::factC.
  %hop1
  0.95::factX:-and(factA,factC).
  0.75::factY:-xor(factB,factC).
  0.9::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'John put down the apple' or 'Sandra got the milk' but not both.