It is improbable that Jeff left the apple. There is almost no chance that Bernhard is a swan. It is highly likely that Emily is a sheep. There is a better than even chance that if 'Bernhard is a swan' or 'Jeff left the apple' or both then Yann is tired. It is certain that if 'Jeff left the apple' or 'Emily is a sheep' or both then Lily is a rhino. There is little chance that if either 'Bernhard is a swan' or 'Emily is a sheep' but not both then John moved to the office.
We doubt that either 'Jeff left the apple' or 'John moved to the office' but not both.
We doubt that either 'Jeff left the apple' or 'John moved to the office' but not both.
It is highly likely that either 'Jeff left the apple' or 'John moved to the office' 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.1::factA.
  0.02::factB.
  0.9::factC.
  %hop1
  0.6::factX:-or(factB,factA).
  1.0::factY:-or(factA,factC).
  0.1::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'Jeff left the apple' or 'John moved to the office' but not both.