It is probably the case that Greg is gray. We doubt that Julius is a frog. It is probable that Mary moved to the garden. It is impossible that if 'Greg is gray and Mary moved to the garden' then Lily is a rhino. Chances are slight that if 'Julius is a frog and Mary moved to the garden' then Bernhard is yellow. It is certain that if 'Greg is gray' or 'Mary moved to the garden' or both then Sandra got the milk.
There is almost no chance that 'Lily is a rhino' or 'Bernhard is yellow' or both.
There is almost no chance that 'Lily is a rhino' or 'Bernhard is yellow' or both.
There is a very good chance that 'Lily is a rhino' or 'Bernhard 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.7::factA.
  0.2::factB.
  0.7::factC.
  %hop1
  0.0::factX:-and(factA,factC).
  0.1::factY:-and(factB,factC).
  1.0::factZ:-or(factA,factC).

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

  query(conclusion).
  
'Lily is a rhino' or 'Bernhard is yellow' or both.