It is likely that Jessica is a cat. Chances are slight that Jason is bored. It is impossible that Bernhard is a frog. There is a very good chance that if either 'Bernhard is a frog' or 'Jason is bored' but not both then Gertrude is a sheep. It is improbable that if either 'Jessica is a cat' or 'Bernhard is a frog' but not both then Jeff put down the milk. We doubt that if either 'Jason is bored' or 'Bernhard is a frog' but not both then Mary left the football.
It is highly likely that either 'Jason is bored' or 'Mary left the football' but not both.
Chances are slight that either 'Jason is bored' or 'Mary left the football' but not both.
It is highly likely that either 'Jason is bored' 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.7::factA.
  0.1::factB.
  0.0::factC.
  %hop1
  0.8::factX:-xor(factC,factB).
  0.1::factY:-xor(factA,factC).
  0.2::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'Jason is bored' or 'Mary left the football' but not both.