There is a very good chance that Julius is yellow. We believe that Lily is a lion. It is certain that John took the apple. Chances are about even that if 'Lily is a lion' or 'Julius is yellow' or both then Jeff moved to the garden. We doubt that if either 'John took the apple' or 'Julius is yellow' but not both then Jason is tired. There is almost no chance that if 'Julius is yellow and John took the apple' then Bernhard is a swan.
Chances are about even that either 'John took the apple' or 'Bernhard is a swan' but not both.
It is certain that either 'John took the apple' or 'Bernhard is a swan' but not both.
Chances are about even that either 'John took the apple' or 'Bernhard is a swan' 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.8::factA.
  0.75::factB.
  1.0::factC.
  %hop1
  0.5::factX:-or(factB,factA).
  0.2::factY:-xor(factC,factA).
  0.02::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'John took the apple' or 'Bernhard is a swan' but not both.