There is a better than even chance that Bernhard is a swan. It is almost certain that Brian is white. We believe that Julius is a lion. Chances are slight that if either 'Bernhard is a swan' or 'Julius is a lion' but not both then Lily is yellow. It is probably the case that if either 'Brian is white' or 'Julius is a lion' but not both then Sandra dropped the apple. It is highly unlikely that if either 'Julius is a lion' or 'Bernhard is a swan' but not both then John moved to the garden.
It is almost certain that 'Lily is yellow and John moved to the garden'.
It is impossible that 'Lily is yellow and John moved to the garden'.
It is almost certain that 'Lily is yellow 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.95::factB.
  0.75::factC.
  %hop1
  0.1::factX:-xor(factA,factC).
  0.7::factY:-xor(factB,factC).
  0.05::factZ:-xor(factC,factA).

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

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