It is highly likely that Brian is a rhino. There is a better than even chance that Jeff left the football. There is little chance that John dropped the milk. Chances are slight that if 'Brian is a rhino and John dropped the milk' then Julius is white. It is likely that if 'John dropped the milk' or 'Jeff left the football' or both then Bernhard is gray. We doubt that if 'Brian is a rhino and Jeff left the football' then Sandra got the football.
There is almost no chance that either 'Bernhard is gray' or 'Sandra got the football' but not both.
Chances are about even that either 'Bernhard is gray' or 'Sandra got the football' but not both.
There is almost no chance that either 'Bernhard is gray' or 'Sandra got 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.9::factA.
  0.6::factB.
  0.1::factC.
  %hop1
  0.1::factX:-and(factA,factC).
  0.7::factY:-or(factC,factB).
  0.2::factZ:-and(factA,factB).

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

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