We believe that Julius is gray. It is impossible that Mary went to the kitchen. It is probably not the case that Bill got the milk there. It is probably the case that if 'Bill got the milk there' or 'Mary went to the kitchen' or both then Bernhard is gray. It is certain that if 'Julius is gray' or 'Mary went to the kitchen' or both then Brian is white. There is a better than even chance that if either 'Julius is gray' or 'Bill got the milk there' but not both then Jeff moved to the office.
There is a better than even chance that either 'Bernhard is gray' or 'Bill got the milk there' but not both.
It is highly unlikely that either 'Bernhard is gray' or 'Bill got the milk there' but not both.
There is a better than even chance that either 'Bernhard is gray' or 'Bill got the milk there' 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.75::factA.
  0.0::factB.
  0.25::factC.
  %hop1
  0.7::factX:-or(factC,factB).
  1.0::factY:-or(factA,factB).
  0.6::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Bernhard is gray' or 'Bill got the milk there' but not both.