It is highly unlikely that Bill went to the bedroom. It is improbable that Brian is a lion. We believe that Lily is white. It is highly unlikely that if 'Lily is white' or 'Bill went to the bedroom' or both then Greg is a frog. Chances are slight that if 'Bill went to the bedroom and Lily is white' then John moved to the garden. It is highly unlikely that if 'Bill went to the bedroom' or 'Lily is white' or both then Emily is a wolf.
Chances are slight that either 'Lily is white' or 'Greg is a frog' but not both.
It is probably the case that either 'Lily is white' or 'Greg is a frog' but not both.
Chances are slight that either 'Lily is white' or 'Greg 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.05::factA.
  0.1::factB.
  0.75::factC.
  %hop1
  0.05::factX:-or(factC,factA).
  0.1::factY:-and(factA,factC).
  0.05::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Lily is white' or 'Greg is a frog' but not both.