Chances are about even that John moved to the office. It is impossible that Mary dropped the milk. It is probably the case that Greg is gray. It is probably not the case that if 'Mary dropped the milk and John moved to the office' then Brian is yellow. There is almost no chance that if 'Mary dropped the milk and Greg is gray' then Emily is a cat. It is probable that if 'Greg is gray and Mary dropped the milk' then Julius is a lion.
We believe that 'Julius is a lion and Mary dropped the milk'.
It is impossible that 'Julius is a lion and Mary dropped the milk'.
We believe that 'Julius is a lion and Mary dropped the milk'.

  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.0::factB.
  0.7::factC.
  %hop1
  0.25::factX:-and(factB,factA).
  0.02::factY:-and(factB,factC).
  0.7::factZ:-and(factC,factB).

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

  query(conclusion).
  
'Julius is a lion and Mary dropped the milk'.