It is unlikely that Bernhard is a lion. It is improbable that Julius is a frog. There is almost no chance that Brian is a swan. It is improbable that if 'Julius is a frog' or 'Bernhard is a lion' or both then Mary left the milk. There is little chance that if 'Bernhard is a lion and Julius is a frog' then Fred went to the garden. There is a very good chance that if 'Brian is a swan and Bernhard is a lion' then John put down the apple.
It is certain that 'Fred went to the garden' or 'John put down the apple' or both.
It is impossible that 'Fred went to the garden' or 'John put down the apple' or both.
It is certain that 'Fred went to the garden' or 'John put down the apple' 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.2::factA.
  0.1::factB.
  0.02::factC.
  %hop1
  0.1::factX:-or(factB,factA).
  0.1::factY:-and(factA,factB).
  0.8::factZ:-and(factC,factA).

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

  query(conclusion).
  
'Fred went to the garden' or 'John put down the apple' or both.