There is almost no chance that Emily is a mouse. It is improbable that John moved to the office. Chances are slight that Sumit is thirsty. It is impossible that if 'John moved to the office and Sumit is thirsty' then Greg is gray. Chances are about even that if 'John moved to the office' or 'Sumit is thirsty' or both then Bernhard is white. It is probable that if 'Sumit is thirsty and Emily is a mouse' then Brian is green.
It is probably the case that either 'Emily is a mouse' or 'John moved to the office' but not both.
Chances are slight that either 'Emily is a mouse' or 'John moved to the office' but not both.
It is probably the case that either 'Emily is a mouse' or 'John moved to the office' 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.02::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  0.0::factX:-and(factB,factC).
  0.5::factY:-or(factB,factC).
  0.7::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Emily is a mouse' or 'John moved to the office' but not both.