It is unlikely that Brian is yellow. Chances are about even that Lily is a swan. It is improbable that Jeff moved to the garden. We doubt that if 'Jeff moved to the garden and Brian is yellow' then John dropped the apple. There is almost no chance that if either 'Jeff moved to the garden' or 'Brian is yellow' but not both then Sandra is in the kitchen. Chances are about even that if 'Jeff moved to the garden and Lily is a swan' then Gertrude is a sheep.
It is impossible that 'Sandra is in the kitchen and Brian is yellow'.
It is impossible that 'Sandra is in the kitchen and Brian is yellow'.
Chances are about even that 'Sandra is in the kitchen and Brian is yellow'.

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

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

  query(conclusion).
  
'Sandra is in the kitchen and Brian is yellow'.