It is unlikely that John grabbed the apple. There is little chance that Lily is yellow. Chances are slight that Jeff moved to the office. It is probably not the case that if either 'Jeff moved to the office' or 'John grabbed the apple' but not both then Sandra left the milk. It is highly likely that if 'Jeff moved to the office' or 'John grabbed the apple' or both then Julius is a rhino. It is probably the case that if 'Lily is yellow' or 'John grabbed the apple' or both then Bernhard is green.
It is almost certain that either 'Jeff moved to the office' or 'Lily is yellow' but not both.
It is unlikely that either 'Jeff moved to the office' or 'Lily is yellow' but not both.
It is almost certain that either 'Jeff moved to the office' or 'Lily 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.2::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  0.25::factX:-xor(factC,factA).
  0.9::factY:-or(factC,factA).
  0.7::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Jeff moved to the office' or 'Lily is yellow' but not both.