It is probably not the case that Sumit is thirsty. It is highly unlikely that Lily is yellow. It is probable that Brian is gray. It is probably the case that if either 'Brian is gray' or 'Sumit is thirsty' but not both then Mary went to the bedroom. We believe that if 'Sumit is thirsty and Brian is gray' then Emily is a wolf. It is unlikely that if 'Brian is gray and Sumit is thirsty' then John dropped the milk.
It is highly unlikely that 'John dropped the milk and Brian is gray'.
It is highly unlikely that 'John dropped the milk and Brian is gray'.
We believe that 'John dropped the milk and Brian is gray'.

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

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

  query(conclusion).
  
'John dropped the milk and Brian is gray'.