It is impossible that John is in the garden. There is little chance that Daniel got the football. It is likely that Brian is white. It is highly likely that if 'John is in the garden and Daniel got the football' then Bernhard is gray. It is impossible that if 'Daniel got the football' or 'John is in the garden' or both then Greg is a frog. Chances are slight that if 'Brian is white and John is in the garden' then Julius is green.
There is little chance that either 'Bernhard is gray' or 'Brian is white' but not both.
It is likely that either 'Bernhard is gray' or 'Brian is white' but not both.
There is little chance that either 'Bernhard is gray' or 'Brian is white' 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.7::factC.
  %hop1
  0.9::factX:-and(factA,factB).
  0.0::factY:-or(factB,factA).
  0.1::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Bernhard is gray' or 'Brian is white' but not both.