There is little chance that Lily is a rhino. Chances are about even that Jeff moved to the garden. We doubt that John put down the milk. It is improbable that if 'John put down the milk and Lily is a rhino' then Julius is yellow. It is probably not the case that if 'John put down the milk and Lily is a rhino' then Brian is a swan. It is probable that if either 'John put down the milk' or 'Lily is a rhino' but not both then Winona is a wolf.
It is almost certain that either 'John put down the milk' or 'Brian is a swan' but not both.
We doubt that either 'John put down the milk' or 'Brian is a swan' but not both.
It is almost certain that either 'John put down the milk' or 'Brian is a swan' 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.1::factA.
  0.5::factB.
  0.2::factC.
  %hop1
  0.1::factX:-and(factC,factA).
  0.25::factY:-and(factC,factA).
  0.7::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'John put down the milk' or 'Brian is a swan' but not both.