It is certain that John got the milk. There is a better than even chance that Fred moved to the office. It is impossible that Bernhard is gray. There is little chance that if either 'Bernhard is gray' or 'John got the milk' but not both then Greg is green. There is little chance that if either 'John got the milk' or 'Bernhard is gray' but not both then Lily is a rhino. It is probably the case that if 'Bernhard is gray and Fred moved to the office' then Mary went to the bedroom.
There is a better than even chance that either 'Fred moved to the office' or 'Mary went to the bedroom' but not both.
There is a better than even chance that either 'Fred moved to the office' or 'Mary went to the bedroom' but not both.
It is impossible that either 'Fred moved to the office' or 'Mary went to the bedroom' 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
  1.0::factA.
  0.6::factB.
  0.0::factC.
  %hop1
  0.1::factX:-xor(factC,factA).
  0.1::factY:-xor(factA,factC).
  0.7::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Fred moved to the office' or 'Mary went to the bedroom' but not both.