Chances are slight that Julius is gray. It is probably the case that Daniel took the milk. There is a very good chance that Lily is yellow. It is almost certain that if either 'Julius is gray' or 'Daniel took the milk' but not both then Jessica is a mouse. It is highly likely that if 'Julius is gray' or 'Lily is yellow' or both then John discarded the apple. It is likely that if either 'Daniel took the milk' or 'Lily is yellow' but not both then Bernhard is white.
It is probably the case that either 'Jessica is a mouse' or 'Bernhard is white' but not both.
It is probably the case that either 'Jessica is a mouse' or 'Bernhard is white' but not both.
It is unlikely that either 'Jessica is a mouse' or 'Bernhard is white' 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.1::factA.
  0.7::factB.
  0.8::factC.
  %hop1
  0.95::factX:-xor(factA,factB).
  0.9::factY:-or(factA,factC).
  0.7::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'Jessica is a mouse' or 'Bernhard is white' but not both.