There is a very good chance that John went to the hallway. Chances are slight that Daniel got the football. It is impossible that Bernhard is yellow. It is highly unlikely that if 'John went to the hallway' or 'Daniel got the football' or both then Lily is a swan. There is a better than even chance that if 'Bernhard is yellow and Daniel got the football' then Greg is gray. Chances are slight that if either 'John went to the hallway' or 'Daniel got the football' but not both then Emily is a mouse.
It is impossible that 'Bernhard is yellow and Lily is a swan'.
It is impossible that 'Bernhard is yellow and Lily is a swan'.
Chances are about even that 'Bernhard is yellow and Lily 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.8::factA.
  0.1::factB.
  0.0::factC.
  %hop1
  0.05::factX:-or(factA,factB).
  0.6::factY:-and(factC,factB).
  0.1::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Bernhard is yellow and Lily is a swan'.