It is improbable that Brian is a swan. It is impossible that Lily is yellow. It is certain that Julius is a lion. It is likely that if either 'Lily is yellow' or 'Julius is a lion' but not both then John got the football. Chances are slight that if 'Lily is yellow' or 'Brian is a swan' or both then Winona is a wolf. It is improbable that if 'Julius is a lion and Lily is yellow' then Bernhard is green.
It is impossible that 'Lily is yellow and John got the football'.
It is impossible that 'Lily is yellow and John got the football'.
We believe that 'Lily is yellow and John got the football'.

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

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

  query(conclusion).
  
'Lily is yellow and John got the football'.