It is certain that Sumit is thirsty. It is probably the case that Winona is a sheep. It is probably not the case that Emily is a wolf. It is likely that if 'Emily is a wolf' or 'Sumit is thirsty' or both then Mary grabbed the milk. It is likely that if 'Emily is a wolf' or 'Winona is a sheep' or both then Jessica is a mouse. It is improbable that if either 'Winona is a sheep' or 'Sumit is thirsty' but not both then Brian is a lion.
It is impossible that 'Mary grabbed the milk' or 'Sumit is thirsty' or both.
It is certain that 'Mary grabbed the milk' or 'Sumit is thirsty' or both.
It is impossible that 'Mary grabbed the milk' or 'Sumit is thirsty' or both.

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

  %hop2
  conclusion:-or(factX,factA).

  query(conclusion).
  
'Mary grabbed the milk' or 'Sumit is thirsty' or both.