There is almost no chance that Lily is yellow. There is almost no chance that Bernhard is white. We doubt that Brian is yellow. It is probably not the case that if 'Lily is yellow and Brian is yellow' then Bill got the milk there. Chances are about even that if 'Lily is yellow' or 'Bernhard is white' or both then Greg is green. It is unlikely that if 'Lily is yellow and Brian is yellow' then Mary left the football.
There is almost no chance that 'Greg is green' or 'Mary left the football' or both.
There is almost no chance that 'Greg is green' or 'Mary left the football' or both.
There is a better than even chance that 'Greg is green' or 'Mary left the football' 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.02::factA.
  0.02::factB.
  0.2::factC.
  %hop1
  0.25::factX:-and(factA,factC).
  0.5::factY:-or(factA,factB).
  0.2::factZ:-and(factA,factC).

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

  query(conclusion).
  
'Greg is green' or 'Mary left the football' or both.