We doubt that Greg is a swan. It is almost certain that Gertrude is a sheep. It is impossible that Emily is a sheep. There is a very good chance that if 'Gertrude is a sheep and Emily is a sheep' then Sandra is in the kitchen. It is unlikely that if 'Emily is a sheep and Greg is a swan' then Daniel got the milk. It is probable that if either 'Gertrude is a sheep' or 'Emily is a sheep' but not both then John put down the apple.
It is probable that 'John put down the apple and Sandra is in the kitchen'.
It is impossible that 'John put down the apple and Sandra is in the kitchen'.
It is probable that 'John put down the apple and Sandra is in the kitchen'.

  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.2::factA.
  0.95::factB.
  0.0::factC.
  %hop1
  0.8::factX:-and(factB,factC).
  0.2::factY:-and(factC,factA).
  0.7::factZ:-xor(factB,factC).

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

  query(conclusion).
  
'John put down the apple and Sandra is in the kitchen'.