Chances are about even that Greg is a lion. It is improbable that Julius is gray. It is almost certain that John moved to the garden. It is likely that if 'Greg is a lion and Julius is gray' then Yann is hungry. It is certain that if either 'John moved to the garden' or 'Julius is gray' but not both then Sandra got the milk. We doubt that if 'Julius is gray' or 'Greg is a lion' or both then Lily is a swan.
Chances are slight that 'Lily is a swan and Greg is a lion'.
Chances are slight that 'Lily is a swan and Greg is a lion'.
There is a better than even chance that 'Lily is a swan and Greg is a lion'.

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

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

  query(conclusion).
  
'Lily is a swan and Greg is a lion'.