It is highly unlikely that John got the milk. There is almost no chance that Bernhard is gray. There is almost no chance that Jeff dropped the apple. It is impossible that if 'John got the milk' or 'Jeff dropped the apple' or both then Jessica is a mouse. It is highly likely that if 'Bernhard is gray' or 'John got the milk' or both then Mary is in the hallway. Chances are slight that if 'Bernhard is gray' or 'Jeff dropped the apple' or both then Julius is white.
There is almost no chance that either 'Jeff dropped the apple' or 'Jessica is a mouse' but not both.
There is almost no chance that either 'Jeff dropped the apple' or 'Jessica is a mouse' but not both.
It is highly likely that either 'Jeff dropped the apple' or 'Jessica is a mouse' 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.05::factA.
  0.02::factB.
  0.02::factC.
  %hop1
  0.0::factX:-or(factA,factC).
  0.9::factY:-or(factB,factA).
  0.1::factZ:-or(factB,factC).

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

  query(conclusion).
  
Either 'Jeff dropped the apple' or 'Jessica is a mouse' but not both.