It is probable that Lily is a swan. We doubt that Mary went to the garden. We believe that Greg is yellow. It is probable that if 'Mary went to the garden' or 'Greg is yellow' or both then Brian is white. It is certain that if 'Mary went to the garden and Lily is a swan' then Bernhard is a frog. We doubt that if 'Greg is yellow' or 'Mary went to the garden' or both then John took the apple.
It is impossible that 'Bernhard is a frog' or 'Lily is a swan' or both.
It is probably the case that 'Bernhard is a frog' or 'Lily is a swan' or both.
It is impossible that 'Bernhard is a frog' or 'Lily is a swan' 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.2::factB.
  0.75::factC.
  %hop1
  0.7::factX:-or(factB,factC).
  1.0::factY:-and(factB,factA).
  0.2::factZ:-or(factC,factB).

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

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