It is impossible that Lily is yellow. It is likely that Julius is white. It is highly likely that Greg is yellow. It is almost certain that if either 'Julius is white' or 'Lily is yellow' but not both then Brian is a frog. There is little chance that if 'Lily is yellow and Julius is white' then John took the apple. It is highly likely that if 'Julius is white and Greg is yellow' then Mary put down the apple.
It is highly unlikely that 'John took the apple' or 'Greg is yellow' or both.
It is highly likely that 'John took the apple' or 'Greg is yellow' or both.
It is highly unlikely that 'John took the apple' or 'Greg is yellow' 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.0::factA.
  0.7::factB.
  0.9::factC.
  %hop1
  0.95::factX:-xor(factB,factA).
  0.1::factY:-and(factA,factB).
  0.9::factZ:-and(factB,factC).

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

  query(conclusion).
  
'John took the apple' or 'Greg is yellow' or both.