It is highly likely that Lily is a swan. It is highly unlikely that Daniel took the milk. It is improbable that Bernhard is green. We believe that if either 'Bernhard is green' or 'Lily is a swan' but not both then Brian is a frog. It is unlikely that if either 'Daniel took the milk' or 'Bernhard is green' but not both then Sandra got the football. We believe that if 'Lily is a swan and Daniel took the milk' then John dropped the apple.
It is impossible that 'Sandra got the football and John dropped the apple'.
It is impossible that 'Sandra got the football and John dropped the apple'.
We believe that 'Sandra got the football and John dropped the apple'.

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

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

  query(conclusion).
  
'Sandra got the football and John dropped the apple'.