It is almost certain that Bernhard is a frog. There is a very good chance that John took the apple. There is almost no chance that Mary grabbed the milk. There is almost no chance that if 'John took the apple and Bernhard is a frog' then Greg is white. It is highly unlikely that if either 'Bernhard is a frog' or 'Mary grabbed the milk' but not both then Lily is a rhino. It is certain that if 'Mary grabbed the milk' or 'John took the apple' or both then Julius is yellow.
It is highly unlikely that 'Lily is a rhino' or 'Greg is white' or both.
It is highly unlikely that 'Lily is a rhino' or 'Greg is white' or both.
We believe that 'Lily is a rhino' or 'Greg is white' 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.95::factA.
  0.8::factB.
  0.02::factC.
  %hop1
  0.02::factX:-and(factB,factA).
  0.05::factY:-xor(factA,factC).
  1.0::factZ:-or(factC,factB).

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

  query(conclusion).
  
'Lily is a rhino' or 'Greg is white' or both.