There is little chance that Jason is bored. It is almost certain that Winona is a wolf. It is impossible that John moved to the garden. It is highly likely that if 'John moved to the garden and Jason is bored' then Fred put down the apple. It is highly likely that if either 'Jason is bored' or 'Winona is a wolf' but not both then Lily is a lion. It is unlikely that if 'Winona is a wolf' or 'Jason is bored' or both then Greg is white.
It is impossible that 'John moved to the garden and Greg is white'.
It is impossible that 'John moved to the garden and Greg is white'.
There is a better than even chance that 'John moved to the garden and Greg 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.1::factA.
  0.95::factB.
  0.0::factC.
  %hop1
  0.9::factX:-and(factC,factA).
  0.9::factY:-xor(factA,factB).
  0.2::factZ:-or(factB,factA).

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

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