There is little chance that Brian is a rhino. It is certain that Bernhard is a swan. It is probable that Julius is white. It is impossible that if 'Julius is white and Brian is a rhino' then Lily is a lion. There is little chance that if 'Brian is a rhino and Julius is white' then Winona is a sheep. It is probably not the case that if 'Julius is white' or 'Brian is a rhino' or both then John went to the kitchen.
It is impossible that either 'John went to the kitchen' or 'Julius is white' but not both.
Chances are about even that either 'John went to the kitchen' or 'Julius is white' but not both.
It is impossible that either 'John went to the kitchen' or 'Julius is white' 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.
  1.0::factB.
  0.7::factC.
  %hop1
  0.0::factX:-and(factC,factA).
  0.1::factY:-and(factA,factC).
  0.25::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'John went to the kitchen' or 'Julius is white' but not both.