It is improbable that John moved to the office. It is certain that Bill went to the garden. It is probable that Sandra took the milk. It is impossible that if either 'John moved to the office' or 'Sandra took the milk' but not both then Julius is gray. It is likely that if either 'Bill went to the garden' or 'John moved to the office' but not both then Bernhard is yellow. Chances are about even that if 'Sandra took the milk and John moved to the office' then Brian is a frog.
There is a better than even chance that either 'Julius is gray' or 'Bernhard is yellow' but not both.
There is a better than even chance that either 'Julius is gray' or 'Bernhard is yellow' but not both.
There is little chance that either 'Julius is gray' or 'Bernhard is yellow' 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.1::factA.
  1.0::factB.
  0.7::factC.
  %hop1
  0.0::factX:-xor(factA,factC).
  0.7::factY:-xor(factB,factA).
  0.5::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Julius is gray' or 'Bernhard is yellow' but not both.