It is probably the case that Emily is a cat. Chances are about even that Lily is white. It is certain that John got the milk. Chances are slight that if either 'Emily is a cat' or 'John got the milk' but not both then Brian is a rhino. It is unlikely that if either 'Lily is white' or 'John got the milk' but not both then Greg is a swan. It is impossible that if either 'Lily is white' or 'John got the milk' but not both then Mary went to the bedroom.
It is impossible that 'Mary went to the bedroom and Emily is a cat'.
It is impossible that 'Mary went to the bedroom and Emily is a cat'.
It is highly likely that 'Mary went to the bedroom and Emily is a cat'.

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

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

  query(conclusion).
  
'Mary went to the bedroom and Emily is a cat'.