It is almost certain that Brian is white. It is certain that Mary left the football. There is little chance that Sandra dropped the milk. It is probably not the case that if 'Sandra dropped the milk and Mary left the football' then Greg is a lion. It is impossible that if 'Brian is white and Mary left the football' then Bernhard is a frog. It is highly unlikely that if 'Mary left the football' or 'Brian is white' or both then John picked up the apple.
It is likely that 'John picked up the apple and Bernhard is a frog'.
It is impossible that 'John picked up the apple and Bernhard is a frog'.
It is likely that 'John picked up the apple and Bernhard is a frog'.

  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.95::factA.
  1.0::factB.
  0.1::factC.
  %hop1
  0.25::factX:-and(factC,factB).
  0.0::factY:-and(factA,factB).
  0.05::factZ:-or(factB,factA).

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

  query(conclusion).
  
'John picked up the apple and Bernhard is a frog'.