Chances are about even that Lily is green. It is improbable that Daniel got the milk. There is little chance that Bernhard is yellow. It is impossible that if 'Lily is green and Daniel got the milk' then John grabbed the apple. It is probably the case that if 'Daniel got the milk and Lily is green' then Mary went to the office. It is probable that if 'Bernhard is yellow and Daniel got the milk' then Julius is gray.
It is probably the case that 'Mary went to the office' or 'Julius is gray' or both.
It is highly unlikely that 'Mary went to the office' or 'Julius is gray' or both.
It is probably the case that 'Mary went to the office' or 'Julius is gray' or 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.5::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  0.0::factX:-and(factA,factB).
  0.7::factY:-and(factB,factA).
  0.7::factZ:-and(factC,factB).

  %hop2
  conclusion:-or(factY,factZ).

  query(conclusion).
  
'Mary went to the office' or 'Julius is gray' or both.