We believe that John dropped the apple. There is a very good chance that Julius is a frog. It is highly likely that Jessica is a cat. It is almost certain that if either 'Jessica is a cat' or 'Julius is a frog' but not both then Lily is yellow. It is highly unlikely that if either 'Jessica is a cat' or 'John dropped the apple' but not both then Greg is gray. There is little chance that if 'Julius is a frog' or 'Jessica is a cat' or both then Mary went to the garden.
It is impossible that 'Greg is gray and Lily is yellow'.
It is impossible that 'Greg is gray and Lily is yellow'.
There is a very good chance that 'Greg is gray 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.75::factA.
  0.8::factB.
  0.9::factC.
  %hop1
  0.95::factX:-xor(factC,factB).
  0.05::factY:-xor(factC,factA).
  0.1::factZ:-or(factB,factC).

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

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