There is a better than even chance that Emily is a mouse. Chances are about even that Mary put down the milk. Chances are about even that John moved to the office. It is impossible that if 'Mary put down the milk and John moved to the office' then Bernhard is a frog. It is almost certain that if 'Mary put down the milk' or 'Emily is a mouse' or both then Julius is gray. We doubt that if 'Mary put down the milk and John moved to the office' then Lily is a lion.
It is almost certain that either 'Bernhard is a frog' or 'John moved to the office' but not both.
Chances are about even that either 'Bernhard is a frog' or 'John moved to the office' but not both.
It is almost certain that either 'Bernhard is a frog' 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.6::factA.
  0.5::factB.
  0.5::factC.
  %hop1
  0.0::factX:-and(factB,factC).
  0.95::factY:-or(factB,factA).
  0.2::factZ:-and(factB,factC).

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

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