There is a better than even chance that Lily is gray. It is highly likely that Julius is a swan. It is probable that Bernhard is a lion. It is probably the case that if 'Bernhard is a lion' or 'Julius is a swan' or both then John moved to the garden. We doubt that if 'Julius is a swan and Lily is gray' then Brian is a frog. It is likely that if 'Lily is gray and Bernhard is a lion' then Mary went to the office.
There is almost no chance that 'Lily is gray and John moved to the garden'.
Chances are about even that 'Lily is gray and John moved to the garden'.
There is almost no chance that 'Lily is gray and John moved to the garden'.

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

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

  query(conclusion).
  
'Lily is gray and John moved to the garden'.