It is likely that Sandra got the football. It is certain that Bernhard is green. It is probable that Jeff moved to the garden. It is improbable that if 'Jeff moved to the garden and Sandra got the football' then Gertrude is a cat. It is impossible that if 'Sandra got the football and Jeff moved to the garden' then John dropped the apple. It is probable that if either 'Jeff moved to the garden' or 'Bernhard is green' but not both then Jason is bored.
We doubt that either 'John dropped the apple' or 'Sandra got the football' but not both.
It is probable that either 'John dropped the apple' or 'Sandra got the football' but not both.
We doubt that either 'John dropped the apple' or 'Sandra got the football' 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.7::factA.
  1.0::factB.
  0.7::factC.
  %hop1
  0.1::factX:-and(factC,factA).
  0.0::factY:-and(factA,factC).
  0.7::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'John dropped the apple' or 'Sandra got the football' but not both.