Chances are about even that John discarded the milk. We doubt that Greg is a swan. It is impossible that Brian is white. There is almost no chance that if 'John discarded the milk and Brian is white' then Lily is a rhino. Chances are slight that if 'Brian is white and Greg is a swan' then Mary moved to the garden. There is almost no chance that if 'Greg is a swan' or 'John discarded the milk' or both then Bernhard is green.
It is impossible that 'Mary moved to the garden and Brian is white'.
It is impossible that 'Mary moved to the garden and Brian is white'.
There is a better than even chance that 'Mary moved to the garden and Brian is white'.

  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.5::factA.
  0.2::factB.
  0.0::factC.
  %hop1
  0.02::factX:-and(factA,factC).
  0.1::factY:-and(factC,factB).
  0.02::factZ:-or(factB,factA).

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

  query(conclusion).
  
'Mary moved to the garden and Brian is white'.