There is little chance that Lily is a lion. It is highly unlikely that Antoine is thirsty. It is unlikely that Greg is white. Chances are about even that if either 'Lily is a lion' or 'Greg is white' but not both then Jason is tired. Chances are slight that if 'Greg is white' or 'Lily is a lion' or both then John moved to the garden. It is improbable that if 'Greg is white' or 'Antoine is thirsty' or both then Julius is a swan.
There is almost no chance that 'Greg is white and John moved to the garden'.
There is almost no chance that 'Greg is white and John moved to the garden'.
It is almost certain that 'Greg is white 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.1::factA.
  0.05::factB.
  0.2::factC.
  %hop1
  0.5::factX:-xor(factA,factC).
  0.1::factY:-or(factC,factA).
  0.1::factZ:-or(factC,factB).

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

  query(conclusion).
  
'Greg is white and John moved to the garden'.