It is certain that Jeff moved to the office. It is likely that Julius is gray. It is probably the case that Bernhard is yellow. It is probably not the case that if 'Julius is gray' or 'Bernhard is yellow' or both then Emily is a mouse. It is impossible that if 'Bernhard is yellow and Jeff moved to the office' then John got the apple. It is probable that if 'Bernhard is yellow and Julius is gray' then Mary is in the hallway.
Chances are about even that either 'Emily is a mouse' or 'Mary is in the hallway' but not both.
Chances are about even that either 'Emily is a mouse' or 'Mary is in the hallway' but not both.
It is highly unlikely that either 'Emily is a mouse' or 'Mary is in the hallway' 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.7::factB.
  0.7::factC.
  %hop1
  0.25::factX:-or(factB,factC).
  0.0::factY:-and(factC,factA).
  0.7::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Emily is a mouse' or 'Mary is in the hallway' but not both.