It is highly unlikely that Brian is a frog. It is highly likely that Lily is yellow. There is a better than even chance that John went to the garden. It is impossible that if 'Brian is a frog and John went to the garden' then Julius is gray. It is highly likely that if either 'Brian is a frog' or 'Lily is yellow' but not both then Sandra dropped the milk. It is impossible that if 'John went to the garden' or 'Brian is a frog' or both then Winona is a sheep.
It is impossible that 'Sandra dropped the milk' or 'Julius is gray' or both.
We believe that 'Sandra dropped the milk' or 'Julius is gray' or both.
It is impossible that 'Sandra dropped the milk' or 'Julius 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.05::factA.
  0.9::factB.
  0.6::factC.
  %hop1
  0.0::factX:-and(factA,factC).
  0.9::factY:-xor(factA,factB).
  0.0::factZ:-or(factC,factA).

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

  query(conclusion).
  
'Sandra dropped the milk' or 'Julius is gray' or both.