There is little chance that Winona is a mouse. It is impossible that Daniel left the football. It is highly likely that Lily is yellow. It is likely that if 'Daniel left the football and Lily is yellow' then Julius is a lion. It is improbable that if either 'Daniel left the football' or 'Lily is yellow' but not both then John went to the kitchen. We doubt that if either 'Daniel left the football' or 'Lily is yellow' but not both then Bernhard is a swan.
It is impossible that 'Julius is a lion and Bernhard is a swan'.
It is impossible that 'Julius is a lion and Bernhard is a swan'.
It is certain that 'Julius is a lion and Bernhard is a swan'.

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

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

  query(conclusion).
  
'Julius is a lion and Bernhard is a swan'.