There is almost no chance that Mary moved to the garden. It is probably the case that John grabbed the apple. We believe that Sandra left the milk. We doubt that if 'John grabbed the apple' or 'Sandra left the milk' or both then Julius is a frog. There is a better than even chance that if 'Mary moved to the garden and John grabbed the apple' then Bernhard is green. It is probably the case that if 'Mary moved to the garden and John grabbed the apple' then Greg is a frog.
It is impossible that 'Greg is a frog and Bernhard is green'.
It is impossible that 'Greg is a frog and Bernhard is green'.
It is certain that 'Greg is a frog and Bernhard is green'.

  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.02::factA.
  0.7::factB.
  0.75::factC.
  %hop1
  0.2::factX:-or(factB,factC).
  0.6::factY:-and(factA,factB).
  0.7::factZ:-and(factA,factB).

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

  query(conclusion).
  
'Greg is a frog and Bernhard is green'.