There is almost no chance that Daniel put down the milk. There is a better than even chance that Brian is a rhino. It is impossible that Lily is white. Chances are slight that if either 'Brian is a rhino' or 'Lily is white' but not both then Bernhard is yellow. There is a very good chance that if 'Brian is a rhino' or 'Daniel put down the milk' or both then Julius is green. There is a very good chance that if 'Lily is white' or 'Daniel put down the milk' or both then Mary got the apple.
It is impossible that 'Mary got the apple and Bernhard is yellow'.
It is impossible that 'Mary got the apple and Bernhard is yellow'.
It is certain that 'Mary got the apple and Bernhard is yellow'.

  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.02::factA.
  0.6::factB.
  0.0::factC.
  %hop1
  0.1::factX:-xor(factB,factC).
  0.8::factY:-or(factB,factA).
  0.8::factZ:-or(factC,factA).

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

  query(conclusion).
  
'Mary got the apple and Bernhard is yellow'.