There is little chance that Julius is yellow. There is a very good chance that Lily is yellow. There is a very good chance that John went to the kitchen. It is almost certain that if 'John went to the kitchen and Lily is yellow' then Greg is a frog. It is highly likely that if 'Julius is yellow' or 'John went to the kitchen' or both then Brian is green. It is probable that if 'Lily is yellow' or 'Julius is yellow' or both then Bernhard is a lion.
It is impossible that 'Greg is a frog' or 'John went to the kitchen' or both.
There is a very good chance that 'Greg is a frog' or 'John went to the kitchen' or both.
It is impossible that 'Greg is a frog' or 'John went to the kitchen' 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.1::factA.
  0.8::factB.
  0.8::factC.
  %hop1
  0.95::factX:-and(factC,factB).
  0.9::factY:-or(factA,factC).
  0.7::factZ:-or(factB,factA).

  %hop2
  conclusion:-or(factX,factC).

  query(conclusion).
  
'Greg is a frog' or 'John went to the kitchen' or both.