It is probably the case that Bernhard is yellow. It is almost certain that Julius is a frog. There is a better than even chance that Daniel got the milk. We doubt that if either 'Daniel got the milk' or 'Julius is a frog' but not both then John moved to the office. There is a better than even chance that if either 'Julius is a frog' or 'Daniel got the milk' but not both then Lily is gray. It is highly likely that if 'Julius is a frog and Daniel got the milk' then Emily is a mouse.
There is almost no chance that either 'Bernhard is yellow' or 'Lily is gray' but not both.
There is a better than even chance that either 'Bernhard is yellow' or 'Lily is gray' but not both.
There is almost no chance that either 'Bernhard is yellow' or 'Lily is gray' 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.7::factA.
  0.95::factB.
  0.6::factC.
  %hop1
  0.2::factX:-xor(factC,factB).
  0.6::factY:-xor(factB,factC).
  0.9::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'Bernhard is yellow' or 'Lily is gray' but not both.