It is improbable that Sandra left the football. Chances are slight that John picked up the apple. We believe that Lily is gray. It is highly likely that if 'Lily is gray and Sandra left the football' then Fred moved to the office. There is almost no chance that if 'Lily is gray and John picked up the apple' then Mary took the milk. It is certain that if 'John picked up the apple' or 'Sandra left the football' or both then Bernhard is a frog.
It is probably the case that either 'Bernhard is a frog' or 'Lily is gray' but not both.
It is probably the case that either 'Bernhard is a frog' or 'Lily is gray' but not both.
Chances are slight that either 'Bernhard is a frog' or 'Lily is gray' 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.1::factB.
  0.75::factC.
  %hop1
  0.9::factX:-and(factC,factA).
  0.02::factY:-and(factC,factB).
  1.0::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Bernhard is a frog' or 'Lily is gray' but not both.