It is probably the case that Lily is yellow. It is probably the case that John dropped the apple. We doubt that Bernhard is green. It is probably not the case that if 'Bernhard is green' or 'Lily is yellow' or both then Greg is a lion. We believe that if 'Bernhard is green and John dropped the apple' then Jason is tired. It is likely that if 'John dropped the apple' or 'Bernhard is green' or both then Jeff moved to the garden.
It is probably not the case that 'Bernhard is green' or 'Greg is a lion' or both.
It is probably not the case that 'Bernhard is green' or 'Greg is a lion' or both.
We believe that 'Bernhard is green' or 'Greg is a lion' 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.2::factC.
  %hop1
  0.25::factX:-or(factC,factA).
  0.75::factY:-and(factC,factB).
  0.7::factZ:-or(factB,factC).

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

  query(conclusion).
  
'Bernhard is green' or 'Greg is a lion' or both.