It is certain that Brian is a lion. Chances are slight that Sandra got the milk. There is little chance that Greg is gray. It is certain that if 'Sandra got the milk' or 'Brian is a lion' or both then Gertrude is a cat. It is unlikely that if either 'Sandra got the milk' or 'Brian is a lion' but not both then John dropped the apple. There is almost no chance that if 'Sandra got the milk and Greg is gray' then Mary went to the bedroom.
There is almost no chance that either 'John dropped the apple' or 'Brian is a lion' but not both.
There is a very good chance that either 'John dropped the apple' or 'Brian is a lion' but not both.
There is almost no chance that either 'John dropped the apple' or 'Brian is a lion' 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
  1.0::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  1.0::factX:-or(factB,factA).
  0.2::factY:-xor(factB,factA).
  0.02::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'John dropped the apple' or 'Brian is a lion' but not both.