It is likely that Julius is a rhino. It is improbable that Bill went to the bedroom. It is improbable that Bernhard is white. It is impossible that if either 'Bernhard is white' or 'Bill went to the bedroom' but not both then Lily is a swan. There is almost no chance that if either 'Bernhard is white' or 'Julius is a rhino' but not both then Greg is a frog. It is almost certain that if 'Bill went to the bedroom and Julius is a rhino' then John got the apple.
There is little chance that either 'Lily is a swan' or 'Bill went to the bedroom' but not both.
There is little chance that either 'Lily is a swan' or 'Bill went to the bedroom' but not both.
It is highly likely that either 'Lily is a swan' or 'Bill went to the bedroom' 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.7::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  0.0::factX:-xor(factC,factB).
  0.02::factY:-xor(factC,factA).
  0.95::factZ:-and(factB,factA).

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

  query(conclusion).
  
Either 'Lily is a swan' or 'Bill went to the bedroom' but not both.