It is highly unlikely that John took the apple. It is highly unlikely that Mary got the football. It is impossible that Winona is a sheep. There is a very good chance that if 'Winona is a sheep and John took the apple' then Antoine is bored. It is certain that if 'Winona is a sheep' or 'Mary got the football' or both then Julius is a swan. There is little chance that if 'Winona is a sheep and Mary got the football' then Brian is a frog.
There is a very good chance that either 'Mary got the football' or 'John took the apple' but not both.
There is little chance that either 'Mary got the football' or 'John took the apple' but not both.
There is a very good chance that either 'Mary got the football' or 'John took 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.05::factA.
  0.05::factB.
  0.0::factC.
  %hop1
  0.8::factX:-and(factC,factA).
  1.0::factY:-or(factC,factB).
  0.1::factZ:-and(factC,factB).

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

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