It is impossible that Brian is white. Chances are slight that Bernhard is gray. There is little chance that John got the apple. It is almost certain that if 'John got the apple and Bernhard is gray' then Winona is a mouse. Chances are about even that if either 'John got the apple' or 'Bernhard is gray' but not both then Mary took the milk. It is highly likely that if 'John got the apple' or 'Brian is white' or both then Greg is a lion.
We doubt that either 'John got the apple' or 'Bernhard is gray' but not both.
We doubt that either 'John got the apple' or 'Bernhard is gray' but not both.
We believe that either 'John got the apple' or 'Bernhard is gray' 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.0::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  0.95::factX:-and(factC,factB).
  0.5::factY:-xor(factC,factB).
  0.9::factZ:-or(factC,factA).

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

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