It is highly unlikely that John dropped the apple. There is a very good chance that Bernhard is gray. It is probably not the case that Mary left the football. It is impossible that if either 'Bernhard is gray' or 'John dropped the apple' but not both then Lily is yellow. It is improbable that if 'Mary left the football and John dropped the apple' then Jeff went to the garden. There is little chance that if 'John dropped the apple' or 'Mary left the football' or both then Julius is a swan.
It is almost certain that either 'Julius is a swan' or 'Mary left the football' but not both.
It is probably not the case that either 'Julius is a swan' or 'Mary left the football' but not both.
It is almost certain that either 'Julius is a swan' or 'Mary left 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.05::factA.
  0.8::factB.
  0.25::factC.
  %hop1
  0.0::factX:-xor(factB,factA).
  0.1::factY:-and(factC,factA).
  0.1::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Julius is a swan' or 'Mary left the football' but not both.