It is probably not the case that Julius is a swan. It is improbable that John went to the kitchen. It is highly unlikely that Bill moved to the office. It is impossible that if either 'John went to the kitchen' or 'Julius is a swan' but not both then Gertrude is a cat. There is a very good chance that if 'John went to the kitchen' or 'Bill moved to the office' or both then Mary picked up the milk. It is highly unlikely that if 'Julius is a swan' or 'John went to the kitchen' or both then Lily is yellow.
It is almost certain that either 'Mary picked up the milk' or 'Bill moved to the office' but not both.
There is little chance that either 'Mary picked up the milk' or 'Bill moved to the office' but not both.
It is almost certain that either 'Mary picked up the milk' or 'Bill moved to the office' 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.05::factC.
  %hop1
  0.0::factX:-xor(factB,factA).
  0.8::factY:-or(factB,factC).
  0.05::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Mary picked up the milk' or 'Bill moved to the office' but not both.