It is probably not the case that John discarded the apple. It is almost certain that Jessica is a sheep. It is almost certain that Fred went to the office. There is a better than even chance that if either 'John discarded the apple' or 'Fred went to the office' but not both then Bernhard is white. We doubt that if 'Fred went to the office' or 'John discarded the apple' or both then Julius is a lion. There is almost no chance that if 'Fred went to the office' or 'John discarded the apple' or both then Emily is a wolf.
It is probably not the case that either 'Bernhard is white' or 'John discarded the apple' but not both.
It is probable that either 'Bernhard is white' or 'John discarded the apple' but not both.
It is probably not the case that either 'Bernhard is white' or 'John discarded 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.25::factA.
  0.95::factB.
  0.95::factC.
  %hop1
  0.6::factX:-xor(factA,factC).
  0.2::factY:-or(factC,factA).
  0.02::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Bernhard is white' or 'John discarded the apple' but not both.