Chances are about even that Brian is a swan. Chances are about even that Bernhard is a frog. We believe that Julius is white. There is almost no chance that if 'Julius is white and Brian is a swan' then Mary took the milk. We doubt that if 'Julius is white and Bernhard is a frog' then Lily is a lion. Chances are about even that if either 'Bernhard is a frog' or 'Brian is a swan' but not both then John went to the bedroom.
There is a better than even chance that either 'John went to the bedroom' or 'Julius is white' but not both.
There is a better than even chance that either 'John went to the bedroom' or 'Julius is white' but not both.
It is improbable that either 'John went to the bedroom' 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.5::factA.
  0.5::factB.
  0.75::factC.
  %hop1
  0.02::factX:-and(factC,factA).
  0.2::factY:-and(factC,factB).
  0.5::factZ:-xor(factB,factA).

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

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