It is improbable that Lily is yellow. We doubt that Daniel left the milk. It is almost certain that Julius is gray. There is almost no chance that if either 'Julius is gray' or 'Lily is yellow' but not both then Greg is yellow. There is little chance that if 'Daniel left the milk and Julius is gray' then John grabbed the apple. There is almost no chance that if 'Lily is yellow' or 'Daniel left the milk' or both then Bill went to the garden.
It is impossible that 'Greg is yellow and Lily is yellow'.
It is impossible that 'Greg is yellow and Lily is yellow'.
It is highly likely that 'Greg is yellow and Lily 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.1::factA.
  0.2::factB.
  0.95::factC.
  %hop1
  0.02::factX:-xor(factC,factA).
  0.1::factY:-and(factB,factC).
  0.02::factZ:-or(factA,factB).

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

  query(conclusion).
  
'Greg is yellow and Lily is yellow'.