There is almost no chance that Lily is white. It is certain that Antoine is thirsty. There is almost no chance that Brian is a rhino. It is highly unlikely that if 'Brian is a rhino' or 'Lily is white' or both then Mary went to the bedroom. It is probably the case that if either 'Antoine is thirsty' or 'Lily is white' but not both then Julius is a frog. Chances are slight that if 'Lily is white and Antoine is thirsty' then John took the football.
It is highly unlikely that either 'Mary went to the bedroom' or 'Julius is a frog' but not both.
It is probably the case that either 'Mary went to the bedroom' or 'Julius is a frog' but not both.
It is highly unlikely that either 'Mary went to the bedroom' or 'Julius is a frog' 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.02::factA.
  1.0::factB.
  0.02::factC.
  %hop1
  0.05::factX:-or(factC,factA).
  0.7::factY:-xor(factB,factA).
  0.1::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Mary went to the bedroom' or 'Julius is a frog' but not both.