It is probably the case that Julius is gray. It is probably the case that Bernhard is a frog. There is little chance that Jeff discarded the milk. Chances are slight that if 'Jeff discarded the milk and Bernhard is a frog' then Brian is green. We doubt that if either 'Jeff discarded the milk' or 'Julius is gray' but not both then Lily is a lion. It is probably not the case that if either 'Jeff discarded the milk' or 'Julius is gray' but not both then John moved to the office.
It is highly unlikely that 'Lily is a lion' or 'Bernhard is a frog' or both.
We believe that 'Lily is a lion' or 'Bernhard is a frog' or both.
It is highly unlikely that 'Lily is a lion' or 'Bernhard is a frog' 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.7::factB.
  0.1::factC.
  %hop1
  0.1::factX:-and(factC,factB).
  0.2::factY:-xor(factC,factA).
  0.25::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Lily is a lion' or 'Bernhard is a frog' or both.