There is a very good chance that Bernhard is gray. There is almost no chance that Sandra is in the kitchen. Chances are about even that Lily is yellow. It is probable that if 'Bernhard is gray and Sandra is in the kitchen' then Greg is a swan. There is a very good chance that if either 'Sandra is in the kitchen' or 'Bernhard is gray' but not both then Julius is a rhino. It is highly unlikely that if either 'Bernhard is gray' or 'Sandra is in the kitchen' but not both then John went to the hallway.
It is certain that 'Lily is yellow and Bernhard is gray'.
Chances are about even that 'Lily is yellow and Bernhard is gray'.
It is certain that 'Lily is yellow and Bernhard is gray'.

  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.8::factA.
  0.02::factB.
  0.5::factC.
  %hop1
  0.7::factX:-and(factA,factB).
  0.8::factY:-xor(factB,factA).
  0.05::factZ:-xor(factA,factB).

  %hop2
  conclusion:-and(factC,factA).

  query(conclusion).
  
'Lily is yellow and Bernhard is gray'.