Chances are about even that Brian is white. It is highly unlikely that John took the football. It is probably the case that Julius is a frog. There is almost no chance that if 'Brian is white and John took the football' then Bernhard is gray. It is impossible that if either 'Julius is a frog' or 'Brian is white' but not both then Greg is a lion. It is impossible that if 'Julius is a frog and Brian is white' then Mary grabbed the milk.
It is certain that either 'Bernhard is gray' or 'Brian is white' but not both.
Chances are about even that either 'Bernhard is gray' or 'Brian is white' but not both.
It is certain 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.5::factA.
  0.05::factB.
  0.7::factC.
  %hop1
  0.02::factX:-and(factA,factB).
  0.0::factY:-xor(factC,factA).
  0.0::factZ:-and(factC,factA).

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

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