There is almost no chance that Sandra dropped the apple. It is certain that Lily is a swan. It is impossible that Bernhard is a swan. It is improbable that if 'Bernhard is a swan and Sandra dropped the apple' then Emily is a mouse. It is probably the case that if either 'Sandra dropped the apple' or 'Bernhard is a swan' but not both then Greg is gray. We doubt that if either 'Sandra dropped the apple' or 'Lily is a swan' but not both then Mary went to the kitchen.
We doubt that either 'Sandra dropped the apple' or 'Mary went to the kitchen' but not both.
We doubt that either 'Sandra dropped the apple' or 'Mary went to the kitchen' but not both.
It is certain that either 'Sandra dropped the apple' or 'Mary went to the kitchen' 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.0::factC.
  %hop1
  0.1::factX:-and(factC,factA).
  0.7::factY:-xor(factA,factC).
  0.2::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Sandra dropped the apple' or 'Mary went to the kitchen' but not both.