There is little chance that Greg is green. We doubt that Julius is a rhino. There is almost no chance that John moved to the garden. It is improbable that if 'John moved to the garden and Greg is green' then Brian is yellow. It is probably not the case that if 'Julius is a rhino' or 'Greg is green' or both then Bernhard is a swan. There is a very good chance that if 'John moved to the garden and Julius is a rhino' then Jeff discarded the milk.
It is impossible that 'Jeff discarded the milk and Greg is green'.
It is impossible that 'Jeff discarded the milk and Greg is green'.
It is certain that 'Jeff discarded the milk and Greg 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.1::factA.
  0.2::factB.
  0.02::factC.
  %hop1
  0.1::factX:-and(factC,factA).
  0.25::factY:-or(factB,factA).
  0.8::factZ:-and(factC,factB).

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

  query(conclusion).
  
'Jeff discarded the milk and Greg is green'.