There is a very good chance that Greg is gray. We doubt that Julius is a swan. It is impossible that Winona is a sheep. It is almost certain that if 'Greg is gray and Julius is a swan' then Lily is a frog. We doubt that if 'Winona is a sheep' or 'Julius is a swan' or both then Brian is a rhino. Chances are about even that if 'Winona is a sheep and Greg is gray' then John picked up the apple.
It is highly unlikely that 'Greg is gray' or 'John picked up the apple' or both.
There is a very good chance that 'Greg is gray' or 'John picked up the apple' or both.
It is highly unlikely that 'Greg is gray' or 'John picked up the apple' 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.8::factA.
  0.2::factB.
  0.0::factC.
  %hop1
  0.95::factX:-and(factA,factB).
  0.2::factY:-or(factC,factB).
  0.5::factZ:-and(factC,factA).

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

  query(conclusion).
  
'Greg is gray' or 'John picked up the apple' or both.