There is little chance that Bernhard is a swan. It is probable that Greg is gray. There is almost no chance that Sandra dropped the apple. It is impossible that if 'Sandra dropped the apple and Greg is gray' then Brian is green. It is probable that if 'Sandra dropped the apple and Bernhard is a swan' then John put down the apple. It is highly unlikely that if 'Sandra dropped the apple' or 'Greg is gray' or both then Daniel left the milk.
There is a better than even chance that either 'Bernhard is a swan' or 'Sandra dropped the apple' but not both.
It is improbable that either 'Bernhard is a swan' or 'Sandra dropped the apple' but not both.
There is a better than even chance that either 'Bernhard is a swan' or 'Sandra dropped the apple' 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.1::factA.
  0.7::factB.
  0.02::factC.
  %hop1
  0.0::factX:-and(factC,factB).
  0.7::factY:-and(factC,factA).
  0.05::factZ:-or(factC,factB).

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

  query(conclusion).
  
Either 'Bernhard is a swan' or 'Sandra dropped the apple' but not both.