There is almost no chance that Brian is gray. Chances are about even that Daniel left the apple. There is almost no chance that John is in the garden. It is impossible that if 'Brian is gray' or 'John is in the garden' or both then Greg is a frog. It is highly unlikely that if either 'Brian is gray' or 'John is in the garden' but not both then Julius is a frog. It is highly unlikely that if either 'Brian is gray' or 'Daniel left the apple' but not both then Mary went to the kitchen.
There is almost no chance that 'Julius is a frog' or 'Brian is gray' or both.
There is almost no chance that 'Julius is a frog' or 'Brian is gray' or both.
Chances are about even that 'Julius is a frog' or 'Brian is gray' 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.02::factA.
  0.5::factB.
  0.02::factC.
  %hop1
  0.0::factX:-or(factA,factC).
  0.05::factY:-xor(factA,factC).
  0.05::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Julius is a frog' or 'Brian is gray' or both.